summaryrefslogtreecommitdiffstats
path: root/src/backend/snowball
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-05-04 12:17:33 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-05-04 12:17:33 +0000
commit5e45211a64149b3c659b90ff2de6fa982a5a93ed (patch)
tree739caf8c461053357daa9f162bef34516c7bf452 /src/backend/snowball
parentInitial commit. (diff)
downloadpostgresql-15-5e45211a64149b3c659b90ff2de6fa982a5a93ed.tar.xz
postgresql-15-5e45211a64149b3c659b90ff2de6fa982a5a93ed.zip
Adding upstream version 15.5.upstream/15.5
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'src/backend/snowball')
-rw-r--r--src/backend/snowball/.gitignore1
-rw-r--r--src/backend/snowball/Makefile174
-rw-r--r--src/backend/snowball/README68
-rw-r--r--src/backend/snowball/dict_snowball.c347
-rw-r--r--src/backend/snowball/libstemmer/api.c56
-rw-r--r--src/backend/snowball/libstemmer/stem_ISO_8859_1_basque.c1182
-rw-r--r--src/backend/snowball/libstemmer/stem_ISO_8859_1_catalan.c1446
-rw-r--r--src/backend/snowball/libstemmer/stem_ISO_8859_1_danish.c314
-rw-r--r--src/backend/snowball/libstemmer/stem_ISO_8859_1_dutch.c603
-rw-r--r--src/backend/snowball/libstemmer/stem_ISO_8859_1_english.c1062
-rw-r--r--src/backend/snowball/libstemmer/stem_ISO_8859_1_finnish.c718
-rw-r--r--src/backend/snowball/libstemmer/stem_ISO_8859_1_french.c1252
-rw-r--r--src/backend/snowball/libstemmer/stem_ISO_8859_1_german.c490
-rw-r--r--src/backend/snowball/libstemmer/stem_ISO_8859_1_indonesian.c407
-rw-r--r--src/backend/snowball/libstemmer/stem_ISO_8859_1_irish.c470
-rw-r--r--src/backend/snowball/libstemmer/stem_ISO_8859_1_italian.c1022
-rw-r--r--src/backend/snowball/libstemmer/stem_ISO_8859_1_norwegian.c272
-rw-r--r--src/backend/snowball/libstemmer/stem_ISO_8859_1_porter.c717
-rw-r--r--src/backend/snowball/libstemmer/stem_ISO_8859_1_portuguese.c961
-rw-r--r--src/backend/snowball/libstemmer/stem_ISO_8859_1_spanish.c1041
-rw-r--r--src/backend/snowball/libstemmer/stem_ISO_8859_1_swedish.c288
-rw-r--r--src/backend/snowball/libstemmer/stem_ISO_8859_2_hungarian.c862
-rw-r--r--src/backend/snowball/libstemmer/stem_ISO_8859_2_romanian.c965
-rw-r--r--src/backend/snowball/libstemmer/stem_KOI8_R_russian.c682
-rw-r--r--src/backend/snowball/libstemmer/stem_UTF_8_arabic.c1664
-rw-r--r--src/backend/snowball/libstemmer/stem_UTF_8_armenian.c559
-rw-r--r--src/backend/snowball/libstemmer/stem_UTF_8_basque.c1184
-rw-r--r--src/backend/snowball/libstemmer/stem_UTF_8_catalan.c1449
-rw-r--r--src/backend/snowball/libstemmer/stem_UTF_8_danish.c318
-rw-r--r--src/backend/snowball/libstemmer/stem_UTF_8_dutch.c613
-rw-r--r--src/backend/snowball/libstemmer/stem_UTF_8_english.c1074
-rw-r--r--src/backend/snowball/libstemmer/stem_UTF_8_finnish.c722
-rw-r--r--src/backend/snowball/libstemmer/stem_UTF_8_french.c1262
-rw-r--r--src/backend/snowball/libstemmer/stem_UTF_8_german.c500
-rw-r--r--src/backend/snowball/libstemmer/stem_UTF_8_greek.c3673
-rw-r--r--src/backend/snowball/libstemmer/stem_UTF_8_hindi.c322
-rw-r--r--src/backend/snowball/libstemmer/stem_UTF_8_hungarian.c868
-rw-r--r--src/backend/snowball/libstemmer/stem_UTF_8_indonesian.c407
-rw-r--r--src/backend/snowball/libstemmer/stem_UTF_8_irish.c470
-rw-r--r--src/backend/snowball/libstemmer/stem_UTF_8_italian.c1030
-rw-r--r--src/backend/snowball/libstemmer/stem_UTF_8_lithuanian.c837
-rw-r--r--src/backend/snowball/libstemmer/stem_UTF_8_nepali.c421
-rw-r--r--src/backend/snowball/libstemmer/stem_UTF_8_norwegian.c276
-rw-r--r--src/backend/snowball/libstemmer/stem_UTF_8_porter.c723
-rw-r--r--src/backend/snowball/libstemmer/stem_UTF_8_portuguese.c967
-rw-r--r--src/backend/snowball/libstemmer/stem_UTF_8_romanian.c971
-rw-r--r--src/backend/snowball/libstemmer/stem_UTF_8_russian.c678
-rw-r--r--src/backend/snowball/libstemmer/stem_UTF_8_serbian.c6543
-rw-r--r--src/backend/snowball/libstemmer/stem_UTF_8_spanish.c1045
-rw-r--r--src/backend/snowball/libstemmer/stem_UTF_8_swedish.c292
-rw-r--r--src/backend/snowball/libstemmer/stem_UTF_8_tamil.c1878
-rw-r--r--src/backend/snowball/libstemmer/stem_UTF_8_turkish.c2096
-rw-r--r--src/backend/snowball/libstemmer/stem_UTF_8_yiddish.c1233
-rw-r--r--src/backend/snowball/libstemmer/utilities.c508
-rw-r--r--src/backend/snowball/snowball.sql.in42
-rw-r--r--src/backend/snowball/snowball_func.sql.in34
-rw-r--r--src/backend/snowball/stopwords/danish.stop94
-rw-r--r--src/backend/snowball/stopwords/dutch.stop101
-rw-r--r--src/backend/snowball/stopwords/english.stop127
-rw-r--r--src/backend/snowball/stopwords/finnish.stop235
-rw-r--r--src/backend/snowball/stopwords/french.stop155
-rw-r--r--src/backend/snowball/stopwords/german.stop231
-rw-r--r--src/backend/snowball/stopwords/hungarian.stop199
-rw-r--r--src/backend/snowball/stopwords/italian.stop279
-rw-r--r--src/backend/snowball/stopwords/nepali.stop304
-rw-r--r--src/backend/snowball/stopwords/norwegian.stop176
-rw-r--r--src/backend/snowball/stopwords/portuguese.stop203
-rw-r--r--src/backend/snowball/stopwords/russian.stop151
-rw-r--r--src/backend/snowball/stopwords/spanish.stop313
-rw-r--r--src/backend/snowball/stopwords/swedish.stop114
-rw-r--r--src/backend/snowball/stopwords/turkish.stop53
71 files changed, 52794 insertions, 0 deletions
diff --git a/src/backend/snowball/.gitignore b/src/backend/snowball/.gitignore
new file mode 100644
index 0000000..ef03eb6
--- /dev/null
+++ b/src/backend/snowball/.gitignore
@@ -0,0 +1 @@
+/snowball_create.sql
diff --git a/src/backend/snowball/Makefile b/src/backend/snowball/Makefile
new file mode 100644
index 0000000..50b9199
--- /dev/null
+++ b/src/backend/snowball/Makefile
@@ -0,0 +1,174 @@
+#-------------------------------------------------------------------------
+#
+# Makefile for src/backend/snowball
+#
+# src/backend/snowball/Makefile
+#
+#-------------------------------------------------------------------------
+
+PGFILEDESC = "snowball - natural language stemmers"
+PGAPPICON = win32
+
+subdir = src/backend/snowball
+top_builddir = ../../..
+include $(top_builddir)/src/Makefile.global
+
+override CPPFLAGS := -I$(top_srcdir)/src/include/snowball \
+ -I$(top_srcdir)/src/include/snowball/libstemmer $(CPPFLAGS)
+
+OBJS = \
+ $(WIN32RES) \
+ api.o \
+ dict_snowball.o \
+ utilities.o
+
+OBJS += \
+ stem_ISO_8859_1_basque.o \
+ stem_ISO_8859_1_catalan.o \
+ stem_ISO_8859_1_danish.o \
+ stem_ISO_8859_1_dutch.o \
+ stem_ISO_8859_1_english.o \
+ stem_ISO_8859_1_finnish.o \
+ stem_ISO_8859_1_french.o \
+ stem_ISO_8859_1_german.o \
+ stem_ISO_8859_1_indonesian.o \
+ stem_ISO_8859_1_irish.o \
+ stem_ISO_8859_1_italian.o \
+ stem_ISO_8859_1_norwegian.o \
+ stem_ISO_8859_1_porter.o \
+ stem_ISO_8859_1_portuguese.o \
+ stem_ISO_8859_1_spanish.o \
+ stem_ISO_8859_1_swedish.o \
+ stem_ISO_8859_2_hungarian.o \
+ stem_ISO_8859_2_romanian.o \
+ stem_KOI8_R_russian.o \
+ stem_UTF_8_arabic.o \
+ stem_UTF_8_armenian.o \
+ stem_UTF_8_basque.o \
+ stem_UTF_8_catalan.o \
+ stem_UTF_8_danish.o \
+ stem_UTF_8_dutch.o \
+ stem_UTF_8_english.o \
+ stem_UTF_8_finnish.o \
+ stem_UTF_8_french.o \
+ stem_UTF_8_german.o \
+ stem_UTF_8_greek.o \
+ stem_UTF_8_hindi.o \
+ stem_UTF_8_hungarian.o \
+ stem_UTF_8_indonesian.o \
+ stem_UTF_8_irish.o \
+ stem_UTF_8_italian.o \
+ stem_UTF_8_lithuanian.o \
+ stem_UTF_8_nepali.o \
+ stem_UTF_8_norwegian.o \
+ stem_UTF_8_porter.o \
+ stem_UTF_8_portuguese.o \
+ stem_UTF_8_romanian.o \
+ stem_UTF_8_russian.o \
+ stem_UTF_8_serbian.o \
+ stem_UTF_8_spanish.o \
+ stem_UTF_8_swedish.o \
+ stem_UTF_8_tamil.o \
+ stem_UTF_8_turkish.o \
+ stem_UTF_8_yiddish.o
+
+# first column is language name and also name of dictionary for not-all-ASCII
+# words, second is name of dictionary for all-ASCII words
+# Note order dependency: use of some other language as ASCII dictionary
+# must come after creation of that language
+LANGUAGES= \
+ arabic arabic \
+ armenian armenian \
+ basque basque \
+ catalan catalan \
+ danish danish \
+ dutch dutch \
+ english english \
+ finnish finnish \
+ french french \
+ german german \
+ greek greek \
+ hindi english \
+ hungarian hungarian \
+ indonesian indonesian \
+ irish irish \
+ italian italian \
+ lithuanian lithuanian \
+ nepali nepali \
+ norwegian norwegian \
+ portuguese portuguese \
+ romanian romanian \
+ russian english \
+ serbian serbian \
+ spanish spanish \
+ swedish swedish \
+ tamil tamil \
+ turkish turkish \
+ yiddish yiddish
+
+
+SQLSCRIPT= snowball_create.sql
+DICTDIR=tsearch_data
+
+VPATH += $(srcdir)/libstemmer
+
+NAME := dict_snowball
+rpath =
+
+all: all-shared-lib $(SQLSCRIPT)
+
+include $(top_srcdir)/src/Makefile.shlib
+
+$(SQLSCRIPT): Makefile snowball_func.sql.in snowball.sql.in
+ echo '-- Language-specific snowball dictionaries' > $@
+ cat $(srcdir)/snowball_func.sql.in >> $@
+ @set -e; \
+ set $(LANGUAGES) ; \
+ while [ "$$#" -gt 0 ] ; \
+ do \
+ lang=$$1; shift; \
+ nonascdictname=$$lang; \
+ ascdictname=$$1; shift; \
+ if [ -s $(srcdir)/stopwords/$${lang}.stop ] ; then \
+ stop=", StopWords=$${lang}" ; \
+ else \
+ stop=""; \
+ fi; \
+ cat $(srcdir)/snowball.sql.in | \
+ sed -e "s#_LANGNAME_#$$lang#g" | \
+ sed -e "s#_DICTNAME_#$${lang}_stem#g" | \
+ sed -e "s#_CFGNAME_#$$lang#g" | \
+ sed -e "s#_ASCDICTNAME_#$${ascdictname}_stem#g" | \
+ sed -e "s#_NONASCDICTNAME_#$${nonascdictname}_stem#g" | \
+ sed -e "s#_STOPWORDS_#$$stop#g" ; \
+ done >> $@
+
+install: all installdirs install-lib
+ $(INSTALL_DATA) $(SQLSCRIPT) '$(DESTDIR)$(datadir)'
+ @set -e; \
+ set $(LANGUAGES) ; \
+ while [ "$$#" -gt 0 ] ; \
+ do \
+ lang=$$1; shift; shift; \
+ if [ -s $(srcdir)/stopwords/$${lang}.stop ] ; then \
+ $(INSTALL_DATA) $(srcdir)/stopwords/$${lang}.stop '$(DESTDIR)$(datadir)/$(DICTDIR)' ; \
+ fi \
+ done
+
+installdirs: installdirs-lib
+ $(MKDIR_P) '$(DESTDIR)$(datadir)' '$(DESTDIR)$(datadir)/$(DICTDIR)'
+
+uninstall: uninstall-lib
+ rm -f '$(DESTDIR)$(datadir)/$(SQLSCRIPT)'
+ @set -e; \
+ set $(LANGUAGES) ; \
+ while [ "$$#" -gt 0 ] ; \
+ do \
+ lang=$$1; shift; shift; \
+ if [ -s $(srcdir)/stopwords/$${lang}.stop ] ; then \
+ rm -f '$(DESTDIR)$(datadir)/$(DICTDIR)/'$${lang}.stop ; \
+ fi \
+ done
+
+clean distclean maintainer-clean: clean-lib
+ rm -f $(OBJS) $(SQLSCRIPT)
diff --git a/src/backend/snowball/README b/src/backend/snowball/README
new file mode 100644
index 0000000..675baff
--- /dev/null
+++ b/src/backend/snowball/README
@@ -0,0 +1,68 @@
+src/backend/snowball/README
+
+Snowball-Based Stemming
+=======================
+
+This module uses the word stemming code developed by the Snowball project,
+http://snowballstem.org (formerly http://snowball.tartarus.org)
+which is released by them under a BSD-style license.
+
+The Snowball project does not often make formal releases; it's best
+to pull from their git repository
+
+git clone https://github.com/snowballstem/snowball.git
+
+and then building the derived files is as simple as
+
+cd snowball
+make
+
+At least on Linux, no platform-specific adjustment is needed.
+
+Postgres' files under src/backend/snowball/libstemmer/ and
+src/include/snowball/libstemmer/ are taken directly from the Snowball
+files, with only some minor adjustments of file inclusions. Note
+that most of these files are in fact derived files, not original source.
+The original sources are in the Snowball language, and are built using
+the Snowball-to-C compiler that is also part of the Snowball project.
+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
+48a67a2831005f49c48ec29a5837640e23e54e6b (tag v2.2.0)
+of 2021-11-10.
+
+To update the PostgreSQL sources from a new Snowball version:
+
+0. If you didn't do it already, "make -C snowball".
+
+1. Copy the *.c files in snowball/src_c/ to src/backend/snowball/libstemmer
+with replacement of "../runtime/header.h" by "header.h", for example
+
+for f in .../snowball/src_c/*.c
+do
+ sed 's|\.\./runtime/header\.h|header.h|' $f >libstemmer/`basename $f`
+done
+
+Do not copy stemmers that are listed in libstemmer/modules.txt as
+nonstandard, such as "german2" or "lovins".
+
+2. Copy the *.c files in snowball/runtime/ to
+src/backend/snowball/libstemmer, and edit them to remove direct inclusions
+of system headers such as <stdio.h> --- they should only include "header.h".
+(This removal avoids portability problems on some platforms where <stdio.h>
+is sensitive to largefile compilation options.)
+
+3. Copy the *.h files in snowball/src_c/ and snowball/runtime/
+to src/include/snowball/libstemmer. At this writing the header files
+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, as well as the list in the
+documentation in textsearch.sgml. You might also need to change
+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.
+Be careful that these files must be stored in UTF-8 encoding.
diff --git a/src/backend/snowball/dict_snowball.c b/src/backend/snowball/dict_snowball.c
new file mode 100644
index 0000000..1d5dfff
--- /dev/null
+++ b/src/backend/snowball/dict_snowball.c
@@ -0,0 +1,347 @@
+/*-------------------------------------------------------------------------
+ *
+ * dict_snowball.c
+ * Snowball dictionary
+ *
+ * Portions Copyright (c) 1996-2022, PostgreSQL Global Development Group
+ *
+ * IDENTIFICATION
+ * src/backend/snowball/dict_snowball.c
+ *
+ *-------------------------------------------------------------------------
+ */
+#include "postgres.h"
+
+#include "commands/defrem.h"
+#include "tsearch/ts_locale.h"
+#include "tsearch/ts_utils.h"
+
+/* Some platforms define MAXINT and/or MININT, causing conflicts */
+#ifdef MAXINT
+#undef MAXINT
+#endif
+#ifdef MININT
+#undef MININT
+#endif
+
+/* Now we can include the original Snowball header.h */
+#include "snowball/libstemmer/header.h"
+#include "snowball/libstemmer/stem_ISO_8859_1_basque.h"
+#include "snowball/libstemmer/stem_ISO_8859_1_catalan.h"
+#include "snowball/libstemmer/stem_ISO_8859_1_danish.h"
+#include "snowball/libstemmer/stem_ISO_8859_1_dutch.h"
+#include "snowball/libstemmer/stem_ISO_8859_1_english.h"
+#include "snowball/libstemmer/stem_ISO_8859_1_finnish.h"
+#include "snowball/libstemmer/stem_ISO_8859_1_french.h"
+#include "snowball/libstemmer/stem_ISO_8859_1_german.h"
+#include "snowball/libstemmer/stem_ISO_8859_1_indonesian.h"
+#include "snowball/libstemmer/stem_ISO_8859_1_irish.h"
+#include "snowball/libstemmer/stem_ISO_8859_1_italian.h"
+#include "snowball/libstemmer/stem_ISO_8859_1_norwegian.h"
+#include "snowball/libstemmer/stem_ISO_8859_1_porter.h"
+#include "snowball/libstemmer/stem_ISO_8859_1_portuguese.h"
+#include "snowball/libstemmer/stem_ISO_8859_1_spanish.h"
+#include "snowball/libstemmer/stem_ISO_8859_1_swedish.h"
+#include "snowball/libstemmer/stem_ISO_8859_2_hungarian.h"
+#include "snowball/libstemmer/stem_ISO_8859_2_romanian.h"
+#include "snowball/libstemmer/stem_KOI8_R_russian.h"
+#include "snowball/libstemmer/stem_UTF_8_arabic.h"
+#include "snowball/libstemmer/stem_UTF_8_armenian.h"
+#include "snowball/libstemmer/stem_UTF_8_basque.h"
+#include "snowball/libstemmer/stem_UTF_8_catalan.h"
+#include "snowball/libstemmer/stem_UTF_8_danish.h"
+#include "snowball/libstemmer/stem_UTF_8_dutch.h"
+#include "snowball/libstemmer/stem_UTF_8_english.h"
+#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_hindi.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"
+#include "snowball/libstemmer/stem_UTF_8_italian.h"
+#include "snowball/libstemmer/stem_UTF_8_lithuanian.h"
+#include "snowball/libstemmer/stem_UTF_8_nepali.h"
+#include "snowball/libstemmer/stem_UTF_8_norwegian.h"
+#include "snowball/libstemmer/stem_UTF_8_porter.h"
+#include "snowball/libstemmer/stem_UTF_8_portuguese.h"
+#include "snowball/libstemmer/stem_UTF_8_romanian.h"
+#include "snowball/libstemmer/stem_UTF_8_russian.h"
+#include "snowball/libstemmer/stem_UTF_8_serbian.h"
+#include "snowball/libstemmer/stem_UTF_8_spanish.h"
+#include "snowball/libstemmer/stem_UTF_8_swedish.h"
+#include "snowball/libstemmer/stem_UTF_8_tamil.h"
+#include "snowball/libstemmer/stem_UTF_8_turkish.h"
+#include "snowball/libstemmer/stem_UTF_8_yiddish.h"
+
+PG_MODULE_MAGIC;
+
+PG_FUNCTION_INFO_V1(dsnowball_init);
+
+PG_FUNCTION_INFO_V1(dsnowball_lexize);
+
+/* List of supported modules */
+typedef struct stemmer_module
+{
+ const char *name;
+ pg_enc enc;
+ struct SN_env *(*create) (void);
+ void (*close) (struct SN_env *);
+ int (*stem) (struct SN_env *);
+} stemmer_module;
+
+/* Args: stemmer name, PG code for encoding, Snowball's name for encoding */
+#define STEMMER_MODULE(name,enc,senc) \
+ {#name, enc, name##_##senc##_create_env, name##_##senc##_close_env, name##_##senc##_stem}
+
+static const stemmer_module stemmer_modules[] =
+{
+ /*
+ * Stemmers list from Snowball distribution
+ */
+ STEMMER_MODULE(basque, PG_LATIN1, ISO_8859_1),
+ STEMMER_MODULE(catalan, PG_LATIN1, ISO_8859_1),
+ STEMMER_MODULE(danish, PG_LATIN1, ISO_8859_1),
+ STEMMER_MODULE(dutch, PG_LATIN1, ISO_8859_1),
+ STEMMER_MODULE(english, PG_LATIN1, ISO_8859_1),
+ STEMMER_MODULE(finnish, PG_LATIN1, ISO_8859_1),
+ STEMMER_MODULE(french, PG_LATIN1, ISO_8859_1),
+ STEMMER_MODULE(german, PG_LATIN1, ISO_8859_1),
+ STEMMER_MODULE(indonesian, PG_LATIN1, ISO_8859_1),
+ STEMMER_MODULE(irish, PG_LATIN1, ISO_8859_1),
+ STEMMER_MODULE(italian, PG_LATIN1, ISO_8859_1),
+ STEMMER_MODULE(norwegian, PG_LATIN1, ISO_8859_1),
+ STEMMER_MODULE(porter, PG_LATIN1, ISO_8859_1),
+ STEMMER_MODULE(portuguese, PG_LATIN1, ISO_8859_1),
+ STEMMER_MODULE(spanish, PG_LATIN1, ISO_8859_1),
+ STEMMER_MODULE(swedish, PG_LATIN1, ISO_8859_1),
+ STEMMER_MODULE(hungarian, PG_LATIN2, ISO_8859_2),
+ STEMMER_MODULE(romanian, PG_LATIN2, ISO_8859_2),
+ STEMMER_MODULE(russian, PG_KOI8R, KOI8_R),
+ STEMMER_MODULE(arabic, PG_UTF8, UTF_8),
+ STEMMER_MODULE(armenian, PG_UTF8, UTF_8),
+ STEMMER_MODULE(basque, PG_UTF8, UTF_8),
+ STEMMER_MODULE(catalan, PG_UTF8, UTF_8),
+ STEMMER_MODULE(danish, PG_UTF8, UTF_8),
+ STEMMER_MODULE(dutch, PG_UTF8, UTF_8),
+ STEMMER_MODULE(english, PG_UTF8, UTF_8),
+ 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(hindi, 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),
+ STEMMER_MODULE(italian, PG_UTF8, UTF_8),
+ STEMMER_MODULE(lithuanian, PG_UTF8, UTF_8),
+ STEMMER_MODULE(nepali, PG_UTF8, UTF_8),
+ STEMMER_MODULE(norwegian, PG_UTF8, UTF_8),
+ STEMMER_MODULE(porter, PG_UTF8, UTF_8),
+ STEMMER_MODULE(portuguese, PG_UTF8, UTF_8),
+ STEMMER_MODULE(romanian, PG_UTF8, UTF_8),
+ STEMMER_MODULE(russian, PG_UTF8, UTF_8),
+ STEMMER_MODULE(serbian, PG_UTF8, UTF_8),
+ STEMMER_MODULE(spanish, PG_UTF8, UTF_8),
+ STEMMER_MODULE(swedish, PG_UTF8, UTF_8),
+ STEMMER_MODULE(tamil, PG_UTF8, UTF_8),
+ STEMMER_MODULE(turkish, PG_UTF8, UTF_8),
+ STEMMER_MODULE(yiddish, PG_UTF8, UTF_8),
+
+ /*
+ * Stemmer with PG_SQL_ASCII encoding should be valid for any server
+ * encoding
+ */
+ STEMMER_MODULE(english, PG_SQL_ASCII, ISO_8859_1),
+
+ {NULL, 0, NULL, NULL, NULL} /* list end marker */
+};
+
+
+typedef struct DictSnowball
+{
+ struct SN_env *z;
+ StopList stoplist;
+ bool needrecode; /* needs recoding before/after call stem */
+ int (*stem) (struct SN_env *z);
+
+ /*
+ * snowball saves alloced memory between calls, so we should run it in our
+ * private memory context. Note, init function is executed in long lived
+ * context, so we just remember CurrentMemoryContext
+ */
+ MemoryContext dictCtx;
+} DictSnowball;
+
+
+static void
+locate_stem_module(DictSnowball *d, const char *lang)
+{
+ const stemmer_module *m;
+
+ /*
+ * First, try to find exact match of stemmer module. Stemmer with
+ * PG_SQL_ASCII encoding is treated as working with any server encoding
+ */
+ for (m = stemmer_modules; m->name; m++)
+ {
+ if ((m->enc == PG_SQL_ASCII || m->enc == GetDatabaseEncoding()) &&
+ pg_strcasecmp(m->name, lang) == 0)
+ {
+ d->stem = m->stem;
+ d->z = m->create();
+ d->needrecode = false;
+ return;
+ }
+ }
+
+ /*
+ * Second, try to find stemmer for needed language for UTF8 encoding.
+ */
+ for (m = stemmer_modules; m->name; m++)
+ {
+ if (m->enc == PG_UTF8 && pg_strcasecmp(m->name, lang) == 0)
+ {
+ d->stem = m->stem;
+ d->z = m->create();
+ d->needrecode = true;
+ return;
+ }
+ }
+
+ ereport(ERROR,
+ (errcode(ERRCODE_UNDEFINED_OBJECT),
+ errmsg("no Snowball stemmer available for language \"%s\" and encoding \"%s\"",
+ lang, GetDatabaseEncodingName())));
+}
+
+Datum
+dsnowball_init(PG_FUNCTION_ARGS)
+{
+ List *dictoptions = (List *) PG_GETARG_POINTER(0);
+ DictSnowball *d;
+ bool stoploaded = false;
+ ListCell *l;
+
+ d = (DictSnowball *) palloc0(sizeof(DictSnowball));
+
+ foreach(l, dictoptions)
+ {
+ DefElem *defel = (DefElem *) lfirst(l);
+
+ if (strcmp(defel->defname, "stopwords") == 0)
+ {
+ if (stoploaded)
+ ereport(ERROR,
+ (errcode(ERRCODE_INVALID_PARAMETER_VALUE),
+ errmsg("multiple StopWords parameters")));
+ readstoplist(defGetString(defel), &d->stoplist, lowerstr);
+ stoploaded = true;
+ }
+ else if (strcmp(defel->defname, "language") == 0)
+ {
+ if (d->stem)
+ ereport(ERROR,
+ (errcode(ERRCODE_INVALID_PARAMETER_VALUE),
+ errmsg("multiple Language parameters")));
+ locate_stem_module(d, defGetString(defel));
+ }
+ else
+ {
+ ereport(ERROR,
+ (errcode(ERRCODE_INVALID_PARAMETER_VALUE),
+ errmsg("unrecognized Snowball parameter: \"%s\"",
+ defel->defname)));
+ }
+ }
+
+ if (!d->stem)
+ ereport(ERROR,
+ (errcode(ERRCODE_INVALID_PARAMETER_VALUE),
+ errmsg("missing Language parameter")));
+
+ d->dictCtx = CurrentMemoryContext;
+
+ PG_RETURN_POINTER(d);
+}
+
+Datum
+dsnowball_lexize(PG_FUNCTION_ARGS)
+{
+ DictSnowball *d = (DictSnowball *) PG_GETARG_POINTER(0);
+ char *in = (char *) PG_GETARG_POINTER(1);
+ int32 len = PG_GETARG_INT32(2);
+ char *txt = lowerstr_with_len(in, len);
+ TSLexeme *res = palloc0(sizeof(TSLexeme) * 2);
+
+ /*
+ * Do not pass strings exceeding 1000 bytes to the stemmer, as they're
+ * surely not words in any human language. This restriction avoids
+ * wasting cycles on stuff like base64-encoded data, and it protects us
+ * against possible inefficiency or misbehavior in the stemmer. (For
+ * example, the Turkish stemmer has an indefinite recursion, so it can
+ * crash on long-enough strings.) However, Snowball dictionaries are
+ * defined to recognize all strings, so we can't reject the string as an
+ * unknown word.
+ */
+ if (len > 1000)
+ {
+ /* return the lexeme lowercased, but otherwise unmodified */
+ res->lexeme = txt;
+ }
+ else if (*txt == '\0' || searchstoplist(&(d->stoplist), txt))
+ {
+ /* empty or stopword, so report as stopword */
+ pfree(txt);
+ }
+ else
+ {
+ MemoryContext saveCtx;
+
+ /*
+ * recode to utf8 if stemmer is utf8 and doesn't match server encoding
+ */
+ if (d->needrecode)
+ {
+ char *recoded;
+
+ recoded = pg_server_to_any(txt, strlen(txt), PG_UTF8);
+ if (recoded != txt)
+ {
+ pfree(txt);
+ txt = recoded;
+ }
+ }
+
+ /* see comment about d->dictCtx */
+ saveCtx = MemoryContextSwitchTo(d->dictCtx);
+ SN_set_current(d->z, strlen(txt), (symbol *) txt);
+ d->stem(d->z);
+ MemoryContextSwitchTo(saveCtx);
+
+ if (d->z->p && d->z->l)
+ {
+ txt = repalloc(txt, d->z->l + 1);
+ memcpy(txt, d->z->p, d->z->l);
+ txt[d->z->l] = '\0';
+ }
+
+ /* back recode if needed */
+ if (d->needrecode)
+ {
+ char *recoded;
+
+ recoded = pg_any_to_server(txt, strlen(txt), PG_UTF8);
+ if (recoded != txt)
+ {
+ pfree(txt);
+ txt = recoded;
+ }
+ }
+
+ res->lexeme = txt;
+ }
+
+ PG_RETURN_POINTER(res);
+}
diff --git a/src/backend/snowball/libstemmer/api.c b/src/backend/snowball/libstemmer/api.c
new file mode 100644
index 0000000..375938e
--- /dev/null
+++ b/src/backend/snowball/libstemmer/api.c
@@ -0,0 +1,56 @@
+#include "header.h"
+
+extern struct SN_env * SN_create_env(int S_size, int I_size)
+{
+ struct SN_env * z = (struct SN_env *) calloc(1, sizeof(struct SN_env));
+ if (z == NULL) return NULL;
+ z->p = create_s();
+ if (z->p == NULL) goto error;
+ if (S_size)
+ {
+ int i;
+ z->S = (symbol * *) calloc(S_size, sizeof(symbol *));
+ if (z->S == NULL) goto error;
+
+ for (i = 0; i < S_size; i++)
+ {
+ z->S[i] = create_s();
+ if (z->S[i] == NULL) goto error;
+ }
+ }
+
+ if (I_size)
+ {
+ z->I = (int *) calloc(I_size, sizeof(int));
+ if (z->I == NULL) goto error;
+ }
+
+ return z;
+error:
+ SN_close_env(z, S_size);
+ return NULL;
+}
+
+extern void SN_close_env(struct SN_env * z, int S_size)
+{
+ if (z == NULL) return;
+ if (S_size)
+ {
+ int i;
+ for (i = 0; i < S_size; i++)
+ {
+ lose_s(z->S[i]);
+ }
+ free(z->S);
+ }
+ free(z->I);
+ if (z->p) lose_s(z->p);
+ free(z);
+}
+
+extern int SN_set_current(struct SN_env * z, int size, const symbol * s)
+{
+ int err = replace_s(z, 0, z->l, size, s, NULL);
+ z->c = 0;
+ return err;
+}
diff --git a/src/backend/snowball/libstemmer/stem_ISO_8859_1_basque.c b/src/backend/snowball/libstemmer/stem_ISO_8859_1_basque.c
new file mode 100644
index 0000000..5089234
--- /dev/null
+++ b/src/backend/snowball/libstemmer/stem_ISO_8859_1_basque.c
@@ -0,0 +1,1182 @@
+/* Generated by Snowball 2.2.0 - https://snowballstem.org/ */
+
+#include "header.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+extern int basque_ISO_8859_1_stem(struct SN_env * z);
+#ifdef __cplusplus
+}
+#endif
+static int r_R1(struct SN_env * z);
+static int r_R2(struct SN_env * z);
+static int r_RV(struct SN_env * z);
+static int r_mark_regions(struct SN_env * z);
+static int r_adjetiboak(struct SN_env * z);
+static int r_izenak(struct SN_env * z);
+static int r_aditzak(struct SN_env * z);
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+extern struct SN_env * basque_ISO_8859_1_create_env(void);
+extern void basque_ISO_8859_1_close_env(struct SN_env * z);
+
+
+#ifdef __cplusplus
+}
+#endif
+static const symbol s_0_0[4] = { 'i', 'd', 'e', 'a' };
+static const symbol s_0_1[5] = { 'b', 'i', 'd', 'e', 'a' };
+static const symbol s_0_2[5] = { 'k', 'i', 'd', 'e', 'a' };
+static const symbol s_0_3[5] = { 'p', 'i', 'd', 'e', 'a' };
+static const symbol s_0_4[6] = { 'k', 'u', 'n', 'd', 'e', 'a' };
+static const symbol s_0_5[5] = { 'g', 'a', 'l', 'e', 'a' };
+static const symbol s_0_6[6] = { 't', 'a', 'i', 'l', 'e', 'a' };
+static const symbol s_0_7[7] = { 't', 'z', 'a', 'i', 'l', 'e', 'a' };
+static const symbol s_0_8[5] = { 'g', 'u', 'n', 'e', 'a' };
+static const symbol s_0_9[5] = { 'k', 'u', 'n', 'e', 'a' };
+static const symbol s_0_10[5] = { 't', 'z', 'a', 'g', 'a' };
+static const symbol s_0_11[4] = { 'g', 'a', 'i', 'a' };
+static const symbol s_0_12[5] = { 'a', 'l', 'd', 'i', 'a' };
+static const symbol s_0_13[6] = { 't', 'a', 'l', 'd', 'i', 'a' };
+static const symbol s_0_14[5] = { 'k', 'a', 'r', 'i', 'a' };
+static const symbol s_0_15[6] = { 'g', 'a', 'r', 'r', 'i', 'a' };
+static const symbol s_0_16[6] = { 'k', 'a', 'r', 'r', 'i', 'a' };
+static const symbol s_0_17[2] = { 'k', 'a' };
+static const symbol s_0_18[5] = { 't', 'z', 'a', 'k', 'a' };
+static const symbol s_0_19[2] = { 'l', 'a' };
+static const symbol s_0_20[4] = { 'm', 'e', 'n', 'a' };
+static const symbol s_0_21[4] = { 'p', 'e', 'n', 'a' };
+static const symbol s_0_22[4] = { 'k', 'i', 'n', 'a' };
+static const symbol s_0_23[5] = { 'e', 'z', 'i', 'n', 'a' };
+static const symbol s_0_24[6] = { 't', 'e', 'z', 'i', 'n', 'a' };
+static const symbol s_0_25[4] = { 'k', 'u', 'n', 'a' };
+static const symbol s_0_26[4] = { 't', 'u', 'n', 'a' };
+static const symbol s_0_27[6] = { 'k', 'i', 'z', 'u', 'n', 'a' };
+static const symbol s_0_28[3] = { 'e', 'r', 'a' };
+static const symbol s_0_29[4] = { 'b', 'e', 'r', 'a' };
+static const symbol s_0_30[7] = { 'a', 'r', 'a', 'b', 'e', 'r', 'a' };
+static const symbol s_0_31[4] = { 'k', 'e', 'r', 'a' };
+static const symbol s_0_32[4] = { 'p', 'e', 'r', 'a' };
+static const symbol s_0_33[4] = { 'o', 'r', 'r', 'a' };
+static const symbol s_0_34[5] = { 'k', 'o', 'r', 'r', 'a' };
+static const symbol s_0_35[4] = { 'd', 'u', 'r', 'a' };
+static const symbol s_0_36[4] = { 'g', 'u', 'r', 'a' };
+static const symbol s_0_37[4] = { 'k', 'u', 'r', 'a' };
+static const symbol s_0_38[4] = { 't', 'u', 'r', 'a' };
+static const symbol s_0_39[3] = { 'e', 't', 'a' };
+static const symbol s_0_40[4] = { 'k', 'e', 't', 'a' };
+static const symbol s_0_41[6] = { 'g', 'a', 'i', 'l', 'u', 'a' };
+static const symbol s_0_42[3] = { 'e', 'z', 'a' };
+static const symbol s_0_43[6] = { 'e', 'r', 'r', 'e', 'z', 'a' };
+static const symbol s_0_44[3] = { 't', 'z', 'a' };
+static const symbol s_0_45[6] = { 'g', 'a', 'i', 't', 'z', 'a' };
+static const symbol s_0_46[6] = { 'k', 'a', 'i', 't', 'z', 'a' };
+static const symbol s_0_47[6] = { 'k', 'u', 'n', 't', 'z', 'a' };
+static const symbol s_0_48[3] = { 'i', 'd', 'e' };
+static const symbol s_0_49[4] = { 'b', 'i', 'd', 'e' };
+static const symbol s_0_50[4] = { 'k', 'i', 'd', 'e' };
+static const symbol s_0_51[4] = { 'p', 'i', 'd', 'e' };
+static const symbol s_0_52[5] = { 'k', 'u', 'n', 'd', 'e' };
+static const symbol s_0_53[5] = { 't', 'z', 'a', 'k', 'e' };
+static const symbol s_0_54[5] = { 't', 'z', 'e', 'k', 'e' };
+static const symbol s_0_55[2] = { 'l', 'e' };
+static const symbol s_0_56[4] = { 'g', 'a', 'l', 'e' };
+static const symbol s_0_57[5] = { 't', 'a', 'i', 'l', 'e' };
+static const symbol s_0_58[6] = { 't', 'z', 'a', 'i', 'l', 'e' };
+static const symbol s_0_59[4] = { 'g', 'u', 'n', 'e' };
+static const symbol s_0_60[4] = { 'k', 'u', 'n', 'e' };
+static const symbol s_0_61[3] = { 't', 'z', 'e' };
+static const symbol s_0_62[4] = { 'a', 't', 'z', 'e' };
+static const symbol s_0_63[3] = { 'g', 'a', 'i' };
+static const symbol s_0_64[4] = { 'a', 'l', 'd', 'i' };
+static const symbol s_0_65[5] = { 't', 'a', 'l', 'd', 'i' };
+static const symbol s_0_66[2] = { 'k', 'i' };
+static const symbol s_0_67[3] = { 'a', 'r', 'i' };
+static const symbol s_0_68[4] = { 'k', 'a', 'r', 'i' };
+static const symbol s_0_69[4] = { 'l', 'a', 'r', 'i' };
+static const symbol s_0_70[4] = { 't', 'a', 'r', 'i' };
+static const symbol s_0_71[5] = { 'e', 't', 'a', 'r', 'i' };
+static const symbol s_0_72[5] = { 'g', 'a', 'r', 'r', 'i' };
+static const symbol s_0_73[5] = { 'k', 'a', 'r', 'r', 'i' };
+static const symbol s_0_74[5] = { 'a', 'r', 'a', 'z', 'i' };
+static const symbol s_0_75[6] = { 't', 'a', 'r', 'a', 'z', 'i' };
+static const symbol s_0_76[2] = { 'a', 'n' };
+static const symbol s_0_77[3] = { 'e', 'a', 'n' };
+static const symbol s_0_78[4] = { 'r', 'e', 'a', 'n' };
+static const symbol s_0_79[3] = { 'k', 'a', 'n' };
+static const symbol s_0_80[4] = { 'e', 't', 'a', 'n' };
+static const symbol s_0_81[7] = { 'a', 't', 's', 'e', 'd', 'e', 'n' };
+static const symbol s_0_82[3] = { 'm', 'e', 'n' };
+static const symbol s_0_83[3] = { 'p', 'e', 'n' };
+static const symbol s_0_84[3] = { 'k', 'i', 'n' };
+static const symbol s_0_85[5] = { 'r', 'e', 'k', 'i', 'n' };
+static const symbol s_0_86[4] = { 'e', 'z', 'i', 'n' };
+static const symbol s_0_87[5] = { 't', 'e', 'z', 'i', 'n' };
+static const symbol s_0_88[3] = { 't', 'u', 'n' };
+static const symbol s_0_89[5] = { 'k', 'i', 'z', 'u', 'n' };
+static const symbol s_0_90[2] = { 'g', 'o' };
+static const symbol s_0_91[3] = { 'a', 'g', 'o' };
+static const symbol s_0_92[3] = { 't', 'i', 'o' };
+static const symbol s_0_93[4] = { 'd', 'a', 'k', 'o' };
+static const symbol s_0_94[2] = { 'o', 'r' };
+static const symbol s_0_95[3] = { 'k', 'o', 'r' };
+static const symbol s_0_96[4] = { 't', 'z', 'a', 't' };
+static const symbol s_0_97[2] = { 'd', 'u' };
+static const symbol s_0_98[5] = { 'g', 'a', 'i', 'l', 'u' };
+static const symbol s_0_99[2] = { 't', 'u' };
+static const symbol s_0_100[3] = { 'a', 't', 'u' };
+static const symbol s_0_101[6] = { 'a', 'l', 'd', 'a', 't', 'u' };
+static const symbol s_0_102[4] = { 't', 'a', 't', 'u' };
+static const symbol s_0_103[6] = { 'b', 'a', 'd', 'i', 't', 'u' };
+static const symbol s_0_104[2] = { 'e', 'z' };
+static const symbol s_0_105[5] = { 'e', 'r', 'r', 'e', 'z' };
+static const symbol s_0_106[4] = { 't', 'z', 'e', 'z' };
+static const symbol s_0_107[5] = { 'g', 'a', 'i', 't', 'z' };
+static const symbol s_0_108[5] = { 'k', 'a', 'i', 't', 'z' };
+
+static const struct among a_0[109] =
+{
+{ 4, s_0_0, -1, 1, 0},
+{ 5, s_0_1, 0, 1, 0},
+{ 5, s_0_2, 0, 1, 0},
+{ 5, s_0_3, 0, 1, 0},
+{ 6, s_0_4, -1, 1, 0},
+{ 5, s_0_5, -1, 1, 0},
+{ 6, s_0_6, -1, 1, 0},
+{ 7, s_0_7, -1, 1, 0},
+{ 5, s_0_8, -1, 1, 0},
+{ 5, s_0_9, -1, 1, 0},
+{ 5, s_0_10, -1, 1, 0},
+{ 4, s_0_11, -1, 1, 0},
+{ 5, s_0_12, -1, 1, 0},
+{ 6, s_0_13, 12, 1, 0},
+{ 5, s_0_14, -1, 1, 0},
+{ 6, s_0_15, -1, 2, 0},
+{ 6, s_0_16, -1, 1, 0},
+{ 2, s_0_17, -1, 1, 0},
+{ 5, s_0_18, 17, 1, 0},
+{ 2, s_0_19, -1, 1, 0},
+{ 4, s_0_20, -1, 1, 0},
+{ 4, s_0_21, -1, 1, 0},
+{ 4, s_0_22, -1, 1, 0},
+{ 5, s_0_23, -1, 1, 0},
+{ 6, s_0_24, 23, 1, 0},
+{ 4, s_0_25, -1, 1, 0},
+{ 4, s_0_26, -1, 1, 0},
+{ 6, s_0_27, -1, 1, 0},
+{ 3, s_0_28, -1, 1, 0},
+{ 4, s_0_29, 28, 1, 0},
+{ 7, s_0_30, 29, 4, 0},
+{ 4, s_0_31, 28, 1, 0},
+{ 4, s_0_32, 28, 1, 0},
+{ 4, s_0_33, -1, 1, 0},
+{ 5, s_0_34, 33, 1, 0},
+{ 4, s_0_35, -1, 1, 0},
+{ 4, s_0_36, -1, 1, 0},
+{ 4, s_0_37, -1, 1, 0},
+{ 4, s_0_38, -1, 1, 0},
+{ 3, s_0_39, -1, 1, 0},
+{ 4, s_0_40, 39, 1, 0},
+{ 6, s_0_41, -1, 1, 0},
+{ 3, s_0_42, -1, 1, 0},
+{ 6, s_0_43, 42, 1, 0},
+{ 3, s_0_44, -1, 2, 0},
+{ 6, s_0_45, 44, 1, 0},
+{ 6, s_0_46, 44, 1, 0},
+{ 6, s_0_47, 44, 1, 0},
+{ 3, s_0_48, -1, 1, 0},
+{ 4, s_0_49, 48, 1, 0},
+{ 4, s_0_50, 48, 1, 0},
+{ 4, s_0_51, 48, 1, 0},
+{ 5, s_0_52, -1, 1, 0},
+{ 5, s_0_53, -1, 1, 0},
+{ 5, s_0_54, -1, 1, 0},
+{ 2, s_0_55, -1, 1, 0},
+{ 4, s_0_56, 55, 1, 0},
+{ 5, s_0_57, 55, 1, 0},
+{ 6, s_0_58, 55, 1, 0},
+{ 4, s_0_59, -1, 1, 0},
+{ 4, s_0_60, -1, 1, 0},
+{ 3, s_0_61, -1, 1, 0},
+{ 4, s_0_62, 61, 1, 0},
+{ 3, s_0_63, -1, 1, 0},
+{ 4, s_0_64, -1, 1, 0},
+{ 5, s_0_65, 64, 1, 0},
+{ 2, s_0_66, -1, 1, 0},
+{ 3, s_0_67, -1, 1, 0},
+{ 4, s_0_68, 67, 1, 0},
+{ 4, s_0_69, 67, 1, 0},
+{ 4, s_0_70, 67, 1, 0},
+{ 5, s_0_71, 70, 1, 0},
+{ 5, s_0_72, -1, 2, 0},
+{ 5, s_0_73, -1, 1, 0},
+{ 5, s_0_74, -1, 1, 0},
+{ 6, s_0_75, 74, 1, 0},
+{ 2, s_0_76, -1, 1, 0},
+{ 3, s_0_77, 76, 1, 0},
+{ 4, s_0_78, 77, 1, 0},
+{ 3, s_0_79, 76, 1, 0},
+{ 4, s_0_80, 76, 1, 0},
+{ 7, s_0_81, -1, 3, 0},
+{ 3, s_0_82, -1, 1, 0},
+{ 3, s_0_83, -1, 1, 0},
+{ 3, s_0_84, -1, 1, 0},
+{ 5, s_0_85, 84, 1, 0},
+{ 4, s_0_86, -1, 1, 0},
+{ 5, s_0_87, 86, 1, 0},
+{ 3, s_0_88, -1, 1, 0},
+{ 5, s_0_89, -1, 1, 0},
+{ 2, s_0_90, -1, 1, 0},
+{ 3, s_0_91, 90, 1, 0},
+{ 3, s_0_92, -1, 1, 0},
+{ 4, s_0_93, -1, 1, 0},
+{ 2, s_0_94, -1, 1, 0},
+{ 3, s_0_95, 94, 1, 0},
+{ 4, s_0_96, -1, 1, 0},
+{ 2, s_0_97, -1, 1, 0},
+{ 5, s_0_98, -1, 1, 0},
+{ 2, s_0_99, -1, 1, 0},
+{ 3, s_0_100, 99, 1, 0},
+{ 6, s_0_101, 100, 1, 0},
+{ 4, s_0_102, 100, 1, 0},
+{ 6, s_0_103, 99, 5, 0},
+{ 2, s_0_104, -1, 1, 0},
+{ 5, s_0_105, 104, 1, 0},
+{ 4, s_0_106, 104, 1, 0},
+{ 5, s_0_107, -1, 1, 0},
+{ 5, s_0_108, -1, 1, 0}
+};
+
+static const symbol s_1_0[3] = { 'a', 'd', 'a' };
+static const symbol s_1_1[4] = { 'k', 'a', 'd', 'a' };
+static const symbol s_1_2[4] = { 'a', 'n', 'd', 'a' };
+static const symbol s_1_3[5] = { 'd', 'e', 'n', 'd', 'a' };
+static const symbol s_1_4[5] = { 'g', 'a', 'b', 'e', 'a' };
+static const symbol s_1_5[5] = { 'k', 'a', 'b', 'e', 'a' };
+static const symbol s_1_6[5] = { 'a', 'l', 'd', 'e', 'a' };
+static const symbol s_1_7[6] = { 'k', 'a', 'l', 'd', 'e', 'a' };
+static const symbol s_1_8[6] = { 't', 'a', 'l', 'd', 'e', 'a' };
+static const symbol s_1_9[5] = { 'o', 'r', 'd', 'e', 'a' };
+static const symbol s_1_10[5] = { 'z', 'a', 'l', 'e', 'a' };
+static const symbol s_1_11[6] = { 't', 'z', 'a', 'l', 'e', 'a' };
+static const symbol s_1_12[5] = { 'g', 'i', 'l', 'e', 'a' };
+static const symbol s_1_13[4] = { 'e', 'm', 'e', 'a' };
+static const symbol s_1_14[5] = { 'k', 'u', 'm', 'e', 'a' };
+static const symbol s_1_15[3] = { 'n', 'e', 'a' };
+static const symbol s_1_16[4] = { 'e', 'n', 'e', 'a' };
+static const symbol s_1_17[6] = { 'z', 'i', 'o', 'n', 'e', 'a' };
+static const symbol s_1_18[4] = { 'u', 'n', 'e', 'a' };
+static const symbol s_1_19[5] = { 'g', 'u', 'n', 'e', 'a' };
+static const symbol s_1_20[3] = { 'p', 'e', 'a' };
+static const symbol s_1_21[6] = { 'a', 'u', 'r', 'r', 'e', 'a' };
+static const symbol s_1_22[3] = { 't', 'e', 'a' };
+static const symbol s_1_23[5] = { 'k', 'o', 't', 'e', 'a' };
+static const symbol s_1_24[5] = { 'a', 'r', 't', 'e', 'a' };
+static const symbol s_1_25[5] = { 'o', 's', 't', 'e', 'a' };
+static const symbol s_1_26[5] = { 'e', 't', 'x', 'e', 'a' };
+static const symbol s_1_27[2] = { 'g', 'a' };
+static const symbol s_1_28[4] = { 'a', 'n', 'g', 'a' };
+static const symbol s_1_29[4] = { 'g', 'a', 'i', 'a' };
+static const symbol s_1_30[5] = { 'a', 'l', 'd', 'i', 'a' };
+static const symbol s_1_31[6] = { 't', 'a', 'l', 'd', 'i', 'a' };
+static const symbol s_1_32[6] = { 'h', 'a', 'n', 'd', 'i', 'a' };
+static const symbol s_1_33[6] = { 'm', 'e', 'n', 'd', 'i', 'a' };
+static const symbol s_1_34[4] = { 'g', 'e', 'i', 'a' };
+static const symbol s_1_35[4] = { 'e', 'g', 'i', 'a' };
+static const symbol s_1_36[5] = { 'd', 'e', 'g', 'i', 'a' };
+static const symbol s_1_37[5] = { 't', 'e', 'g', 'i', 'a' };
+static const symbol s_1_38[5] = { 'n', 'a', 'h', 'i', 'a' };
+static const symbol s_1_39[4] = { 'o', 'h', 'i', 'a' };
+static const symbol s_1_40[3] = { 'k', 'i', 'a' };
+static const symbol s_1_41[5] = { 't', 'o', 'k', 'i', 'a' };
+static const symbol s_1_42[3] = { 'o', 'i', 'a' };
+static const symbol s_1_43[4] = { 'k', 'o', 'i', 'a' };
+static const symbol s_1_44[4] = { 'a', 'r', 'i', 'a' };
+static const symbol s_1_45[5] = { 'k', 'a', 'r', 'i', 'a' };
+static const symbol s_1_46[5] = { 'l', 'a', 'r', 'i', 'a' };
+static const symbol s_1_47[5] = { 't', 'a', 'r', 'i', 'a' };
+static const symbol s_1_48[4] = { 'e', 'r', 'i', 'a' };
+static const symbol s_1_49[5] = { 'k', 'e', 'r', 'i', 'a' };
+static const symbol s_1_50[5] = { 't', 'e', 'r', 'i', 'a' };
+static const symbol s_1_51[6] = { 'g', 'a', 'r', 'r', 'i', 'a' };
+static const symbol s_1_52[6] = { 'l', 'a', 'r', 'r', 'i', 'a' };
+static const symbol s_1_53[6] = { 'k', 'i', 'r', 'r', 'i', 'a' };
+static const symbol s_1_54[5] = { 'd', 'u', 'r', 'i', 'a' };
+static const symbol s_1_55[4] = { 'a', 's', 'i', 'a' };
+static const symbol s_1_56[3] = { 't', 'i', 'a' };
+static const symbol s_1_57[4] = { 'e', 'z', 'i', 'a' };
+static const symbol s_1_58[5] = { 'b', 'i', 'z', 'i', 'a' };
+static const symbol s_1_59[6] = { 'o', 'n', 't', 'z', 'i', 'a' };
+static const symbol s_1_60[2] = { 'k', 'a' };
+static const symbol s_1_61[4] = { 'j', 'o', 'k', 'a' };
+static const symbol s_1_62[5] = { 'a', 'u', 'r', 'k', 'a' };
+static const symbol s_1_63[3] = { 's', 'k', 'a' };
+static const symbol s_1_64[3] = { 'x', 'k', 'a' };
+static const symbol s_1_65[3] = { 'z', 'k', 'a' };
+static const symbol s_1_66[6] = { 'g', 'i', 'b', 'e', 'l', 'a' };
+static const symbol s_1_67[4] = { 'g', 'e', 'l', 'a' };
+static const symbol s_1_68[5] = { 'k', 'a', 'i', 'l', 'a' };
+static const symbol s_1_69[5] = { 's', 'k', 'i', 'l', 'a' };
+static const symbol s_1_70[4] = { 't', 'i', 'l', 'a' };
+static const symbol s_1_71[3] = { 'o', 'l', 'a' };
+static const symbol s_1_72[2] = { 'n', 'a' };
+static const symbol s_1_73[4] = { 'k', 'a', 'n', 'a' };
+static const symbol s_1_74[3] = { 'e', 'n', 'a' };
+static const symbol s_1_75[7] = { 'g', 'a', 'r', 'r', 'e', 'n', 'a' };
+static const symbol s_1_76[7] = { 'g', 'e', 'r', 'r', 'e', 'n', 'a' };
+static const symbol s_1_77[6] = { 'u', 'r', 'r', 'e', 'n', 'a' };
+static const symbol s_1_78[5] = { 'z', 'a', 'i', 'n', 'a' };
+static const symbol s_1_79[6] = { 't', 'z', 'a', 'i', 'n', 'a' };
+static const symbol s_1_80[4] = { 'k', 'i', 'n', 'a' };
+static const symbol s_1_81[4] = { 'm', 'i', 'n', 'a' };
+static const symbol s_1_82[5] = { 'g', 'a', 'r', 'n', 'a' };
+static const symbol s_1_83[3] = { 'u', 'n', 'a' };
+static const symbol s_1_84[4] = { 'd', 'u', 'n', 'a' };
+static const symbol s_1_85[5] = { 'a', 's', 'u', 'n', 'a' };
+static const symbol s_1_86[6] = { 't', 'a', 's', 'u', 'n', 'a' };
+static const symbol s_1_87[5] = { 'o', 'n', 'd', 'o', 'a' };
+static const symbol s_1_88[6] = { 'k', 'o', 'n', 'd', 'o', 'a' };
+static const symbol s_1_89[4] = { 'n', 'g', 'o', 'a' };
+static const symbol s_1_90[4] = { 'z', 'i', 'o', 'a' };
+static const symbol s_1_91[3] = { 'k', 'o', 'a' };
+static const symbol s_1_92[5] = { 't', 'a', 'k', 'o', 'a' };
+static const symbol s_1_93[4] = { 'z', 'k', 'o', 'a' };
+static const symbol s_1_94[3] = { 'n', 'o', 'a' };
+static const symbol s_1_95[5] = { 'z', 'i', 'n', 'o', 'a' };
+static const symbol s_1_96[4] = { 'a', 'r', 'o', 'a' };
+static const symbol s_1_97[5] = { 't', 'a', 'r', 'o', 'a' };
+static const symbol s_1_98[5] = { 'z', 'a', 'r', 'o', 'a' };
+static const symbol s_1_99[4] = { 'e', 'r', 'o', 'a' };
+static const symbol s_1_100[4] = { 'o', 'r', 'o', 'a' };
+static const symbol s_1_101[4] = { 'o', 's', 'o', 'a' };
+static const symbol s_1_102[3] = { 't', 'o', 'a' };
+static const symbol s_1_103[4] = { 't', 't', 'o', 'a' };
+static const symbol s_1_104[4] = { 'z', 't', 'o', 'a' };
+static const symbol s_1_105[4] = { 't', 'x', 'o', 'a' };
+static const symbol s_1_106[4] = { 't', 'z', 'o', 'a' };
+static const symbol s_1_107[3] = { 0xF1, 'o', 'a' };
+static const symbol s_1_108[2] = { 'r', 'a' };
+static const symbol s_1_109[3] = { 'a', 'r', 'a' };
+static const symbol s_1_110[4] = { 'd', 'a', 'r', 'a' };
+static const symbol s_1_111[5] = { 'l', 'i', 'a', 'r', 'a' };
+static const symbol s_1_112[5] = { 't', 'i', 'a', 'r', 'a' };
+static const symbol s_1_113[4] = { 't', 'a', 'r', 'a' };
+static const symbol s_1_114[5] = { 'e', 't', 'a', 'r', 'a' };
+static const symbol s_1_115[5] = { 't', 'z', 'a', 'r', 'a' };
+static const symbol s_1_116[4] = { 'b', 'e', 'r', 'a' };
+static const symbol s_1_117[4] = { 'k', 'e', 'r', 'a' };
+static const symbol s_1_118[4] = { 'p', 'e', 'r', 'a' };
+static const symbol s_1_119[3] = { 'o', 'r', 'a' };
+static const symbol s_1_120[6] = { 't', 'z', 'a', 'r', 'r', 'a' };
+static const symbol s_1_121[5] = { 'k', 'o', 'r', 'r', 'a' };
+static const symbol s_1_122[3] = { 't', 'r', 'a' };
+static const symbol s_1_123[2] = { 's', 'a' };
+static const symbol s_1_124[3] = { 'o', 's', 'a' };
+static const symbol s_1_125[2] = { 't', 'a' };
+static const symbol s_1_126[3] = { 'e', 't', 'a' };
+static const symbol s_1_127[4] = { 'k', 'e', 't', 'a' };
+static const symbol s_1_128[3] = { 's', 't', 'a' };
+static const symbol s_1_129[3] = { 'd', 'u', 'a' };
+static const symbol s_1_130[6] = { 'm', 'e', 'n', 'd', 'u', 'a' };
+static const symbol s_1_131[5] = { 'o', 'r', 'd', 'u', 'a' };
+static const symbol s_1_132[5] = { 'l', 'e', 'k', 'u', 'a' };
+static const symbol s_1_133[5] = { 'b', 'u', 'r', 'u', 'a' };
+static const symbol s_1_134[5] = { 'd', 'u', 'r', 'u', 'a' };
+static const symbol s_1_135[4] = { 't', 's', 'u', 'a' };
+static const symbol s_1_136[3] = { 't', 'u', 'a' };
+static const symbol s_1_137[6] = { 'm', 'e', 'n', 't', 'u', 'a' };
+static const symbol s_1_138[5] = { 'e', 's', 't', 'u', 'a' };
+static const symbol s_1_139[4] = { 't', 'x', 'u', 'a' };
+static const symbol s_1_140[3] = { 'z', 'u', 'a' };
+static const symbol s_1_141[4] = { 't', 'z', 'u', 'a' };
+static const symbol s_1_142[2] = { 'z', 'a' };
+static const symbol s_1_143[3] = { 'e', 'z', 'a' };
+static const symbol s_1_144[5] = { 'e', 'r', 'o', 'z', 'a' };
+static const symbol s_1_145[3] = { 't', 'z', 'a' };
+static const symbol s_1_146[6] = { 'k', 'o', 'i', 't', 'z', 'a' };
+static const symbol s_1_147[5] = { 'a', 'n', 't', 'z', 'a' };
+static const symbol s_1_148[6] = { 'g', 'i', 'n', 't', 'z', 'a' };
+static const symbol s_1_149[6] = { 'k', 'i', 'n', 't', 'z', 'a' };
+static const symbol s_1_150[6] = { 'k', 'u', 'n', 't', 'z', 'a' };
+static const symbol s_1_151[4] = { 'g', 'a', 'b', 'e' };
+static const symbol s_1_152[4] = { 'k', 'a', 'b', 'e' };
+static const symbol s_1_153[4] = { 'k', 'i', 'd', 'e' };
+static const symbol s_1_154[4] = { 'a', 'l', 'd', 'e' };
+static const symbol s_1_155[5] = { 'k', 'a', 'l', 'd', 'e' };
+static const symbol s_1_156[5] = { 't', 'a', 'l', 'd', 'e' };
+static const symbol s_1_157[4] = { 'o', 'r', 'd', 'e' };
+static const symbol s_1_158[2] = { 'g', 'e' };
+static const symbol s_1_159[4] = { 'z', 'a', 'l', 'e' };
+static const symbol s_1_160[5] = { 't', 'z', 'a', 'l', 'e' };
+static const symbol s_1_161[4] = { 'g', 'i', 'l', 'e' };
+static const symbol s_1_162[3] = { 'e', 'm', 'e' };
+static const symbol s_1_163[4] = { 'k', 'u', 'm', 'e' };
+static const symbol s_1_164[2] = { 'n', 'e' };
+static const symbol s_1_165[5] = { 'z', 'i', 'o', 'n', 'e' };
+static const symbol s_1_166[3] = { 'u', 'n', 'e' };
+static const symbol s_1_167[4] = { 'g', 'u', 'n', 'e' };
+static const symbol s_1_168[2] = { 'p', 'e' };
+static const symbol s_1_169[5] = { 'a', 'u', 'r', 'r', 'e' };
+static const symbol s_1_170[2] = { 't', 'e' };
+static const symbol s_1_171[4] = { 'k', 'o', 't', 'e' };
+static const symbol s_1_172[4] = { 'a', 'r', 't', 'e' };
+static const symbol s_1_173[4] = { 'o', 's', 't', 'e' };
+static const symbol s_1_174[4] = { 'e', 't', 'x', 'e' };
+static const symbol s_1_175[3] = { 'g', 'a', 'i' };
+static const symbol s_1_176[2] = { 'd', 'i' };
+static const symbol s_1_177[4] = { 'a', 'l', 'd', 'i' };
+static const symbol s_1_178[5] = { 't', 'a', 'l', 'd', 'i' };
+static const symbol s_1_179[5] = { 'g', 'e', 'l', 'd', 'i' };
+static const symbol s_1_180[5] = { 'h', 'a', 'n', 'd', 'i' };
+static const symbol s_1_181[5] = { 'm', 'e', 'n', 'd', 'i' };
+static const symbol s_1_182[3] = { 'g', 'e', 'i' };
+static const symbol s_1_183[3] = { 'e', 'g', 'i' };
+static const symbol s_1_184[4] = { 'd', 'e', 'g', 'i' };
+static const symbol s_1_185[4] = { 't', 'e', 'g', 'i' };
+static const symbol s_1_186[4] = { 'n', 'a', 'h', 'i' };
+static const symbol s_1_187[3] = { 'o', 'h', 'i' };
+static const symbol s_1_188[2] = { 'k', 'i' };
+static const symbol s_1_189[4] = { 't', 'o', 'k', 'i' };
+static const symbol s_1_190[2] = { 'o', 'i' };
+static const symbol s_1_191[3] = { 'g', 'o', 'i' };
+static const symbol s_1_192[3] = { 'k', 'o', 'i' };
+static const symbol s_1_193[3] = { 'a', 'r', 'i' };
+static const symbol s_1_194[4] = { 'k', 'a', 'r', 'i' };
+static const symbol s_1_195[4] = { 'l', 'a', 'r', 'i' };
+static const symbol s_1_196[4] = { 't', 'a', 'r', 'i' };
+static const symbol s_1_197[5] = { 'g', 'a', 'r', 'r', 'i' };
+static const symbol s_1_198[5] = { 'l', 'a', 'r', 'r', 'i' };
+static const symbol s_1_199[5] = { 'k', 'i', 'r', 'r', 'i' };
+static const symbol s_1_200[4] = { 'd', 'u', 'r', 'i' };
+static const symbol s_1_201[3] = { 'a', 's', 'i' };
+static const symbol s_1_202[2] = { 't', 'i' };
+static const symbol s_1_203[5] = { 'o', 'n', 't', 'z', 'i' };
+static const symbol s_1_204[2] = { 0xF1, 'i' };
+static const symbol s_1_205[2] = { 'a', 'k' };
+static const symbol s_1_206[2] = { 'e', 'k' };
+static const symbol s_1_207[5] = { 't', 'a', 'r', 'i', 'k' };
+static const symbol s_1_208[5] = { 'g', 'i', 'b', 'e', 'l' };
+static const symbol s_1_209[3] = { 'a', 'i', 'l' };
+static const symbol s_1_210[4] = { 'k', 'a', 'i', 'l' };
+static const symbol s_1_211[3] = { 'k', 'a', 'n' };
+static const symbol s_1_212[3] = { 't', 'a', 'n' };
+static const symbol s_1_213[4] = { 'e', 't', 'a', 'n' };
+static const symbol s_1_214[2] = { 'e', 'n' };
+static const symbol s_1_215[3] = { 'r', 'e', 'n' };
+static const symbol s_1_216[6] = { 'g', 'a', 'r', 'r', 'e', 'n' };
+static const symbol s_1_217[6] = { 'g', 'e', 'r', 'r', 'e', 'n' };
+static const symbol s_1_218[5] = { 'u', 'r', 'r', 'e', 'n' };
+static const symbol s_1_219[3] = { 't', 'e', 'n' };
+static const symbol s_1_220[4] = { 't', 'z', 'e', 'n' };
+static const symbol s_1_221[4] = { 'z', 'a', 'i', 'n' };
+static const symbol s_1_222[5] = { 't', 'z', 'a', 'i', 'n' };
+static const symbol s_1_223[3] = { 'k', 'i', 'n' };
+static const symbol s_1_224[3] = { 'm', 'i', 'n' };
+static const symbol s_1_225[3] = { 'd', 'u', 'n' };
+static const symbol s_1_226[4] = { 'a', 's', 'u', 'n' };
+static const symbol s_1_227[5] = { 't', 'a', 's', 'u', 'n' };
+static const symbol s_1_228[5] = { 'a', 'i', 'z', 'u', 'n' };
+static const symbol s_1_229[4] = { 'o', 'n', 'd', 'o' };
+static const symbol s_1_230[5] = { 'k', 'o', 'n', 'd', 'o' };
+static const symbol s_1_231[2] = { 'g', 'o' };
+static const symbol s_1_232[3] = { 'n', 'g', 'o' };
+static const symbol s_1_233[3] = { 'z', 'i', 'o' };
+static const symbol s_1_234[2] = { 'k', 'o' };
+static const symbol s_1_235[5] = { 't', 'r', 'a', 'k', 'o' };
+static const symbol s_1_236[4] = { 't', 'a', 'k', 'o' };
+static const symbol s_1_237[5] = { 'e', 't', 'a', 'k', 'o' };
+static const symbol s_1_238[3] = { 'e', 'k', 'o' };
+static const symbol s_1_239[6] = { 't', 'a', 'r', 'i', 'k', 'o' };
+static const symbol s_1_240[3] = { 's', 'k', 'o' };
+static const symbol s_1_241[4] = { 't', 'u', 'k', 'o' };
+static const symbol s_1_242[8] = { 'm', 'i', 'n', 'u', 't', 'u', 'k', 'o' };
+static const symbol s_1_243[3] = { 'z', 'k', 'o' };
+static const symbol s_1_244[2] = { 'n', 'o' };
+static const symbol s_1_245[4] = { 'z', 'i', 'n', 'o' };
+static const symbol s_1_246[2] = { 'r', 'o' };
+static const symbol s_1_247[3] = { 'a', 'r', 'o' };
+static const symbol s_1_248[5] = { 'i', 'g', 'a', 'r', 'o' };
+static const symbol s_1_249[4] = { 't', 'a', 'r', 'o' };
+static const symbol s_1_250[4] = { 'z', 'a', 'r', 'o' };
+static const symbol s_1_251[3] = { 'e', 'r', 'o' };
+static const symbol s_1_252[4] = { 'g', 'i', 'r', 'o' };
+static const symbol s_1_253[3] = { 'o', 'r', 'o' };
+static const symbol s_1_254[3] = { 'o', 's', 'o' };
+static const symbol s_1_255[2] = { 't', 'o' };
+static const symbol s_1_256[3] = { 't', 't', 'o' };
+static const symbol s_1_257[3] = { 'z', 't', 'o' };
+static const symbol s_1_258[3] = { 't', 'x', 'o' };
+static const symbol s_1_259[3] = { 't', 'z', 'o' };
+static const symbol s_1_260[6] = { 'g', 'i', 'n', 't', 'z', 'o' };
+static const symbol s_1_261[2] = { 0xF1, 'o' };
+static const symbol s_1_262[2] = { 'z', 'p' };
+static const symbol s_1_263[2] = { 'a', 'r' };
+static const symbol s_1_264[3] = { 'd', 'a', 'r' };
+static const symbol s_1_265[5] = { 'b', 'e', 'h', 'a', 'r' };
+static const symbol s_1_266[5] = { 'z', 'e', 'h', 'a', 'r' };
+static const symbol s_1_267[4] = { 'l', 'i', 'a', 'r' };
+static const symbol s_1_268[4] = { 't', 'i', 'a', 'r' };
+static const symbol s_1_269[3] = { 't', 'a', 'r' };
+static const symbol s_1_270[4] = { 't', 'z', 'a', 'r' };
+static const symbol s_1_271[2] = { 'o', 'r' };
+static const symbol s_1_272[3] = { 'k', 'o', 'r' };
+static const symbol s_1_273[2] = { 'o', 's' };
+static const symbol s_1_274[3] = { 'k', 'e', 't' };
+static const symbol s_1_275[2] = { 'd', 'u' };
+static const symbol s_1_276[5] = { 'm', 'e', 'n', 'd', 'u' };
+static const symbol s_1_277[4] = { 'o', 'r', 'd', 'u' };
+static const symbol s_1_278[4] = { 'l', 'e', 'k', 'u' };
+static const symbol s_1_279[4] = { 'b', 'u', 'r', 'u' };
+static const symbol s_1_280[4] = { 'd', 'u', 'r', 'u' };
+static const symbol s_1_281[3] = { 't', 's', 'u' };
+static const symbol s_1_282[2] = { 't', 'u' };
+static const symbol s_1_283[4] = { 't', 'a', 't', 'u' };
+static const symbol s_1_284[5] = { 'm', 'e', 'n', 't', 'u' };
+static const symbol s_1_285[4] = { 'e', 's', 't', 'u' };
+static const symbol s_1_286[3] = { 't', 'x', 'u' };
+static const symbol s_1_287[2] = { 'z', 'u' };
+static const symbol s_1_288[3] = { 't', 'z', 'u' };
+static const symbol s_1_289[6] = { 'g', 'i', 'n', 't', 'z', 'u' };
+static const symbol s_1_290[1] = { 'z' };
+static const symbol s_1_291[2] = { 'e', 'z' };
+static const symbol s_1_292[4] = { 'e', 'r', 'o', 'z' };
+static const symbol s_1_293[2] = { 't', 'z' };
+static const symbol s_1_294[5] = { 'k', 'o', 'i', 't', 'z' };
+
+static const struct among a_1[295] =
+{
+{ 3, s_1_0, -1, 1, 0},
+{ 4, s_1_1, 0, 1, 0},
+{ 4, s_1_2, -1, 1, 0},
+{ 5, s_1_3, -1, 1, 0},
+{ 5, s_1_4, -1, 1, 0},
+{ 5, s_1_5, -1, 1, 0},
+{ 5, s_1_6, -1, 1, 0},
+{ 6, s_1_7, 6, 1, 0},
+{ 6, s_1_8, 6, 1, 0},
+{ 5, s_1_9, -1, 1, 0},
+{ 5, s_1_10, -1, 1, 0},
+{ 6, s_1_11, 10, 1, 0},
+{ 5, s_1_12, -1, 1, 0},
+{ 4, s_1_13, -1, 1, 0},
+{ 5, s_1_14, -1, 1, 0},
+{ 3, s_1_15, -1, 1, 0},
+{ 4, s_1_16, 15, 1, 0},
+{ 6, s_1_17, 15, 1, 0},
+{ 4, s_1_18, 15, 1, 0},
+{ 5, s_1_19, 18, 1, 0},
+{ 3, s_1_20, -1, 1, 0},
+{ 6, s_1_21, -1, 1, 0},
+{ 3, s_1_22, -1, 1, 0},
+{ 5, s_1_23, 22, 1, 0},
+{ 5, s_1_24, 22, 1, 0},
+{ 5, s_1_25, 22, 1, 0},
+{ 5, s_1_26, -1, 1, 0},
+{ 2, s_1_27, -1, 1, 0},
+{ 4, s_1_28, 27, 1, 0},
+{ 4, s_1_29, -1, 1, 0},
+{ 5, s_1_30, -1, 1, 0},
+{ 6, s_1_31, 30, 1, 0},
+{ 6, s_1_32, -1, 1, 0},
+{ 6, s_1_33, -1, 1, 0},
+{ 4, s_1_34, -1, 1, 0},
+{ 4, s_1_35, -1, 1, 0},
+{ 5, s_1_36, 35, 1, 0},
+{ 5, s_1_37, 35, 1, 0},
+{ 5, s_1_38, -1, 1, 0},
+{ 4, s_1_39, -1, 1, 0},
+{ 3, s_1_40, -1, 1, 0},
+{ 5, s_1_41, 40, 1, 0},
+{ 3, s_1_42, -1, 1, 0},
+{ 4, s_1_43, 42, 1, 0},
+{ 4, s_1_44, -1, 1, 0},
+{ 5, s_1_45, 44, 1, 0},
+{ 5, s_1_46, 44, 1, 0},
+{ 5, s_1_47, 44, 1, 0},
+{ 4, s_1_48, -1, 1, 0},
+{ 5, s_1_49, 48, 1, 0},
+{ 5, s_1_50, 48, 1, 0},
+{ 6, s_1_51, -1, 2, 0},
+{ 6, s_1_52, -1, 1, 0},
+{ 6, s_1_53, -1, 1, 0},
+{ 5, s_1_54, -1, 1, 0},
+{ 4, s_1_55, -1, 1, 0},
+{ 3, s_1_56, -1, 1, 0},
+{ 4, s_1_57, -1, 1, 0},
+{ 5, s_1_58, -1, 1, 0},
+{ 6, s_1_59, -1, 1, 0},
+{ 2, s_1_60, -1, 1, 0},
+{ 4, s_1_61, 60, 3, 0},
+{ 5, s_1_62, 60, 10, 0},
+{ 3, s_1_63, 60, 1, 0},
+{ 3, s_1_64, 60, 1, 0},
+{ 3, s_1_65, 60, 1, 0},
+{ 6, s_1_66, -1, 1, 0},
+{ 4, s_1_67, -1, 1, 0},
+{ 5, s_1_68, -1, 1, 0},
+{ 5, s_1_69, -1, 1, 0},
+{ 4, s_1_70, -1, 1, 0},
+{ 3, s_1_71, -1, 1, 0},
+{ 2, s_1_72, -1, 1, 0},
+{ 4, s_1_73, 72, 1, 0},
+{ 3, s_1_74, 72, 1, 0},
+{ 7, s_1_75, 74, 1, 0},
+{ 7, s_1_76, 74, 1, 0},
+{ 6, s_1_77, 74, 1, 0},
+{ 5, s_1_78, 72, 1, 0},
+{ 6, s_1_79, 78, 1, 0},
+{ 4, s_1_80, 72, 1, 0},
+{ 4, s_1_81, 72, 1, 0},
+{ 5, s_1_82, 72, 1, 0},
+{ 3, s_1_83, 72, 1, 0},
+{ 4, s_1_84, 83, 1, 0},
+{ 5, s_1_85, 83, 1, 0},
+{ 6, s_1_86, 85, 1, 0},
+{ 5, s_1_87, -1, 1, 0},
+{ 6, s_1_88, 87, 1, 0},
+{ 4, s_1_89, -1, 1, 0},
+{ 4, s_1_90, -1, 1, 0},
+{ 3, s_1_91, -1, 1, 0},
+{ 5, s_1_92, 91, 1, 0},
+{ 4, s_1_93, 91, 1, 0},
+{ 3, s_1_94, -1, 1, 0},
+{ 5, s_1_95, 94, 1, 0},
+{ 4, s_1_96, -1, 1, 0},
+{ 5, s_1_97, 96, 1, 0},
+{ 5, s_1_98, 96, 1, 0},
+{ 4, s_1_99, -1, 1, 0},
+{ 4, s_1_100, -1, 1, 0},
+{ 4, s_1_101, -1, 1, 0},
+{ 3, s_1_102, -1, 1, 0},
+{ 4, s_1_103, 102, 1, 0},
+{ 4, s_1_104, 102, 1, 0},
+{ 4, s_1_105, -1, 1, 0},
+{ 4, s_1_106, -1, 1, 0},
+{ 3, s_1_107, -1, 1, 0},
+{ 2, s_1_108, -1, 1, 0},
+{ 3, s_1_109, 108, 1, 0},
+{ 4, s_1_110, 109, 1, 0},
+{ 5, s_1_111, 109, 1, 0},
+{ 5, s_1_112, 109, 1, 0},
+{ 4, s_1_113, 109, 1, 0},
+{ 5, s_1_114, 113, 1, 0},
+{ 5, s_1_115, 109, 1, 0},
+{ 4, s_1_116, 108, 1, 0},
+{ 4, s_1_117, 108, 1, 0},
+{ 4, s_1_118, 108, 1, 0},
+{ 3, s_1_119, 108, 2, 0},
+{ 6, s_1_120, 108, 1, 0},
+{ 5, s_1_121, 108, 1, 0},
+{ 3, s_1_122, 108, 1, 0},
+{ 2, s_1_123, -1, 1, 0},
+{ 3, s_1_124, 123, 1, 0},
+{ 2, s_1_125, -1, 1, 0},
+{ 3, s_1_126, 125, 1, 0},
+{ 4, s_1_127, 126, 1, 0},
+{ 3, s_1_128, 125, 1, 0},
+{ 3, s_1_129, -1, 1, 0},
+{ 6, s_1_130, 129, 1, 0},
+{ 5, s_1_131, 129, 1, 0},
+{ 5, s_1_132, -1, 1, 0},
+{ 5, s_1_133, -1, 1, 0},
+{ 5, s_1_134, -1, 1, 0},
+{ 4, s_1_135, -1, 1, 0},
+{ 3, s_1_136, -1, 1, 0},
+{ 6, s_1_137, 136, 1, 0},
+{ 5, s_1_138, 136, 1, 0},
+{ 4, s_1_139, -1, 1, 0},
+{ 3, s_1_140, -1, 1, 0},
+{ 4, s_1_141, 140, 1, 0},
+{ 2, s_1_142, -1, 1, 0},
+{ 3, s_1_143, 142, 1, 0},
+{ 5, s_1_144, 142, 1, 0},
+{ 3, s_1_145, 142, 2, 0},
+{ 6, s_1_146, 145, 1, 0},
+{ 5, s_1_147, 145, 1, 0},
+{ 6, s_1_148, 145, 1, 0},
+{ 6, s_1_149, 145, 1, 0},
+{ 6, s_1_150, 145, 1, 0},
+{ 4, s_1_151, -1, 1, 0},
+{ 4, s_1_152, -1, 1, 0},
+{ 4, s_1_153, -1, 1, 0},
+{ 4, s_1_154, -1, 1, 0},
+{ 5, s_1_155, 154, 1, 0},
+{ 5, s_1_156, 154, 1, 0},
+{ 4, s_1_157, -1, 1, 0},
+{ 2, s_1_158, -1, 1, 0},
+{ 4, s_1_159, -1, 1, 0},
+{ 5, s_1_160, 159, 1, 0},
+{ 4, s_1_161, -1, 1, 0},
+{ 3, s_1_162, -1, 1, 0},
+{ 4, s_1_163, -1, 1, 0},
+{ 2, s_1_164, -1, 1, 0},
+{ 5, s_1_165, 164, 1, 0},
+{ 3, s_1_166, 164, 1, 0},
+{ 4, s_1_167, 166, 1, 0},
+{ 2, s_1_168, -1, 1, 0},
+{ 5, s_1_169, -1, 1, 0},
+{ 2, s_1_170, -1, 1, 0},
+{ 4, s_1_171, 170, 1, 0},
+{ 4, s_1_172, 170, 1, 0},
+{ 4, s_1_173, 170, 1, 0},
+{ 4, s_1_174, -1, 1, 0},
+{ 3, s_1_175, -1, 1, 0},
+{ 2, s_1_176, -1, 1, 0},
+{ 4, s_1_177, 176, 1, 0},
+{ 5, s_1_178, 177, 1, 0},
+{ 5, s_1_179, 176, 8, 0},
+{ 5, s_1_180, 176, 1, 0},
+{ 5, s_1_181, 176, 1, 0},
+{ 3, s_1_182, -1, 1, 0},
+{ 3, s_1_183, -1, 1, 0},
+{ 4, s_1_184, 183, 1, 0},
+{ 4, s_1_185, 183, 1, 0},
+{ 4, s_1_186, -1, 1, 0},
+{ 3, s_1_187, -1, 1, 0},
+{ 2, s_1_188, -1, 1, 0},
+{ 4, s_1_189, 188, 1, 0},
+{ 2, s_1_190, -1, 1, 0},
+{ 3, s_1_191, 190, 1, 0},
+{ 3, s_1_192, 190, 1, 0},
+{ 3, s_1_193, -1, 1, 0},
+{ 4, s_1_194, 193, 1, 0},
+{ 4, s_1_195, 193, 1, 0},
+{ 4, s_1_196, 193, 1, 0},
+{ 5, s_1_197, -1, 2, 0},
+{ 5, s_1_198, -1, 1, 0},
+{ 5, s_1_199, -1, 1, 0},
+{ 4, s_1_200, -1, 1, 0},
+{ 3, s_1_201, -1, 1, 0},
+{ 2, s_1_202, -1, 1, 0},
+{ 5, s_1_203, -1, 1, 0},
+{ 2, s_1_204, -1, 1, 0},
+{ 2, s_1_205, -1, 1, 0},
+{ 2, s_1_206, -1, 1, 0},
+{ 5, s_1_207, -1, 1, 0},
+{ 5, s_1_208, -1, 1, 0},
+{ 3, s_1_209, -1, 1, 0},
+{ 4, s_1_210, 209, 1, 0},
+{ 3, s_1_211, -1, 1, 0},
+{ 3, s_1_212, -1, 1, 0},
+{ 4, s_1_213, 212, 1, 0},
+{ 2, s_1_214, -1, 4, 0},
+{ 3, s_1_215, 214, 2, 0},
+{ 6, s_1_216, 215, 1, 0},
+{ 6, s_1_217, 215, 1, 0},
+{ 5, s_1_218, 215, 1, 0},
+{ 3, s_1_219, 214, 4, 0},
+{ 4, s_1_220, 214, 4, 0},
+{ 4, s_1_221, -1, 1, 0},
+{ 5, s_1_222, 221, 1, 0},
+{ 3, s_1_223, -1, 1, 0},
+{ 3, s_1_224, -1, 1, 0},
+{ 3, s_1_225, -1, 1, 0},
+{ 4, s_1_226, -1, 1, 0},
+{ 5, s_1_227, 226, 1, 0},
+{ 5, s_1_228, -1, 1, 0},
+{ 4, s_1_229, -1, 1, 0},
+{ 5, s_1_230, 229, 1, 0},
+{ 2, s_1_231, -1, 1, 0},
+{ 3, s_1_232, 231, 1, 0},
+{ 3, s_1_233, -1, 1, 0},
+{ 2, s_1_234, -1, 1, 0},
+{ 5, s_1_235, 234, 5, 0},
+{ 4, s_1_236, 234, 1, 0},
+{ 5, s_1_237, 236, 1, 0},
+{ 3, s_1_238, 234, 1, 0},
+{ 6, s_1_239, 234, 1, 0},
+{ 3, s_1_240, 234, 1, 0},
+{ 4, s_1_241, 234, 1, 0},
+{ 8, s_1_242, 241, 6, 0},
+{ 3, s_1_243, 234, 1, 0},
+{ 2, s_1_244, -1, 1, 0},
+{ 4, s_1_245, 244, 1, 0},
+{ 2, s_1_246, -1, 1, 0},
+{ 3, s_1_247, 246, 1, 0},
+{ 5, s_1_248, 247, 9, 0},
+{ 4, s_1_249, 247, 1, 0},
+{ 4, s_1_250, 247, 1, 0},
+{ 3, s_1_251, 246, 1, 0},
+{ 4, s_1_252, 246, 1, 0},
+{ 3, s_1_253, 246, 1, 0},
+{ 3, s_1_254, -1, 1, 0},
+{ 2, s_1_255, -1, 1, 0},
+{ 3, s_1_256, 255, 1, 0},
+{ 3, s_1_257, 255, 1, 0},
+{ 3, s_1_258, -1, 1, 0},
+{ 3, s_1_259, -1, 1, 0},
+{ 6, s_1_260, 259, 1, 0},
+{ 2, s_1_261, -1, 1, 0},
+{ 2, s_1_262, -1, 1, 0},
+{ 2, s_1_263, -1, 1, 0},
+{ 3, s_1_264, 263, 1, 0},
+{ 5, s_1_265, 263, 1, 0},
+{ 5, s_1_266, 263, 7, 0},
+{ 4, s_1_267, 263, 1, 0},
+{ 4, s_1_268, 263, 1, 0},
+{ 3, s_1_269, 263, 1, 0},
+{ 4, s_1_270, 263, 1, 0},
+{ 2, s_1_271, -1, 2, 0},
+{ 3, s_1_272, 271, 1, 0},
+{ 2, s_1_273, -1, 1, 0},
+{ 3, s_1_274, -1, 1, 0},
+{ 2, s_1_275, -1, 1, 0},
+{ 5, s_1_276, 275, 1, 0},
+{ 4, s_1_277, 275, 1, 0},
+{ 4, s_1_278, -1, 1, 0},
+{ 4, s_1_279, -1, 2, 0},
+{ 4, s_1_280, -1, 1, 0},
+{ 3, s_1_281, -1, 1, 0},
+{ 2, s_1_282, -1, 1, 0},
+{ 4, s_1_283, 282, 4, 0},
+{ 5, s_1_284, 282, 1, 0},
+{ 4, s_1_285, 282, 1, 0},
+{ 3, s_1_286, -1, 1, 0},
+{ 2, s_1_287, -1, 1, 0},
+{ 3, s_1_288, 287, 1, 0},
+{ 6, s_1_289, 288, 1, 0},
+{ 1, s_1_290, -1, 1, 0},
+{ 2, s_1_291, 290, 1, 0},
+{ 4, s_1_292, 290, 1, 0},
+{ 2, s_1_293, 290, 1, 0},
+{ 5, s_1_294, 293, 1, 0}
+};
+
+static const symbol s_2_0[4] = { 'z', 'l', 'e', 'a' };
+static const symbol s_2_1[5] = { 'k', 'e', 'r', 'i', 'a' };
+static const symbol s_2_2[2] = { 'l', 'a' };
+static const symbol s_2_3[3] = { 'e', 'r', 'a' };
+static const symbol s_2_4[4] = { 'd', 'a', 'd', 'e' };
+static const symbol s_2_5[4] = { 't', 'a', 'd', 'e' };
+static const symbol s_2_6[4] = { 'd', 'a', 't', 'e' };
+static const symbol s_2_7[4] = { 't', 'a', 't', 'e' };
+static const symbol s_2_8[2] = { 'g', 'i' };
+static const symbol s_2_9[2] = { 'k', 'i' };
+static const symbol s_2_10[2] = { 'i', 'k' };
+static const symbol s_2_11[5] = { 'l', 'a', 'n', 'i', 'k' };
+static const symbol s_2_12[3] = { 'r', 'i', 'k' };
+static const symbol s_2_13[5] = { 'l', 'a', 'r', 'i', 'k' };
+static const symbol s_2_14[4] = { 'z', 't', 'i', 'k' };
+static const symbol s_2_15[2] = { 'g', 'o' };
+static const symbol s_2_16[2] = { 'r', 'o' };
+static const symbol s_2_17[3] = { 'e', 'r', 'o' };
+static const symbol s_2_18[2] = { 't', 'o' };
+
+static const struct among a_2[19] =
+{
+{ 4, s_2_0, -1, 2, 0},
+{ 5, s_2_1, -1, 1, 0},
+{ 2, s_2_2, -1, 1, 0},
+{ 3, s_2_3, -1, 1, 0},
+{ 4, s_2_4, -1, 1, 0},
+{ 4, s_2_5, -1, 1, 0},
+{ 4, s_2_6, -1, 1, 0},
+{ 4, s_2_7, -1, 1, 0},
+{ 2, s_2_8, -1, 1, 0},
+{ 2, s_2_9, -1, 1, 0},
+{ 2, s_2_10, -1, 1, 0},
+{ 5, s_2_11, 10, 1, 0},
+{ 3, s_2_12, 10, 1, 0},
+{ 5, s_2_13, 12, 1, 0},
+{ 4, s_2_14, 10, 1, 0},
+{ 2, s_2_15, -1, 1, 0},
+{ 2, s_2_16, -1, 1, 0},
+{ 3, s_2_17, 16, 1, 0},
+{ 2, s_2_18, -1, 1, 0}
+};
+
+static const unsigned char g_v[] = { 17, 65, 16 };
+
+static const symbol s_0[] = { 'a', 't', 's', 'e', 'd', 'e', 'n' };
+static const symbol s_1[] = { 'a', 'r', 'a', 'b', 'e', 'r', 'a' };
+static const symbol s_2[] = { 'b', 'a', 'd', 'i', 't', 'u' };
+static const symbol s_3[] = { 'j', 'o', 'k' };
+static const symbol s_4[] = { 't', 'r', 'a' };
+static const symbol s_5[] = { 'm', 'i', 'n', 'u', 't', 'u' };
+static const symbol s_6[] = { 'z', 'e', 'h', 'a', 'r' };
+static const symbol s_7[] = { 'g', 'e', 'l', 'd', 'i' };
+static const symbol s_8[] = { 'i', 'g', 'a', 'r', 'o' };
+static const symbol s_9[] = { 'a', 'u', 'r', 'k', 'a' };
+static const symbol s_10[] = { 'z' };
+
+static int r_mark_regions(struct SN_env * z) {
+ z->I[2] = z->l;
+ z->I[1] = z->l;
+ z->I[0] = z->l;
+ { int c1 = z->c;
+ { int c2 = z->c;
+ if (in_grouping(z, g_v, 97, 117, 0)) goto lab2;
+ { int c3 = z->c;
+ if (out_grouping(z, g_v, 97, 117, 0)) goto lab4;
+ {
+ int ret = out_grouping(z, g_v, 97, 117, 1);
+ if (ret < 0) goto lab4;
+ z->c += ret;
+ }
+ goto lab3;
+ lab4:
+ z->c = c3;
+ if (in_grouping(z, g_v, 97, 117, 0)) goto lab2;
+ {
+ int ret = in_grouping(z, g_v, 97, 117, 1);
+ if (ret < 0) goto lab2;
+ z->c += ret;
+ }
+ }
+ lab3:
+ goto lab1;
+ lab2:
+ z->c = c2;
+ if (out_grouping(z, g_v, 97, 117, 0)) goto lab0;
+ { int c4 = z->c;
+ if (out_grouping(z, g_v, 97, 117, 0)) goto lab6;
+ {
+ int ret = out_grouping(z, g_v, 97, 117, 1);
+ if (ret < 0) goto lab6;
+ z->c += ret;
+ }
+ goto lab5;
+ lab6:
+ z->c = c4;
+ if (in_grouping(z, g_v, 97, 117, 0)) goto lab0;
+ if (z->c >= z->l) goto lab0;
+ z->c++;
+ }
+ lab5:
+ ;
+ }
+ lab1:
+ z->I[2] = z->c;
+ lab0:
+ z->c = c1;
+ }
+ { int c5 = z->c;
+ {
+ int ret = out_grouping(z, g_v, 97, 117, 1);
+ if (ret < 0) goto lab7;
+ z->c += ret;
+ }
+ {
+ int ret = in_grouping(z, g_v, 97, 117, 1);
+ if (ret < 0) goto lab7;
+ z->c += ret;
+ }
+ z->I[1] = z->c;
+ {
+ int ret = out_grouping(z, g_v, 97, 117, 1);
+ if (ret < 0) goto lab7;
+ z->c += ret;
+ }
+ {
+ int ret = in_grouping(z, g_v, 97, 117, 1);
+ if (ret < 0) goto lab7;
+ z->c += ret;
+ }
+ z->I[0] = z->c;
+ lab7:
+ z->c = c5;
+ }
+ return 1;
+}
+
+static int r_RV(struct SN_env * z) {
+ if (!(z->I[2] <= z->c)) return 0;
+ return 1;
+}
+
+static int r_R2(struct SN_env * z) {
+ if (!(z->I[0] <= z->c)) return 0;
+ return 1;
+}
+
+static int r_R1(struct SN_env * z) {
+ if (!(z->I[1] <= z->c)) return 0;
+ return 1;
+}
+
+static int r_aditzak(struct SN_env * z) {
+ int among_var;
+ z->ket = z->c;
+ if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((70566434 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
+ among_var = find_among_b(z, a_0, 109);
+ if (!(among_var)) return 0;
+ z->bra = z->c;
+ switch (among_var) {
+ case 1:
+ { int ret = r_RV(z);
+ if (ret <= 0) return ret;
+ }
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 2:
+ { int ret = r_R2(z);
+ if (ret <= 0) return ret;
+ }
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 3:
+ { int ret = slice_from_s(z, 7, s_0);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 4:
+ { int ret = slice_from_s(z, 7, s_1);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 5:
+ { int ret = slice_from_s(z, 6, s_2);
+ if (ret < 0) return ret;
+ }
+ break;
+ }
+ return 1;
+}
+
+static int r_izenak(struct SN_env * z) {
+ int among_var;
+ z->ket = z->c;
+ if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((71162402 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
+ among_var = find_among_b(z, a_1, 295);
+ if (!(among_var)) return 0;
+ z->bra = z->c;
+ switch (among_var) {
+ case 1:
+ { int ret = r_RV(z);
+ if (ret <= 0) return ret;
+ }
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 2:
+ { int ret = r_R2(z);
+ if (ret <= 0) return ret;
+ }
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 3:
+ { int ret = slice_from_s(z, 3, s_3);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 4:
+ { int ret = r_R1(z);
+ if (ret <= 0) return ret;
+ }
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 5:
+ { int ret = slice_from_s(z, 3, s_4);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 6:
+ { int ret = slice_from_s(z, 6, s_5);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 7:
+ { int ret = slice_from_s(z, 5, s_6);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 8:
+ { int ret = slice_from_s(z, 5, s_7);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 9:
+ { int ret = slice_from_s(z, 5, s_8);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 10:
+ { int ret = slice_from_s(z, 5, s_9);
+ if (ret < 0) return ret;
+ }
+ break;
+ }
+ return 1;
+}
+
+static int r_adjetiboak(struct SN_env * z) {
+ int among_var;
+ z->ket = z->c;
+ if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((35362 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
+ among_var = find_among_b(z, a_2, 19);
+ if (!(among_var)) return 0;
+ z->bra = z->c;
+ switch (among_var) {
+ case 1:
+ { int ret = r_RV(z);
+ if (ret <= 0) return ret;
+ }
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 2:
+ { int ret = slice_from_s(z, 1, s_10);
+ if (ret < 0) return ret;
+ }
+ break;
+ }
+ return 1;
+}
+
+extern int basque_ISO_8859_1_stem(struct SN_env * z) {
+
+ { int ret = r_mark_regions(z);
+ if (ret < 0) return ret;
+ }
+ z->lb = z->c; z->c = z->l;
+
+ while(1) {
+ int m1 = z->l - z->c; (void)m1;
+ { int ret = r_aditzak(z);
+ if (ret == 0) goto lab0;
+ if (ret < 0) return ret;
+ }
+ continue;
+ lab0:
+ z->c = z->l - m1;
+ break;
+ }
+ while(1) {
+ int m2 = z->l - z->c; (void)m2;
+ { int ret = r_izenak(z);
+ if (ret == 0) goto lab1;
+ if (ret < 0) return ret;
+ }
+ continue;
+ lab1:
+ z->c = z->l - m2;
+ break;
+ }
+ { int m3 = z->l - z->c; (void)m3;
+ { int ret = r_adjetiboak(z);
+ if (ret < 0) return ret;
+ }
+ z->c = z->l - m3;
+ }
+ z->c = z->lb;
+ return 1;
+}
+
+extern struct SN_env * basque_ISO_8859_1_create_env(void) { return SN_create_env(0, 3); }
+
+extern void basque_ISO_8859_1_close_env(struct SN_env * z) { SN_close_env(z, 0); }
+
diff --git a/src/backend/snowball/libstemmer/stem_ISO_8859_1_catalan.c b/src/backend/snowball/libstemmer/stem_ISO_8859_1_catalan.c
new file mode 100644
index 0000000..bdd3791
--- /dev/null
+++ b/src/backend/snowball/libstemmer/stem_ISO_8859_1_catalan.c
@@ -0,0 +1,1446 @@
+/* Generated by Snowball 2.2.0 - https://snowballstem.org/ */
+
+#include "header.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+extern int catalan_ISO_8859_1_stem(struct SN_env * z);
+#ifdef __cplusplus
+}
+#endif
+static int r_residual_suffix(struct SN_env * z);
+static int r_verb_suffix(struct SN_env * z);
+static int r_standard_suffix(struct SN_env * z);
+static int r_attached_pronoun(struct SN_env * z);
+static int r_R2(struct SN_env * z);
+static int r_R1(struct SN_env * z);
+static int r_mark_regions(struct SN_env * z);
+static int r_cleaning(struct SN_env * z);
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+extern struct SN_env * catalan_ISO_8859_1_create_env(void);
+extern void catalan_ISO_8859_1_close_env(struct SN_env * z);
+
+
+#ifdef __cplusplus
+}
+#endif
+static const symbol s_0_1[1] = { 0xB7 };
+static const symbol s_0_2[1] = { 0xE0 };
+static const symbol s_0_3[1] = { 0xE1 };
+static const symbol s_0_4[1] = { 0xE8 };
+static const symbol s_0_5[1] = { 0xE9 };
+static const symbol s_0_6[1] = { 0xEC };
+static const symbol s_0_7[1] = { 0xED };
+static const symbol s_0_8[1] = { 0xEF };
+static const symbol s_0_9[1] = { 0xF2 };
+static const symbol s_0_10[1] = { 0xF3 };
+static const symbol s_0_11[1] = { 0xFA };
+static const symbol s_0_12[1] = { 0xFC };
+
+static const struct among a_0[13] =
+{
+{ 0, 0, -1, 7, 0},
+{ 1, s_0_1, 0, 6, 0},
+{ 1, s_0_2, 0, 1, 0},
+{ 1, s_0_3, 0, 1, 0},
+{ 1, s_0_4, 0, 2, 0},
+{ 1, s_0_5, 0, 2, 0},
+{ 1, s_0_6, 0, 3, 0},
+{ 1, s_0_7, 0, 3, 0},
+{ 1, s_0_8, 0, 3, 0},
+{ 1, s_0_9, 0, 4, 0},
+{ 1, s_0_10, 0, 4, 0},
+{ 1, s_0_11, 0, 5, 0},
+{ 1, s_0_12, 0, 5, 0}
+};
+
+static const symbol s_1_0[2] = { 'l', 'a' };
+static const symbol s_1_1[3] = { '-', 'l', 'a' };
+static const symbol s_1_2[4] = { 's', 'e', 'l', 'a' };
+static const symbol s_1_3[2] = { 'l', 'e' };
+static const symbol s_1_4[2] = { 'm', 'e' };
+static const symbol s_1_5[3] = { '-', 'm', 'e' };
+static const symbol s_1_6[2] = { 's', 'e' };
+static const symbol s_1_7[3] = { '-', 't', 'e' };
+static const symbol s_1_8[2] = { 'h', 'i' };
+static const symbol s_1_9[3] = { '\'', 'h', 'i' };
+static const symbol s_1_10[2] = { 'l', 'i' };
+static const symbol s_1_11[3] = { '-', 'l', 'i' };
+static const symbol s_1_12[2] = { '\'', 'l' };
+static const symbol s_1_13[2] = { '\'', 'm' };
+static const symbol s_1_14[2] = { '-', 'm' };
+static const symbol s_1_15[2] = { '\'', 'n' };
+static const symbol s_1_16[2] = { '-', 'n' };
+static const symbol s_1_17[2] = { 'h', 'o' };
+static const symbol s_1_18[3] = { '\'', 'h', 'o' };
+static const symbol s_1_19[2] = { 'l', 'o' };
+static const symbol s_1_20[4] = { 's', 'e', 'l', 'o' };
+static const symbol s_1_21[2] = { '\'', 's' };
+static const symbol s_1_22[3] = { 'l', 'a', 's' };
+static const symbol s_1_23[5] = { 's', 'e', 'l', 'a', 's' };
+static const symbol s_1_24[3] = { 'l', 'e', 's' };
+static const symbol s_1_25[4] = { '-', 'l', 'e', 's' };
+static const symbol s_1_26[3] = { '\'', 'l', 's' };
+static const symbol s_1_27[3] = { '-', 'l', 's' };
+static const symbol s_1_28[3] = { '\'', 'n', 's' };
+static const symbol s_1_29[3] = { '-', 'n', 's' };
+static const symbol s_1_30[3] = { 'e', 'n', 's' };
+static const symbol s_1_31[3] = { 'l', 'o', 's' };
+static const symbol s_1_32[5] = { 's', 'e', 'l', 'o', 's' };
+static const symbol s_1_33[3] = { 'n', 'o', 's' };
+static const symbol s_1_34[4] = { '-', 'n', 'o', 's' };
+static const symbol s_1_35[3] = { 'v', 'o', 's' };
+static const symbol s_1_36[2] = { 'u', 's' };
+static const symbol s_1_37[3] = { '-', 'u', 's' };
+static const symbol s_1_38[2] = { '\'', 't' };
+
+static const struct among a_1[39] =
+{
+{ 2, s_1_0, -1, 1, 0},
+{ 3, s_1_1, 0, 1, 0},
+{ 4, s_1_2, 0, 1, 0},
+{ 2, s_1_3, -1, 1, 0},
+{ 2, s_1_4, -1, 1, 0},
+{ 3, s_1_5, 4, 1, 0},
+{ 2, s_1_6, -1, 1, 0},
+{ 3, s_1_7, -1, 1, 0},
+{ 2, s_1_8, -1, 1, 0},
+{ 3, s_1_9, 8, 1, 0},
+{ 2, s_1_10, -1, 1, 0},
+{ 3, s_1_11, 10, 1, 0},
+{ 2, s_1_12, -1, 1, 0},
+{ 2, s_1_13, -1, 1, 0},
+{ 2, s_1_14, -1, 1, 0},
+{ 2, s_1_15, -1, 1, 0},
+{ 2, s_1_16, -1, 1, 0},
+{ 2, s_1_17, -1, 1, 0},
+{ 3, s_1_18, 17, 1, 0},
+{ 2, s_1_19, -1, 1, 0},
+{ 4, s_1_20, 19, 1, 0},
+{ 2, s_1_21, -1, 1, 0},
+{ 3, s_1_22, -1, 1, 0},
+{ 5, s_1_23, 22, 1, 0},
+{ 3, s_1_24, -1, 1, 0},
+{ 4, s_1_25, 24, 1, 0},
+{ 3, s_1_26, -1, 1, 0},
+{ 3, s_1_27, -1, 1, 0},
+{ 3, s_1_28, -1, 1, 0},
+{ 3, s_1_29, -1, 1, 0},
+{ 3, s_1_30, -1, 1, 0},
+{ 3, s_1_31, -1, 1, 0},
+{ 5, s_1_32, 31, 1, 0},
+{ 3, s_1_33, -1, 1, 0},
+{ 4, s_1_34, 33, 1, 0},
+{ 3, s_1_35, -1, 1, 0},
+{ 2, s_1_36, -1, 1, 0},
+{ 3, s_1_37, 36, 1, 0},
+{ 2, s_1_38, -1, 1, 0}
+};
+
+static const symbol s_2_0[3] = { 'i', 'c', 'a' };
+static const symbol s_2_1[6] = { 'l', 0xF3, 'g', 'i', 'c', 'a' };
+static const symbol s_2_2[4] = { 'e', 'n', 'c', 'a' };
+static const symbol s_2_3[3] = { 'a', 'd', 'a' };
+static const symbol s_2_4[5] = { 'a', 'n', 'c', 'i', 'a' };
+static const symbol s_2_5[5] = { 'e', 'n', 'c', 'i', 'a' };
+static const symbol s_2_6[5] = { 0xE8, 'n', 'c', 'i', 'a' };
+static const symbol s_2_7[4] = { 0xED, 'c', 'i', 'a' };
+static const symbol s_2_8[5] = { 'l', 'o', 'g', 'i', 'a' };
+static const symbol s_2_9[4] = { 'i', 'n', 'i', 'a' };
+static const symbol s_2_10[5] = { 0xED, 'i', 'n', 'i', 'a' };
+static const symbol s_2_11[4] = { 'e', 'r', 'i', 'a' };
+static const symbol s_2_12[4] = { 0xE0, 'r', 'i', 'a' };
+static const symbol s_2_13[6] = { 'a', 't', 0xF2, 'r', 'i', 'a' };
+static const symbol s_2_14[4] = { 'a', 'l', 'l', 'a' };
+static const symbol s_2_15[4] = { 'e', 'l', 'l', 'a' };
+static const symbol s_2_16[5] = { 0xED, 'v', 'o', 'l', 'a' };
+static const symbol s_2_17[3] = { 'i', 'm', 'a' };
+static const symbol s_2_18[6] = { 0xED, 's', 's', 'i', 'm', 'a' };
+static const symbol s_2_19[8] = { 'q', 'u', 0xED, 's', 's', 'i', 'm', 'a' };
+static const symbol s_2_20[3] = { 'a', 'n', 'a' };
+static const symbol s_2_21[3] = { 'i', 'n', 'a' };
+static const symbol s_2_22[3] = { 'e', 'r', 'a' };
+static const symbol s_2_23[5] = { 's', 'f', 'e', 'r', 'a' };
+static const symbol s_2_24[3] = { 'o', 'r', 'a' };
+static const symbol s_2_25[4] = { 'd', 'o', 'r', 'a' };
+static const symbol s_2_26[5] = { 'a', 'd', 'o', 'r', 'a' };
+static const symbol s_2_27[5] = { 'a', 'd', 'u', 'r', 'a' };
+static const symbol s_2_28[3] = { 'e', 's', 'a' };
+static const symbol s_2_29[3] = { 'o', 's', 'a' };
+static const symbol s_2_30[4] = { 'a', 's', 's', 'a' };
+static const symbol s_2_31[4] = { 'e', 's', 's', 'a' };
+static const symbol s_2_32[4] = { 'i', 's', 's', 'a' };
+static const symbol s_2_33[3] = { 'e', 't', 'a' };
+static const symbol s_2_34[3] = { 'i', 't', 'a' };
+static const symbol s_2_35[3] = { 'o', 't', 'a' };
+static const symbol s_2_36[4] = { 'i', 's', 't', 'a' };
+static const symbol s_2_37[7] = { 'i', 'a', 'l', 'i', 's', 't', 'a' };
+static const symbol s_2_38[7] = { 'i', 'o', 'n', 'i', 's', 't', 'a' };
+static const symbol s_2_39[3] = { 'i', 'v', 'a' };
+static const symbol s_2_40[5] = { 'a', 't', 'i', 'v', 'a' };
+static const symbol s_2_41[3] = { 'n', 0xE7, 'a' };
+static const symbol s_2_42[5] = { 'l', 'o', 'g', 0xED, 'a' };
+static const symbol s_2_43[2] = { 'i', 'c' };
+static const symbol s_2_44[5] = { 0xED, 's', 't', 'i', 'c' };
+static const symbol s_2_45[3] = { 'e', 'n', 'c' };
+static const symbol s_2_46[3] = { 'e', 's', 'c' };
+static const symbol s_2_47[2] = { 'u', 'd' };
+static const symbol s_2_48[4] = { 'a', 't', 'g', 'e' };
+static const symbol s_2_49[3] = { 'b', 'l', 'e' };
+static const symbol s_2_50[4] = { 'a', 'b', 'l', 'e' };
+static const symbol s_2_51[4] = { 'i', 'b', 'l', 'e' };
+static const symbol s_2_52[4] = { 'i', 's', 'm', 'e' };
+static const symbol s_2_53[7] = { 'i', 'a', 'l', 'i', 's', 'm', 'e' };
+static const symbol s_2_54[7] = { 'i', 'o', 'n', 'i', 's', 'm', 'e' };
+static const symbol s_2_55[6] = { 'i', 'v', 'i', 's', 'm', 'e' };
+static const symbol s_2_56[4] = { 'a', 'i', 'r', 'e' };
+static const symbol s_2_57[4] = { 'i', 'c', 't', 'e' };
+static const symbol s_2_58[4] = { 'i', 's', 't', 'e' };
+static const symbol s_2_59[3] = { 'i', 'c', 'i' };
+static const symbol s_2_60[3] = { 0xED, 'c', 'i' };
+static const symbol s_2_61[4] = { 'l', 'o', 'g', 'i' };
+static const symbol s_2_62[3] = { 'a', 'r', 'i' };
+static const symbol s_2_63[4] = { 't', 'o', 'r', 'i' };
+static const symbol s_2_64[2] = { 'a', 'l' };
+static const symbol s_2_65[2] = { 'i', 'l' };
+static const symbol s_2_66[3] = { 'a', 'l', 'l' };
+static const symbol s_2_67[3] = { 'e', 'l', 'l' };
+static const symbol s_2_68[4] = { 0xED, 'v', 'o', 'l' };
+static const symbol s_2_69[4] = { 'i', 's', 'a', 'm' };
+static const symbol s_2_70[5] = { 'i', 's', 's', 'e', 'm' };
+static const symbol s_2_71[5] = { 0xEC, 's', 's', 'e', 'm' };
+static const symbol s_2_72[5] = { 0xED, 's', 's', 'e', 'm' };
+static const symbol s_2_73[5] = { 0xED, 's', 's', 'i', 'm' };
+static const symbol s_2_74[7] = { 'q', 'u', 0xED, 's', 's', 'i', 'm' };
+static const symbol s_2_75[4] = { 'a', 'm', 'e', 'n' };
+static const symbol s_2_76[5] = { 0xEC, 's', 's', 'i', 'n' };
+static const symbol s_2_77[2] = { 'a', 'r' };
+static const symbol s_2_78[6] = { 'i', 'f', 'i', 'c', 'a', 'r' };
+static const symbol s_2_79[4] = { 'e', 'g', 'a', 'r' };
+static const symbol s_2_80[4] = { 'e', 'j', 'a', 'r' };
+static const symbol s_2_81[4] = { 'i', 't', 'a', 'r' };
+static const symbol s_2_82[5] = { 'i', 't', 'z', 'a', 'r' };
+static const symbol s_2_83[3] = { 'f', 'e', 'r' };
+static const symbol s_2_84[2] = { 'o', 'r' };
+static const symbol s_2_85[3] = { 'd', 'o', 'r' };
+static const symbol s_2_86[3] = { 'd', 'u', 'r' };
+static const symbol s_2_87[5] = { 'd', 'o', 'r', 'a', 's' };
+static const symbol s_2_88[3] = { 'i', 'c', 's' };
+static const symbol s_2_89[6] = { 'l', 0xF3, 'g', 'i', 'c', 's' };
+static const symbol s_2_90[3] = { 'u', 'd', 's' };
+static const symbol s_2_91[4] = { 'n', 'c', 'e', 's' };
+static const symbol s_2_92[4] = { 'a', 'd', 'e', 's' };
+static const symbol s_2_93[6] = { 'a', 'n', 'c', 'i', 'e', 's' };
+static const symbol s_2_94[6] = { 'e', 'n', 'c', 'i', 'e', 's' };
+static const symbol s_2_95[6] = { 0xE8, 'n', 'c', 'i', 'e', 's' };
+static const symbol s_2_96[5] = { 0xED, 'c', 'i', 'e', 's' };
+static const symbol s_2_97[6] = { 'l', 'o', 'g', 'i', 'e', 's' };
+static const symbol s_2_98[5] = { 'i', 'n', 'i', 'e', 's' };
+static const symbol s_2_99[5] = { 0xED, 'n', 'i', 'e', 's' };
+static const symbol s_2_100[5] = { 'e', 'r', 'i', 'e', 's' };
+static const symbol s_2_101[5] = { 0xE0, 'r', 'i', 'e', 's' };
+static const symbol s_2_102[7] = { 'a', 't', 0xF2, 'r', 'i', 'e', 's' };
+static const symbol s_2_103[4] = { 'b', 'l', 'e', 's' };
+static const symbol s_2_104[5] = { 'a', 'b', 'l', 'e', 's' };
+static const symbol s_2_105[5] = { 'i', 'b', 'l', 'e', 's' };
+static const symbol s_2_106[4] = { 'i', 'm', 'e', 's' };
+static const symbol s_2_107[7] = { 0xED, 's', 's', 'i', 'm', 'e', 's' };
+static const symbol s_2_108[9] = { 'q', 'u', 0xED, 's', 's', 'i', 'm', 'e', 's' };
+static const symbol s_2_109[6] = { 'f', 'o', 'r', 'm', 'e', 's' };
+static const symbol s_2_110[5] = { 'i', 's', 'm', 'e', 's' };
+static const symbol s_2_111[8] = { 'i', 'a', 'l', 'i', 's', 'm', 'e', 's' };
+static const symbol s_2_112[4] = { 'i', 'n', 'e', 's' };
+static const symbol s_2_113[4] = { 'e', 'r', 'e', 's' };
+static const symbol s_2_114[4] = { 'o', 'r', 'e', 's' };
+static const symbol s_2_115[5] = { 'd', 'o', 'r', 'e', 's' };
+static const symbol s_2_116[6] = { 'i', 'd', 'o', 'r', 'e', 's' };
+static const symbol s_2_117[5] = { 'd', 'u', 'r', 'e', 's' };
+static const symbol s_2_118[4] = { 'e', 's', 'e', 's' };
+static const symbol s_2_119[4] = { 'o', 's', 'e', 's' };
+static const symbol s_2_120[5] = { 'a', 's', 's', 'e', 's' };
+static const symbol s_2_121[5] = { 'i', 'c', 't', 'e', 's' };
+static const symbol s_2_122[4] = { 'i', 't', 'e', 's' };
+static const symbol s_2_123[4] = { 'o', 't', 'e', 's' };
+static const symbol s_2_124[5] = { 'i', 's', 't', 'e', 's' };
+static const symbol s_2_125[8] = { 'i', 'a', 'l', 'i', 's', 't', 'e', 's' };
+static const symbol s_2_126[8] = { 'i', 'o', 'n', 'i', 's', 't', 'e', 's' };
+static const symbol s_2_127[5] = { 'i', 'q', 'u', 'e', 's' };
+static const symbol s_2_128[8] = { 'l', 0xF3, 'g', 'i', 'q', 'u', 'e', 's' };
+static const symbol s_2_129[4] = { 'i', 'v', 'e', 's' };
+static const symbol s_2_130[6] = { 'a', 't', 'i', 'v', 'e', 's' };
+static const symbol s_2_131[6] = { 'l', 'o', 'g', 0xED, 'e', 's' };
+static const symbol s_2_132[9] = { 'a', 'l', 'l', 'e', 'n', 'g', 0xFC, 'e', 's' };
+static const symbol s_2_133[4] = { 'i', 'c', 'i', 's' };
+static const symbol s_2_134[4] = { 0xED, 'c', 'i', 's' };
+static const symbol s_2_135[5] = { 'l', 'o', 'g', 'i', 's' };
+static const symbol s_2_136[4] = { 'a', 'r', 'i', 's' };
+static const symbol s_2_137[5] = { 't', 'o', 'r', 'i', 's' };
+static const symbol s_2_138[2] = { 'l', 's' };
+static const symbol s_2_139[3] = { 'a', 'l', 's' };
+static const symbol s_2_140[4] = { 'e', 'l', 'l', 's' };
+static const symbol s_2_141[3] = { 'i', 'm', 's' };
+static const symbol s_2_142[6] = { 0xED, 's', 's', 'i', 'm', 's' };
+static const symbol s_2_143[8] = { 'q', 'u', 0xED, 's', 's', 'i', 'm', 's' };
+static const symbol s_2_144[4] = { 'i', 'o', 'n', 's' };
+static const symbol s_2_145[5] = { 'c', 'i', 'o', 'n', 's' };
+static const symbol s_2_146[6] = { 'a', 'c', 'i', 'o', 'n', 's' };
+static const symbol s_2_147[4] = { 'e', 's', 'o', 's' };
+static const symbol s_2_148[4] = { 'o', 's', 'o', 's' };
+static const symbol s_2_149[5] = { 'a', 's', 's', 'o', 's' };
+static const symbol s_2_150[5] = { 'i', 's', 's', 'o', 's' };
+static const symbol s_2_151[3] = { 'e', 'r', 's' };
+static const symbol s_2_152[3] = { 'o', 'r', 's' };
+static const symbol s_2_153[4] = { 'd', 'o', 'r', 's' };
+static const symbol s_2_154[5] = { 'a', 'd', 'o', 'r', 's' };
+static const symbol s_2_155[5] = { 'i', 'd', 'o', 'r', 's' };
+static const symbol s_2_156[3] = { 'a', 't', 's' };
+static const symbol s_2_157[5] = { 'i', 't', 'a', 't', 's' };
+static const symbol s_2_158[8] = { 'b', 'i', 'l', 'i', 't', 'a', 't', 's' };
+static const symbol s_2_159[7] = { 'i', 'v', 'i', 't', 'a', 't', 's' };
+static const symbol s_2_160[9] = { 'a', 't', 'i', 'v', 'i', 't', 'a', 't', 's' };
+static const symbol s_2_161[5] = { 0xEF, 't', 'a', 't', 's' };
+static const symbol s_2_162[3] = { 'e', 't', 's' };
+static const symbol s_2_163[4] = { 'a', 'n', 't', 's' };
+static const symbol s_2_164[4] = { 'e', 'n', 't', 's' };
+static const symbol s_2_165[5] = { 'm', 'e', 'n', 't', 's' };
+static const symbol s_2_166[6] = { 'a', 'm', 'e', 'n', 't', 's' };
+static const symbol s_2_167[3] = { 'o', 't', 's' };
+static const symbol s_2_168[3] = { 'u', 't', 's' };
+static const symbol s_2_169[3] = { 'i', 'u', 's' };
+static const symbol s_2_170[5] = { 't', 'r', 'i', 'u', 's' };
+static const symbol s_2_171[5] = { 'a', 't', 'i', 'u', 's' };
+static const symbol s_2_172[2] = { 0xE8, 's' };
+static const symbol s_2_173[2] = { 0xE9, 's' };
+static const symbol s_2_174[2] = { 0xED, 's' };
+static const symbol s_2_175[3] = { 'd', 0xED, 's' };
+static const symbol s_2_176[2] = { 0xF3, 's' };
+static const symbol s_2_177[4] = { 'i', 't', 'a', 't' };
+static const symbol s_2_178[7] = { 'b', 'i', 'l', 'i', 't', 'a', 't' };
+static const symbol s_2_179[6] = { 'i', 'v', 'i', 't', 'a', 't' };
+static const symbol s_2_180[8] = { 'a', 't', 'i', 'v', 'i', 't', 'a', 't' };
+static const symbol s_2_181[4] = { 0xEF, 't', 'a', 't' };
+static const symbol s_2_182[2] = { 'e', 't' };
+static const symbol s_2_183[3] = { 'a', 'n', 't' };
+static const symbol s_2_184[3] = { 'e', 'n', 't' };
+static const symbol s_2_185[4] = { 'i', 'e', 'n', 't' };
+static const symbol s_2_186[4] = { 'm', 'e', 'n', 't' };
+static const symbol s_2_187[5] = { 'a', 'm', 'e', 'n', 't' };
+static const symbol s_2_188[7] = { 'i', 's', 'a', 'm', 'e', 'n', 't' };
+static const symbol s_2_189[2] = { 'o', 't' };
+static const symbol s_2_190[5] = { 'i', 's', 's', 'e', 'u' };
+static const symbol s_2_191[5] = { 0xEC, 's', 's', 'e', 'u' };
+static const symbol s_2_192[5] = { 0xED, 's', 's', 'e', 'u' };
+static const symbol s_2_193[4] = { 't', 'r', 'i', 'u' };
+static const symbol s_2_194[5] = { 0xED, 's', 's', 'i', 'u' };
+static const symbol s_2_195[4] = { 'a', 't', 'i', 'u' };
+static const symbol s_2_196[1] = { 0xF3 };
+static const symbol s_2_197[2] = { 'i', 0xF3 };
+static const symbol s_2_198[3] = { 'c', 'i', 0xF3 };
+static const symbol s_2_199[4] = { 'a', 'c', 'i', 0xF3 };
+
+static const struct among a_2[200] =
+{
+{ 3, s_2_0, -1, 4, 0},
+{ 6, s_2_1, 0, 3, 0},
+{ 4, s_2_2, -1, 1, 0},
+{ 3, s_2_3, -1, 2, 0},
+{ 5, s_2_4, -1, 1, 0},
+{ 5, s_2_5, -1, 1, 0},
+{ 5, s_2_6, -1, 1, 0},
+{ 4, s_2_7, -1, 1, 0},
+{ 5, s_2_8, -1, 3, 0},
+{ 4, s_2_9, -1, 1, 0},
+{ 5, s_2_10, 9, 1, 0},
+{ 4, s_2_11, -1, 1, 0},
+{ 4, s_2_12, -1, 1, 0},
+{ 6, s_2_13, -1, 1, 0},
+{ 4, s_2_14, -1, 1, 0},
+{ 4, s_2_15, -1, 1, 0},
+{ 5, s_2_16, -1, 1, 0},
+{ 3, s_2_17, -1, 1, 0},
+{ 6, s_2_18, 17, 1, 0},
+{ 8, s_2_19, 18, 5, 0},
+{ 3, s_2_20, -1, 1, 0},
+{ 3, s_2_21, -1, 1, 0},
+{ 3, s_2_22, -1, 1, 0},
+{ 5, s_2_23, 22, 1, 0},
+{ 3, s_2_24, -1, 1, 0},
+{ 4, s_2_25, 24, 1, 0},
+{ 5, s_2_26, 25, 1, 0},
+{ 5, s_2_27, -1, 1, 0},
+{ 3, s_2_28, -1, 1, 0},
+{ 3, s_2_29, -1, 1, 0},
+{ 4, s_2_30, -1, 1, 0},
+{ 4, s_2_31, -1, 1, 0},
+{ 4, s_2_32, -1, 1, 0},
+{ 3, s_2_33, -1, 1, 0},
+{ 3, s_2_34, -1, 1, 0},
+{ 3, s_2_35, -1, 1, 0},
+{ 4, s_2_36, -1, 1, 0},
+{ 7, s_2_37, 36, 1, 0},
+{ 7, s_2_38, 36, 1, 0},
+{ 3, s_2_39, -1, 1, 0},
+{ 5, s_2_40, 39, 1, 0},
+{ 3, s_2_41, -1, 1, 0},
+{ 5, s_2_42, -1, 3, 0},
+{ 2, s_2_43, -1, 4, 0},
+{ 5, s_2_44, 43, 1, 0},
+{ 3, s_2_45, -1, 1, 0},
+{ 3, s_2_46, -1, 1, 0},
+{ 2, s_2_47, -1, 1, 0},
+{ 4, s_2_48, -1, 1, 0},
+{ 3, s_2_49, -1, 1, 0},
+{ 4, s_2_50, 49, 1, 0},
+{ 4, s_2_51, 49, 1, 0},
+{ 4, s_2_52, -1, 1, 0},
+{ 7, s_2_53, 52, 1, 0},
+{ 7, s_2_54, 52, 1, 0},
+{ 6, s_2_55, 52, 1, 0},
+{ 4, s_2_56, -1, 1, 0},
+{ 4, s_2_57, -1, 1, 0},
+{ 4, s_2_58, -1, 1, 0},
+{ 3, s_2_59, -1, 1, 0},
+{ 3, s_2_60, -1, 1, 0},
+{ 4, s_2_61, -1, 3, 0},
+{ 3, s_2_62, -1, 1, 0},
+{ 4, s_2_63, -1, 1, 0},
+{ 2, s_2_64, -1, 1, 0},
+{ 2, s_2_65, -1, 1, 0},
+{ 3, s_2_66, -1, 1, 0},
+{ 3, s_2_67, -1, 1, 0},
+{ 4, s_2_68, -1, 1, 0},
+{ 4, s_2_69, -1, 1, 0},
+{ 5, s_2_70, -1, 1, 0},
+{ 5, s_2_71, -1, 1, 0},
+{ 5, s_2_72, -1, 1, 0},
+{ 5, s_2_73, -1, 1, 0},
+{ 7, s_2_74, 73, 5, 0},
+{ 4, s_2_75, -1, 1, 0},
+{ 5, s_2_76, -1, 1, 0},
+{ 2, s_2_77, -1, 1, 0},
+{ 6, s_2_78, 77, 1, 0},
+{ 4, s_2_79, 77, 1, 0},
+{ 4, s_2_80, 77, 1, 0},
+{ 4, s_2_81, 77, 1, 0},
+{ 5, s_2_82, 77, 1, 0},
+{ 3, s_2_83, -1, 1, 0},
+{ 2, s_2_84, -1, 1, 0},
+{ 3, s_2_85, 84, 1, 0},
+{ 3, s_2_86, -1, 1, 0},
+{ 5, s_2_87, -1, 1, 0},
+{ 3, s_2_88, -1, 4, 0},
+{ 6, s_2_89, 88, 3, 0},
+{ 3, s_2_90, -1, 1, 0},
+{ 4, s_2_91, -1, 1, 0},
+{ 4, s_2_92, -1, 2, 0},
+{ 6, s_2_93, -1, 1, 0},
+{ 6, s_2_94, -1, 1, 0},
+{ 6, s_2_95, -1, 1, 0},
+{ 5, s_2_96, -1, 1, 0},
+{ 6, s_2_97, -1, 3, 0},
+{ 5, s_2_98, -1, 1, 0},
+{ 5, s_2_99, -1, 1, 0},
+{ 5, s_2_100, -1, 1, 0},
+{ 5, s_2_101, -1, 1, 0},
+{ 7, s_2_102, -1, 1, 0},
+{ 4, s_2_103, -1, 1, 0},
+{ 5, s_2_104, 103, 1, 0},
+{ 5, s_2_105, 103, 1, 0},
+{ 4, s_2_106, -1, 1, 0},
+{ 7, s_2_107, 106, 1, 0},
+{ 9, s_2_108, 107, 5, 0},
+{ 6, s_2_109, -1, 1, 0},
+{ 5, s_2_110, -1, 1, 0},
+{ 8, s_2_111, 110, 1, 0},
+{ 4, s_2_112, -1, 1, 0},
+{ 4, s_2_113, -1, 1, 0},
+{ 4, s_2_114, -1, 1, 0},
+{ 5, s_2_115, 114, 1, 0},
+{ 6, s_2_116, 115, 1, 0},
+{ 5, s_2_117, -1, 1, 0},
+{ 4, s_2_118, -1, 1, 0},
+{ 4, s_2_119, -1, 1, 0},
+{ 5, s_2_120, -1, 1, 0},
+{ 5, s_2_121, -1, 1, 0},
+{ 4, s_2_122, -1, 1, 0},
+{ 4, s_2_123, -1, 1, 0},
+{ 5, s_2_124, -1, 1, 0},
+{ 8, s_2_125, 124, 1, 0},
+{ 8, s_2_126, 124, 1, 0},
+{ 5, s_2_127, -1, 4, 0},
+{ 8, s_2_128, 127, 3, 0},
+{ 4, s_2_129, -1, 1, 0},
+{ 6, s_2_130, 129, 1, 0},
+{ 6, s_2_131, -1, 3, 0},
+{ 9, s_2_132, -1, 1, 0},
+{ 4, s_2_133, -1, 1, 0},
+{ 4, s_2_134, -1, 1, 0},
+{ 5, s_2_135, -1, 3, 0},
+{ 4, s_2_136, -1, 1, 0},
+{ 5, s_2_137, -1, 1, 0},
+{ 2, s_2_138, -1, 1, 0},
+{ 3, s_2_139, 138, 1, 0},
+{ 4, s_2_140, 138, 1, 0},
+{ 3, s_2_141, -1, 1, 0},
+{ 6, s_2_142, 141, 1, 0},
+{ 8, s_2_143, 142, 5, 0},
+{ 4, s_2_144, -1, 1, 0},
+{ 5, s_2_145, 144, 1, 0},
+{ 6, s_2_146, 145, 2, 0},
+{ 4, s_2_147, -1, 1, 0},
+{ 4, s_2_148, -1, 1, 0},
+{ 5, s_2_149, -1, 1, 0},
+{ 5, s_2_150, -1, 1, 0},
+{ 3, s_2_151, -1, 1, 0},
+{ 3, s_2_152, -1, 1, 0},
+{ 4, s_2_153, 152, 1, 0},
+{ 5, s_2_154, 153, 1, 0},
+{ 5, s_2_155, 153, 1, 0},
+{ 3, s_2_156, -1, 1, 0},
+{ 5, s_2_157, 156, 1, 0},
+{ 8, s_2_158, 157, 1, 0},
+{ 7, s_2_159, 157, 1, 0},
+{ 9, s_2_160, 159, 1, 0},
+{ 5, s_2_161, 156, 1, 0},
+{ 3, s_2_162, -1, 1, 0},
+{ 4, s_2_163, -1, 1, 0},
+{ 4, s_2_164, -1, 1, 0},
+{ 5, s_2_165, 164, 1, 0},
+{ 6, s_2_166, 165, 1, 0},
+{ 3, s_2_167, -1, 1, 0},
+{ 3, s_2_168, -1, 1, 0},
+{ 3, s_2_169, -1, 1, 0},
+{ 5, s_2_170, 169, 1, 0},
+{ 5, s_2_171, 169, 1, 0},
+{ 2, s_2_172, -1, 1, 0},
+{ 2, s_2_173, -1, 1, 0},
+{ 2, s_2_174, -1, 1, 0},
+{ 3, s_2_175, 174, 1, 0},
+{ 2, s_2_176, -1, 1, 0},
+{ 4, s_2_177, -1, 1, 0},
+{ 7, s_2_178, 177, 1, 0},
+{ 6, s_2_179, 177, 1, 0},
+{ 8, s_2_180, 179, 1, 0},
+{ 4, s_2_181, -1, 1, 0},
+{ 2, s_2_182, -1, 1, 0},
+{ 3, s_2_183, -1, 1, 0},
+{ 3, s_2_184, -1, 1, 0},
+{ 4, s_2_185, 184, 1, 0},
+{ 4, s_2_186, 184, 1, 0},
+{ 5, s_2_187, 186, 1, 0},
+{ 7, s_2_188, 187, 1, 0},
+{ 2, s_2_189, -1, 1, 0},
+{ 5, s_2_190, -1, 1, 0},
+{ 5, s_2_191, -1, 1, 0},
+{ 5, s_2_192, -1, 1, 0},
+{ 4, s_2_193, -1, 1, 0},
+{ 5, s_2_194, -1, 1, 0},
+{ 4, s_2_195, -1, 1, 0},
+{ 1, s_2_196, -1, 1, 0},
+{ 2, s_2_197, 196, 1, 0},
+{ 3, s_2_198, 197, 1, 0},
+{ 4, s_2_199, 198, 1, 0}
+};
+
+static const symbol s_3_0[3] = { 'a', 'b', 'a' };
+static const symbol s_3_1[4] = { 'e', 's', 'c', 'a' };
+static const symbol s_3_2[4] = { 'i', 's', 'c', 'a' };
+static const symbol s_3_3[4] = { 0xEF, 's', 'c', 'a' };
+static const symbol s_3_4[3] = { 'a', 'd', 'a' };
+static const symbol s_3_5[3] = { 'i', 'd', 'a' };
+static const symbol s_3_6[3] = { 'u', 'd', 'a' };
+static const symbol s_3_7[3] = { 0xEF, 'd', 'a' };
+static const symbol s_3_8[2] = { 'i', 'a' };
+static const symbol s_3_9[4] = { 'a', 'r', 'i', 'a' };
+static const symbol s_3_10[4] = { 'i', 'r', 'i', 'a' };
+static const symbol s_3_11[3] = { 'a', 'r', 'a' };
+static const symbol s_3_12[4] = { 'i', 'e', 'r', 'a' };
+static const symbol s_3_13[3] = { 'i', 'r', 'a' };
+static const symbol s_3_14[5] = { 'a', 'd', 'o', 'r', 'a' };
+static const symbol s_3_15[3] = { 0xEF, 'r', 'a' };
+static const symbol s_3_16[3] = { 'a', 'v', 'a' };
+static const symbol s_3_17[3] = { 'i', 'x', 'a' };
+static const symbol s_3_18[4] = { 'i', 't', 'z', 'a' };
+static const symbol s_3_19[2] = { 0xED, 'a' };
+static const symbol s_3_20[4] = { 'a', 'r', 0xED, 'a' };
+static const symbol s_3_21[4] = { 'e', 'r', 0xED, 'a' };
+static const symbol s_3_22[4] = { 'i', 'r', 0xED, 'a' };
+static const symbol s_3_23[2] = { 0xEF, 'a' };
+static const symbol s_3_24[3] = { 'i', 's', 'c' };
+static const symbol s_3_25[3] = { 0xEF, 's', 'c' };
+static const symbol s_3_26[2] = { 'a', 'd' };
+static const symbol s_3_27[2] = { 'e', 'd' };
+static const symbol s_3_28[2] = { 'i', 'd' };
+static const symbol s_3_29[2] = { 'i', 'e' };
+static const symbol s_3_30[2] = { 'r', 'e' };
+static const symbol s_3_31[3] = { 'd', 'r', 'e' };
+static const symbol s_3_32[3] = { 'a', 's', 'e' };
+static const symbol s_3_33[4] = { 'i', 'e', 's', 'e' };
+static const symbol s_3_34[4] = { 'a', 's', 't', 'e' };
+static const symbol s_3_35[4] = { 'i', 's', 't', 'e' };
+static const symbol s_3_36[2] = { 'i', 'i' };
+static const symbol s_3_37[3] = { 'i', 'n', 'i' };
+static const symbol s_3_38[5] = { 'e', 's', 'q', 'u', 'i' };
+static const symbol s_3_39[4] = { 'e', 'i', 'x', 'i' };
+static const symbol s_3_40[4] = { 'i', 't', 'z', 'i' };
+static const symbol s_3_41[2] = { 'a', 'm' };
+static const symbol s_3_42[2] = { 'e', 'm' };
+static const symbol s_3_43[4] = { 'a', 'r', 'e', 'm' };
+static const symbol s_3_44[4] = { 'i', 'r', 'e', 'm' };
+static const symbol s_3_45[4] = { 0xE0, 'r', 'e', 'm' };
+static const symbol s_3_46[4] = { 0xED, 'r', 'e', 'm' };
+static const symbol s_3_47[5] = { 0xE0, 's', 's', 'e', 'm' };
+static const symbol s_3_48[5] = { 0xE9, 's', 's', 'e', 'm' };
+static const symbol s_3_49[5] = { 'i', 'g', 'u', 'e', 'm' };
+static const symbol s_3_50[5] = { 0xEF, 'g', 'u', 'e', 'm' };
+static const symbol s_3_51[4] = { 'a', 'v', 'e', 'm' };
+static const symbol s_3_52[4] = { 0xE0, 'v', 'e', 'm' };
+static const symbol s_3_53[4] = { 0xE1, 'v', 'e', 'm' };
+static const symbol s_3_54[5] = { 'i', 'r', 0xEC, 'e', 'm' };
+static const symbol s_3_55[3] = { 0xED, 'e', 'm' };
+static const symbol s_3_56[5] = { 'a', 'r', 0xED, 'e', 'm' };
+static const symbol s_3_57[5] = { 'i', 'r', 0xED, 'e', 'm' };
+static const symbol s_3_58[5] = { 'a', 's', 's', 'i', 'm' };
+static const symbol s_3_59[5] = { 'e', 's', 's', 'i', 'm' };
+static const symbol s_3_60[5] = { 'i', 's', 's', 'i', 'm' };
+static const symbol s_3_61[5] = { 0xE0, 's', 's', 'i', 'm' };
+static const symbol s_3_62[5] = { 0xE8, 's', 's', 'i', 'm' };
+static const symbol s_3_63[5] = { 0xE9, 's', 's', 'i', 'm' };
+static const symbol s_3_64[5] = { 0xED, 's', 's', 'i', 'm' };
+static const symbol s_3_65[2] = { 0xEF, 'm' };
+static const symbol s_3_66[2] = { 'a', 'n' };
+static const symbol s_3_67[4] = { 'a', 'b', 'a', 'n' };
+static const symbol s_3_68[5] = { 'a', 'r', 'i', 'a', 'n' };
+static const symbol s_3_69[4] = { 'a', 'r', 'a', 'n' };
+static const symbol s_3_70[5] = { 'i', 'e', 'r', 'a', 'n' };
+static const symbol s_3_71[4] = { 'i', 'r', 'a', 'n' };
+static const symbol s_3_72[3] = { 0xED, 'a', 'n' };
+static const symbol s_3_73[5] = { 'a', 'r', 0xED, 'a', 'n' };
+static const symbol s_3_74[5] = { 'e', 'r', 0xED, 'a', 'n' };
+static const symbol s_3_75[5] = { 'i', 'r', 0xED, 'a', 'n' };
+static const symbol s_3_76[2] = { 'e', 'n' };
+static const symbol s_3_77[3] = { 'i', 'e', 'n' };
+static const symbol s_3_78[5] = { 'a', 'r', 'i', 'e', 'n' };
+static const symbol s_3_79[5] = { 'i', 'r', 'i', 'e', 'n' };
+static const symbol s_3_80[4] = { 'a', 'r', 'e', 'n' };
+static const symbol s_3_81[4] = { 'e', 'r', 'e', 'n' };
+static const symbol s_3_82[4] = { 'i', 'r', 'e', 'n' };
+static const symbol s_3_83[4] = { 0xE0, 'r', 'e', 'n' };
+static const symbol s_3_84[4] = { 0xEF, 'r', 'e', 'n' };
+static const symbol s_3_85[4] = { 'a', 's', 'e', 'n' };
+static const symbol s_3_86[5] = { 'i', 'e', 's', 'e', 'n' };
+static const symbol s_3_87[5] = { 'a', 's', 's', 'e', 'n' };
+static const symbol s_3_88[5] = { 'e', 's', 's', 'e', 'n' };
+static const symbol s_3_89[5] = { 'i', 's', 's', 'e', 'n' };
+static const symbol s_3_90[5] = { 0xE9, 's', 's', 'e', 'n' };
+static const symbol s_3_91[5] = { 0xEF, 's', 's', 'e', 'n' };
+static const symbol s_3_92[6] = { 'e', 's', 'q', 'u', 'e', 'n' };
+static const symbol s_3_93[6] = { 'i', 's', 'q', 'u', 'e', 'n' };
+static const symbol s_3_94[6] = { 0xEF, 's', 'q', 'u', 'e', 'n' };
+static const symbol s_3_95[4] = { 'a', 'v', 'e', 'n' };
+static const symbol s_3_96[4] = { 'i', 'x', 'e', 'n' };
+static const symbol s_3_97[5] = { 'e', 'i', 'x', 'e', 'n' };
+static const symbol s_3_98[4] = { 0xEF, 'x', 'e', 'n' };
+static const symbol s_3_99[3] = { 0xEF, 'e', 'n' };
+static const symbol s_3_100[2] = { 'i', 'n' };
+static const symbol s_3_101[4] = { 'i', 'n', 'i', 'n' };
+static const symbol s_3_102[3] = { 's', 'i', 'n' };
+static const symbol s_3_103[4] = { 'i', 's', 'i', 'n' };
+static const symbol s_3_104[5] = { 'a', 's', 's', 'i', 'n' };
+static const symbol s_3_105[5] = { 'e', 's', 's', 'i', 'n' };
+static const symbol s_3_106[5] = { 'i', 's', 's', 'i', 'n' };
+static const symbol s_3_107[5] = { 0xEF, 's', 's', 'i', 'n' };
+static const symbol s_3_108[6] = { 'e', 's', 'q', 'u', 'i', 'n' };
+static const symbol s_3_109[5] = { 'e', 'i', 'x', 'i', 'n' };
+static const symbol s_3_110[4] = { 'a', 'r', 'o', 'n' };
+static const symbol s_3_111[5] = { 'i', 'e', 'r', 'o', 'n' };
+static const symbol s_3_112[4] = { 'a', 'r', 0xE1, 'n' };
+static const symbol s_3_113[4] = { 'e', 'r', 0xE1, 'n' };
+static const symbol s_3_114[4] = { 'i', 'r', 0xE1, 'n' };
+static const symbol s_3_115[3] = { 'i', 0xEF, 'n' };
+static const symbol s_3_116[3] = { 'a', 'd', 'o' };
+static const symbol s_3_117[3] = { 'i', 'd', 'o' };
+static const symbol s_3_118[4] = { 'a', 'n', 'd', 'o' };
+static const symbol s_3_119[5] = { 'i', 'e', 'n', 'd', 'o' };
+static const symbol s_3_120[2] = { 'i', 'o' };
+static const symbol s_3_121[3] = { 'i', 'x', 'o' };
+static const symbol s_3_122[4] = { 'e', 'i', 'x', 'o' };
+static const symbol s_3_123[3] = { 0xEF, 'x', 'o' };
+static const symbol s_3_124[4] = { 'i', 't', 'z', 'o' };
+static const symbol s_3_125[2] = { 'a', 'r' };
+static const symbol s_3_126[4] = { 't', 'z', 'a', 'r' };
+static const symbol s_3_127[2] = { 'e', 'r' };
+static const symbol s_3_128[5] = { 'e', 'i', 'x', 'e', 'r' };
+static const symbol s_3_129[2] = { 'i', 'r' };
+static const symbol s_3_130[4] = { 'a', 'd', 'o', 'r' };
+static const symbol s_3_131[2] = { 'a', 's' };
+static const symbol s_3_132[4] = { 'a', 'b', 'a', 's' };
+static const symbol s_3_133[4] = { 'a', 'd', 'a', 's' };
+static const symbol s_3_134[4] = { 'i', 'd', 'a', 's' };
+static const symbol s_3_135[4] = { 'a', 'r', 'a', 's' };
+static const symbol s_3_136[5] = { 'i', 'e', 'r', 'a', 's' };
+static const symbol s_3_137[3] = { 0xED, 'a', 's' };
+static const symbol s_3_138[5] = { 'a', 'r', 0xED, 'a', 's' };
+static const symbol s_3_139[5] = { 'e', 'r', 0xED, 'a', 's' };
+static const symbol s_3_140[5] = { 'i', 'r', 0xED, 'a', 's' };
+static const symbol s_3_141[3] = { 'i', 'd', 's' };
+static const symbol s_3_142[2] = { 'e', 's' };
+static const symbol s_3_143[4] = { 'a', 'd', 'e', 's' };
+static const symbol s_3_144[4] = { 'i', 'd', 'e', 's' };
+static const symbol s_3_145[4] = { 'u', 'd', 'e', 's' };
+static const symbol s_3_146[4] = { 0xEF, 'd', 'e', 's' };
+static const symbol s_3_147[5] = { 'a', 't', 'g', 'e', 's' };
+static const symbol s_3_148[3] = { 'i', 'e', 's' };
+static const symbol s_3_149[5] = { 'a', 'r', 'i', 'e', 's' };
+static const symbol s_3_150[5] = { 'i', 'r', 'i', 'e', 's' };
+static const symbol s_3_151[4] = { 'a', 'r', 'e', 's' };
+static const symbol s_3_152[4] = { 'i', 'r', 'e', 's' };
+static const symbol s_3_153[6] = { 'a', 'd', 'o', 'r', 'e', 's' };
+static const symbol s_3_154[4] = { 0xEF, 'r', 'e', 's' };
+static const symbol s_3_155[4] = { 'a', 's', 'e', 's' };
+static const symbol s_3_156[5] = { 'i', 'e', 's', 'e', 's' };
+static const symbol s_3_157[5] = { 'a', 's', 's', 'e', 's' };
+static const symbol s_3_158[5] = { 'e', 's', 's', 'e', 's' };
+static const symbol s_3_159[5] = { 'i', 's', 's', 'e', 's' };
+static const symbol s_3_160[5] = { 0xEF, 's', 's', 'e', 's' };
+static const symbol s_3_161[4] = { 'q', 'u', 'e', 's' };
+static const symbol s_3_162[6] = { 'e', 's', 'q', 'u', 'e', 's' };
+static const symbol s_3_163[6] = { 0xEF, 's', 'q', 'u', 'e', 's' };
+static const symbol s_3_164[4] = { 'a', 'v', 'e', 's' };
+static const symbol s_3_165[4] = { 'i', 'x', 'e', 's' };
+static const symbol s_3_166[5] = { 'e', 'i', 'x', 'e', 's' };
+static const symbol s_3_167[4] = { 0xEF, 'x', 'e', 's' };
+static const symbol s_3_168[3] = { 0xEF, 'e', 's' };
+static const symbol s_3_169[5] = { 'a', 'b', 'a', 'i', 's' };
+static const symbol s_3_170[5] = { 'a', 'r', 'a', 'i', 's' };
+static const symbol s_3_171[6] = { 'i', 'e', 'r', 'a', 'i', 's' };
+static const symbol s_3_172[4] = { 0xED, 'a', 'i', 's' };
+static const symbol s_3_173[6] = { 'a', 'r', 0xED, 'a', 'i', 's' };
+static const symbol s_3_174[6] = { 'e', 'r', 0xED, 'a', 'i', 's' };
+static const symbol s_3_175[6] = { 'i', 'r', 0xED, 'a', 'i', 's' };
+static const symbol s_3_176[5] = { 'a', 's', 'e', 'i', 's' };
+static const symbol s_3_177[6] = { 'i', 'e', 's', 'e', 'i', 's' };
+static const symbol s_3_178[6] = { 'a', 's', 't', 'e', 'i', 's' };
+static const symbol s_3_179[6] = { 'i', 's', 't', 'e', 'i', 's' };
+static const symbol s_3_180[4] = { 'i', 'n', 'i', 's' };
+static const symbol s_3_181[3] = { 's', 'i', 's' };
+static const symbol s_3_182[4] = { 'i', 's', 'i', 's' };
+static const symbol s_3_183[5] = { 'a', 's', 's', 'i', 's' };
+static const symbol s_3_184[5] = { 'e', 's', 's', 'i', 's' };
+static const symbol s_3_185[5] = { 'i', 's', 's', 'i', 's' };
+static const symbol s_3_186[5] = { 0xEF, 's', 's', 'i', 's' };
+static const symbol s_3_187[6] = { 'e', 's', 'q', 'u', 'i', 's' };
+static const symbol s_3_188[5] = { 'e', 'i', 'x', 'i', 's' };
+static const symbol s_3_189[5] = { 'i', 't', 'z', 'i', 's' };
+static const symbol s_3_190[3] = { 0xE1, 'i', 's' };
+static const symbol s_3_191[5] = { 'a', 'r', 0xE9, 'i', 's' };
+static const symbol s_3_192[5] = { 'e', 'r', 0xE9, 'i', 's' };
+static const symbol s_3_193[5] = { 'i', 'r', 0xE9, 'i', 's' };
+static const symbol s_3_194[3] = { 'a', 'm', 's' };
+static const symbol s_3_195[4] = { 'a', 'd', 'o', 's' };
+static const symbol s_3_196[4] = { 'i', 'd', 'o', 's' };
+static const symbol s_3_197[4] = { 'a', 'm', 'o', 's' };
+static const symbol s_3_198[6] = { 0xE1, 'b', 'a', 'm', 'o', 's' };
+static const symbol s_3_199[6] = { 0xE1, 'r', 'a', 'm', 'o', 's' };
+static const symbol s_3_200[7] = { 'i', 0xE9, 'r', 'a', 'm', 'o', 's' };
+static const symbol s_3_201[5] = { 0xED, 'a', 'm', 'o', 's' };
+static const symbol s_3_202[7] = { 'a', 'r', 0xED, 'a', 'm', 'o', 's' };
+static const symbol s_3_203[7] = { 'e', 'r', 0xED, 'a', 'm', 'o', 's' };
+static const symbol s_3_204[7] = { 'i', 'r', 0xED, 'a', 'm', 'o', 's' };
+static const symbol s_3_205[6] = { 'a', 'r', 'e', 'm', 'o', 's' };
+static const symbol s_3_206[6] = { 'e', 'r', 'e', 'm', 'o', 's' };
+static const symbol s_3_207[6] = { 'i', 'r', 'e', 'm', 'o', 's' };
+static const symbol s_3_208[6] = { 0xE1, 's', 'e', 'm', 'o', 's' };
+static const symbol s_3_209[7] = { 'i', 0xE9, 's', 'e', 'm', 'o', 's' };
+static const symbol s_3_210[4] = { 'i', 'm', 'o', 's' };
+static const symbol s_3_211[5] = { 'a', 'd', 'o', 'r', 's' };
+static const symbol s_3_212[3] = { 'a', 's', 's' };
+static const symbol s_3_213[5] = { 'e', 'r', 'a', 's', 's' };
+static const symbol s_3_214[3] = { 'e', 's', 's' };
+static const symbol s_3_215[3] = { 'a', 't', 's' };
+static const symbol s_3_216[3] = { 'i', 't', 's' };
+static const symbol s_3_217[4] = { 'e', 'n', 't', 's' };
+static const symbol s_3_218[2] = { 0xE0, 's' };
+static const symbol s_3_219[4] = { 'a', 'r', 0xE0, 's' };
+static const symbol s_3_220[4] = { 'i', 'r', 0xE0, 's' };
+static const symbol s_3_221[4] = { 'a', 'r', 0xE1, 's' };
+static const symbol s_3_222[4] = { 'e', 'r', 0xE1, 's' };
+static const symbol s_3_223[4] = { 'i', 'r', 0xE1, 's' };
+static const symbol s_3_224[2] = { 0xE9, 's' };
+static const symbol s_3_225[4] = { 'a', 'r', 0xE9, 's' };
+static const symbol s_3_226[2] = { 0xED, 's' };
+static const symbol s_3_227[3] = { 'i', 0xEF, 's' };
+static const symbol s_3_228[2] = { 'a', 't' };
+static const symbol s_3_229[2] = { 'i', 't' };
+static const symbol s_3_230[3] = { 'a', 'n', 't' };
+static const symbol s_3_231[3] = { 'e', 'n', 't' };
+static const symbol s_3_232[3] = { 'i', 'n', 't' };
+static const symbol s_3_233[2] = { 'u', 't' };
+static const symbol s_3_234[2] = { 0xEF, 't' };
+static const symbol s_3_235[2] = { 'a', 'u' };
+static const symbol s_3_236[4] = { 'e', 'r', 'a', 'u' };
+static const symbol s_3_237[3] = { 'i', 'e', 'u' };
+static const symbol s_3_238[4] = { 'i', 'n', 'e', 'u' };
+static const symbol s_3_239[4] = { 'a', 'r', 'e', 'u' };
+static const symbol s_3_240[4] = { 'i', 'r', 'e', 'u' };
+static const symbol s_3_241[4] = { 0xE0, 'r', 'e', 'u' };
+static const symbol s_3_242[4] = { 0xED, 'r', 'e', 'u' };
+static const symbol s_3_243[5] = { 'a', 's', 's', 'e', 'u' };
+static const symbol s_3_244[5] = { 'e', 's', 's', 'e', 'u' };
+static const symbol s_3_245[7] = { 'e', 'r', 'e', 's', 's', 'e', 'u' };
+static const symbol s_3_246[5] = { 0xE0, 's', 's', 'e', 'u' };
+static const symbol s_3_247[5] = { 0xE9, 's', 's', 'e', 'u' };
+static const symbol s_3_248[5] = { 'i', 'g', 'u', 'e', 'u' };
+static const symbol s_3_249[5] = { 0xEF, 'g', 'u', 'e', 'u' };
+static const symbol s_3_250[4] = { 0xE0, 'v', 'e', 'u' };
+static const symbol s_3_251[4] = { 0xE1, 'v', 'e', 'u' };
+static const symbol s_3_252[5] = { 'i', 't', 'z', 'e', 'u' };
+static const symbol s_3_253[3] = { 0xEC, 'e', 'u' };
+static const symbol s_3_254[5] = { 'i', 'r', 0xEC, 'e', 'u' };
+static const symbol s_3_255[3] = { 0xED, 'e', 'u' };
+static const symbol s_3_256[5] = { 'a', 'r', 0xED, 'e', 'u' };
+static const symbol s_3_257[5] = { 'i', 'r', 0xED, 'e', 'u' };
+static const symbol s_3_258[5] = { 'a', 's', 's', 'i', 'u' };
+static const symbol s_3_259[5] = { 'i', 's', 's', 'i', 'u' };
+static const symbol s_3_260[5] = { 0xE0, 's', 's', 'i', 'u' };
+static const symbol s_3_261[5] = { 0xE8, 's', 's', 'i', 'u' };
+static const symbol s_3_262[5] = { 0xE9, 's', 's', 'i', 'u' };
+static const symbol s_3_263[5] = { 0xED, 's', 's', 'i', 'u' };
+static const symbol s_3_264[2] = { 0xEF, 'u' };
+static const symbol s_3_265[2] = { 'i', 'x' };
+static const symbol s_3_266[3] = { 'e', 'i', 'x' };
+static const symbol s_3_267[2] = { 0xEF, 'x' };
+static const symbol s_3_268[3] = { 'i', 't', 'z' };
+static const symbol s_3_269[2] = { 'i', 0xE0 };
+static const symbol s_3_270[3] = { 'a', 'r', 0xE0 };
+static const symbol s_3_271[3] = { 'i', 'r', 0xE0 };
+static const symbol s_3_272[4] = { 'i', 't', 'z', 0xE0 };
+static const symbol s_3_273[3] = { 'a', 'r', 0xE1 };
+static const symbol s_3_274[3] = { 'e', 'r', 0xE1 };
+static const symbol s_3_275[3] = { 'i', 'r', 0xE1 };
+static const symbol s_3_276[3] = { 'i', 'r', 0xE8 };
+static const symbol s_3_277[3] = { 'a', 'r', 0xE9 };
+static const symbol s_3_278[3] = { 'e', 'r', 0xE9 };
+static const symbol s_3_279[3] = { 'i', 'r', 0xE9 };
+static const symbol s_3_280[1] = { 0xED };
+static const symbol s_3_281[2] = { 'i', 0xEF };
+static const symbol s_3_282[2] = { 'i', 0xF3 };
+
+static const struct among a_3[283] =
+{
+{ 3, s_3_0, -1, 1, 0},
+{ 4, s_3_1, -1, 1, 0},
+{ 4, s_3_2, -1, 1, 0},
+{ 4, s_3_3, -1, 1, 0},
+{ 3, s_3_4, -1, 1, 0},
+{ 3, s_3_5, -1, 1, 0},
+{ 3, s_3_6, -1, 1, 0},
+{ 3, s_3_7, -1, 1, 0},
+{ 2, s_3_8, -1, 1, 0},
+{ 4, s_3_9, 8, 1, 0},
+{ 4, s_3_10, 8, 1, 0},
+{ 3, s_3_11, -1, 1, 0},
+{ 4, s_3_12, -1, 1, 0},
+{ 3, s_3_13, -1, 1, 0},
+{ 5, s_3_14, -1, 1, 0},
+{ 3, s_3_15, -1, 1, 0},
+{ 3, s_3_16, -1, 1, 0},
+{ 3, s_3_17, -1, 1, 0},
+{ 4, s_3_18, -1, 1, 0},
+{ 2, s_3_19, -1, 1, 0},
+{ 4, s_3_20, 19, 1, 0},
+{ 4, s_3_21, 19, 1, 0},
+{ 4, s_3_22, 19, 1, 0},
+{ 2, s_3_23, -1, 1, 0},
+{ 3, s_3_24, -1, 1, 0},
+{ 3, s_3_25, -1, 1, 0},
+{ 2, s_3_26, -1, 1, 0},
+{ 2, s_3_27, -1, 1, 0},
+{ 2, s_3_28, -1, 1, 0},
+{ 2, s_3_29, -1, 1, 0},
+{ 2, s_3_30, -1, 1, 0},
+{ 3, s_3_31, 30, 1, 0},
+{ 3, s_3_32, -1, 1, 0},
+{ 4, s_3_33, -1, 1, 0},
+{ 4, s_3_34, -1, 1, 0},
+{ 4, s_3_35, -1, 1, 0},
+{ 2, s_3_36, -1, 1, 0},
+{ 3, s_3_37, -1, 1, 0},
+{ 5, s_3_38, -1, 1, 0},
+{ 4, s_3_39, -1, 1, 0},
+{ 4, s_3_40, -1, 1, 0},
+{ 2, s_3_41, -1, 1, 0},
+{ 2, s_3_42, -1, 1, 0},
+{ 4, s_3_43, 42, 1, 0},
+{ 4, s_3_44, 42, 1, 0},
+{ 4, s_3_45, 42, 1, 0},
+{ 4, s_3_46, 42, 1, 0},
+{ 5, s_3_47, 42, 1, 0},
+{ 5, s_3_48, 42, 1, 0},
+{ 5, s_3_49, 42, 1, 0},
+{ 5, s_3_50, 42, 1, 0},
+{ 4, s_3_51, 42, 1, 0},
+{ 4, s_3_52, 42, 1, 0},
+{ 4, s_3_53, 42, 1, 0},
+{ 5, s_3_54, 42, 1, 0},
+{ 3, s_3_55, 42, 1, 0},
+{ 5, s_3_56, 55, 1, 0},
+{ 5, s_3_57, 55, 1, 0},
+{ 5, s_3_58, -1, 1, 0},
+{ 5, s_3_59, -1, 1, 0},
+{ 5, s_3_60, -1, 1, 0},
+{ 5, s_3_61, -1, 1, 0},
+{ 5, s_3_62, -1, 1, 0},
+{ 5, s_3_63, -1, 1, 0},
+{ 5, s_3_64, -1, 1, 0},
+{ 2, s_3_65, -1, 1, 0},
+{ 2, s_3_66, -1, 1, 0},
+{ 4, s_3_67, 66, 1, 0},
+{ 5, s_3_68, 66, 1, 0},
+{ 4, s_3_69, 66, 1, 0},
+{ 5, s_3_70, 66, 1, 0},
+{ 4, s_3_71, 66, 1, 0},
+{ 3, s_3_72, 66, 1, 0},
+{ 5, s_3_73, 72, 1, 0},
+{ 5, s_3_74, 72, 1, 0},
+{ 5, s_3_75, 72, 1, 0},
+{ 2, s_3_76, -1, 1, 0},
+{ 3, s_3_77, 76, 1, 0},
+{ 5, s_3_78, 77, 1, 0},
+{ 5, s_3_79, 77, 1, 0},
+{ 4, s_3_80, 76, 1, 0},
+{ 4, s_3_81, 76, 1, 0},
+{ 4, s_3_82, 76, 1, 0},
+{ 4, s_3_83, 76, 1, 0},
+{ 4, s_3_84, 76, 1, 0},
+{ 4, s_3_85, 76, 1, 0},
+{ 5, s_3_86, 76, 1, 0},
+{ 5, s_3_87, 76, 1, 0},
+{ 5, s_3_88, 76, 1, 0},
+{ 5, s_3_89, 76, 1, 0},
+{ 5, s_3_90, 76, 1, 0},
+{ 5, s_3_91, 76, 1, 0},
+{ 6, s_3_92, 76, 1, 0},
+{ 6, s_3_93, 76, 1, 0},
+{ 6, s_3_94, 76, 1, 0},
+{ 4, s_3_95, 76, 1, 0},
+{ 4, s_3_96, 76, 1, 0},
+{ 5, s_3_97, 96, 1, 0},
+{ 4, s_3_98, 76, 1, 0},
+{ 3, s_3_99, 76, 1, 0},
+{ 2, s_3_100, -1, 1, 0},
+{ 4, s_3_101, 100, 1, 0},
+{ 3, s_3_102, 100, 1, 0},
+{ 4, s_3_103, 102, 1, 0},
+{ 5, s_3_104, 102, 1, 0},
+{ 5, s_3_105, 102, 1, 0},
+{ 5, s_3_106, 102, 1, 0},
+{ 5, s_3_107, 102, 1, 0},
+{ 6, s_3_108, 100, 1, 0},
+{ 5, s_3_109, 100, 1, 0},
+{ 4, s_3_110, -1, 1, 0},
+{ 5, s_3_111, -1, 1, 0},
+{ 4, s_3_112, -1, 1, 0},
+{ 4, s_3_113, -1, 1, 0},
+{ 4, s_3_114, -1, 1, 0},
+{ 3, s_3_115, -1, 1, 0},
+{ 3, s_3_116, -1, 1, 0},
+{ 3, s_3_117, -1, 1, 0},
+{ 4, s_3_118, -1, 2, 0},
+{ 5, s_3_119, -1, 1, 0},
+{ 2, s_3_120, -1, 1, 0},
+{ 3, s_3_121, -1, 1, 0},
+{ 4, s_3_122, 121, 1, 0},
+{ 3, s_3_123, -1, 1, 0},
+{ 4, s_3_124, -1, 1, 0},
+{ 2, s_3_125, -1, 1, 0},
+{ 4, s_3_126, 125, 1, 0},
+{ 2, s_3_127, -1, 1, 0},
+{ 5, s_3_128, 127, 1, 0},
+{ 2, s_3_129, -1, 1, 0},
+{ 4, s_3_130, -1, 1, 0},
+{ 2, s_3_131, -1, 1, 0},
+{ 4, s_3_132, 131, 1, 0},
+{ 4, s_3_133, 131, 1, 0},
+{ 4, s_3_134, 131, 1, 0},
+{ 4, s_3_135, 131, 1, 0},
+{ 5, s_3_136, 131, 1, 0},
+{ 3, s_3_137, 131, 1, 0},
+{ 5, s_3_138, 137, 1, 0},
+{ 5, s_3_139, 137, 1, 0},
+{ 5, s_3_140, 137, 1, 0},
+{ 3, s_3_141, -1, 1, 0},
+{ 2, s_3_142, -1, 1, 0},
+{ 4, s_3_143, 142, 1, 0},
+{ 4, s_3_144, 142, 1, 0},
+{ 4, s_3_145, 142, 1, 0},
+{ 4, s_3_146, 142, 1, 0},
+{ 5, s_3_147, 142, 1, 0},
+{ 3, s_3_148, 142, 1, 0},
+{ 5, s_3_149, 148, 1, 0},
+{ 5, s_3_150, 148, 1, 0},
+{ 4, s_3_151, 142, 1, 0},
+{ 4, s_3_152, 142, 1, 0},
+{ 6, s_3_153, 142, 1, 0},
+{ 4, s_3_154, 142, 1, 0},
+{ 4, s_3_155, 142, 1, 0},
+{ 5, s_3_156, 142, 1, 0},
+{ 5, s_3_157, 142, 1, 0},
+{ 5, s_3_158, 142, 1, 0},
+{ 5, s_3_159, 142, 1, 0},
+{ 5, s_3_160, 142, 1, 0},
+{ 4, s_3_161, 142, 1, 0},
+{ 6, s_3_162, 161, 1, 0},
+{ 6, s_3_163, 161, 1, 0},
+{ 4, s_3_164, 142, 1, 0},
+{ 4, s_3_165, 142, 1, 0},
+{ 5, s_3_166, 165, 1, 0},
+{ 4, s_3_167, 142, 1, 0},
+{ 3, s_3_168, 142, 1, 0},
+{ 5, s_3_169, -1, 1, 0},
+{ 5, s_3_170, -1, 1, 0},
+{ 6, s_3_171, -1, 1, 0},
+{ 4, s_3_172, -1, 1, 0},
+{ 6, s_3_173, 172, 1, 0},
+{ 6, s_3_174, 172, 1, 0},
+{ 6, s_3_175, 172, 1, 0},
+{ 5, s_3_176, -1, 1, 0},
+{ 6, s_3_177, -1, 1, 0},
+{ 6, s_3_178, -1, 1, 0},
+{ 6, s_3_179, -1, 1, 0},
+{ 4, s_3_180, -1, 1, 0},
+{ 3, s_3_181, -1, 1, 0},
+{ 4, s_3_182, 181, 1, 0},
+{ 5, s_3_183, 181, 1, 0},
+{ 5, s_3_184, 181, 1, 0},
+{ 5, s_3_185, 181, 1, 0},
+{ 5, s_3_186, 181, 1, 0},
+{ 6, s_3_187, -1, 1, 0},
+{ 5, s_3_188, -1, 1, 0},
+{ 5, s_3_189, -1, 1, 0},
+{ 3, s_3_190, -1, 1, 0},
+{ 5, s_3_191, -1, 1, 0},
+{ 5, s_3_192, -1, 1, 0},
+{ 5, s_3_193, -1, 1, 0},
+{ 3, s_3_194, -1, 1, 0},
+{ 4, s_3_195, -1, 1, 0},
+{ 4, s_3_196, -1, 1, 0},
+{ 4, s_3_197, -1, 1, 0},
+{ 6, s_3_198, 197, 1, 0},
+{ 6, s_3_199, 197, 1, 0},
+{ 7, s_3_200, 197, 1, 0},
+{ 5, s_3_201, 197, 1, 0},
+{ 7, s_3_202, 201, 1, 0},
+{ 7, s_3_203, 201, 1, 0},
+{ 7, s_3_204, 201, 1, 0},
+{ 6, s_3_205, -1, 1, 0},
+{ 6, s_3_206, -1, 1, 0},
+{ 6, s_3_207, -1, 1, 0},
+{ 6, s_3_208, -1, 1, 0},
+{ 7, s_3_209, -1, 1, 0},
+{ 4, s_3_210, -1, 1, 0},
+{ 5, s_3_211, -1, 1, 0},
+{ 3, s_3_212, -1, 1, 0},
+{ 5, s_3_213, 212, 1, 0},
+{ 3, s_3_214, -1, 1, 0},
+{ 3, s_3_215, -1, 1, 0},
+{ 3, s_3_216, -1, 1, 0},
+{ 4, s_3_217, -1, 1, 0},
+{ 2, s_3_218, -1, 1, 0},
+{ 4, s_3_219, 218, 1, 0},
+{ 4, s_3_220, 218, 1, 0},
+{ 4, s_3_221, -1, 1, 0},
+{ 4, s_3_222, -1, 1, 0},
+{ 4, s_3_223, -1, 1, 0},
+{ 2, s_3_224, -1, 1, 0},
+{ 4, s_3_225, 224, 1, 0},
+{ 2, s_3_226, -1, 1, 0},
+{ 3, s_3_227, -1, 1, 0},
+{ 2, s_3_228, -1, 1, 0},
+{ 2, s_3_229, -1, 1, 0},
+{ 3, s_3_230, -1, 1, 0},
+{ 3, s_3_231, -1, 1, 0},
+{ 3, s_3_232, -1, 1, 0},
+{ 2, s_3_233, -1, 1, 0},
+{ 2, s_3_234, -1, 1, 0},
+{ 2, s_3_235, -1, 1, 0},
+{ 4, s_3_236, 235, 1, 0},
+{ 3, s_3_237, -1, 1, 0},
+{ 4, s_3_238, -1, 1, 0},
+{ 4, s_3_239, -1, 1, 0},
+{ 4, s_3_240, -1, 1, 0},
+{ 4, s_3_241, -1, 1, 0},
+{ 4, s_3_242, -1, 1, 0},
+{ 5, s_3_243, -1, 1, 0},
+{ 5, s_3_244, -1, 1, 0},
+{ 7, s_3_245, 244, 1, 0},
+{ 5, s_3_246, -1, 1, 0},
+{ 5, s_3_247, -1, 1, 0},
+{ 5, s_3_248, -1, 1, 0},
+{ 5, s_3_249, -1, 1, 0},
+{ 4, s_3_250, -1, 1, 0},
+{ 4, s_3_251, -1, 1, 0},
+{ 5, s_3_252, -1, 1, 0},
+{ 3, s_3_253, -1, 1, 0},
+{ 5, s_3_254, 253, 1, 0},
+{ 3, s_3_255, -1, 1, 0},
+{ 5, s_3_256, 255, 1, 0},
+{ 5, s_3_257, 255, 1, 0},
+{ 5, s_3_258, -1, 1, 0},
+{ 5, s_3_259, -1, 1, 0},
+{ 5, s_3_260, -1, 1, 0},
+{ 5, s_3_261, -1, 1, 0},
+{ 5, s_3_262, -1, 1, 0},
+{ 5, s_3_263, -1, 1, 0},
+{ 2, s_3_264, -1, 1, 0},
+{ 2, s_3_265, -1, 1, 0},
+{ 3, s_3_266, 265, 1, 0},
+{ 2, s_3_267, -1, 1, 0},
+{ 3, s_3_268, -1, 1, 0},
+{ 2, s_3_269, -1, 1, 0},
+{ 3, s_3_270, -1, 1, 0},
+{ 3, s_3_271, -1, 1, 0},
+{ 4, s_3_272, -1, 1, 0},
+{ 3, s_3_273, -1, 1, 0},
+{ 3, s_3_274, -1, 1, 0},
+{ 3, s_3_275, -1, 1, 0},
+{ 3, s_3_276, -1, 1, 0},
+{ 3, s_3_277, -1, 1, 0},
+{ 3, s_3_278, -1, 1, 0},
+{ 3, s_3_279, -1, 1, 0},
+{ 1, s_3_280, -1, 1, 0},
+{ 2, s_3_281, -1, 1, 0},
+{ 2, s_3_282, -1, 1, 0}
+};
+
+static const symbol s_4_0[1] = { 'a' };
+static const symbol s_4_1[1] = { 'e' };
+static const symbol s_4_2[1] = { 'i' };
+static const symbol s_4_3[2] = { 0xEF, 'n' };
+static const symbol s_4_4[1] = { 'o' };
+static const symbol s_4_5[2] = { 'i', 'r' };
+static const symbol s_4_6[1] = { 's' };
+static const symbol s_4_7[2] = { 'i', 's' };
+static const symbol s_4_8[2] = { 'o', 's' };
+static const symbol s_4_9[2] = { 0xEF, 's' };
+static const symbol s_4_10[2] = { 'i', 't' };
+static const symbol s_4_11[2] = { 'e', 'u' };
+static const symbol s_4_12[2] = { 'i', 'u' };
+static const symbol s_4_13[3] = { 'i', 'q', 'u' };
+static const symbol s_4_14[3] = { 'i', 't', 'z' };
+static const symbol s_4_15[1] = { 0xE0 };
+static const symbol s_4_16[1] = { 0xE1 };
+static const symbol s_4_17[1] = { 0xE9 };
+static const symbol s_4_18[1] = { 0xEC };
+static const symbol s_4_19[1] = { 0xED };
+static const symbol s_4_20[1] = { 0xEF };
+static const symbol s_4_21[1] = { 0xF3 };
+
+static const struct among a_4[22] =
+{
+{ 1, s_4_0, -1, 1, 0},
+{ 1, s_4_1, -1, 1, 0},
+{ 1, s_4_2, -1, 1, 0},
+{ 2, s_4_3, -1, 1, 0},
+{ 1, s_4_4, -1, 1, 0},
+{ 2, s_4_5, -1, 1, 0},
+{ 1, s_4_6, -1, 1, 0},
+{ 2, s_4_7, 6, 1, 0},
+{ 2, s_4_8, 6, 1, 0},
+{ 2, s_4_9, 6, 1, 0},
+{ 2, s_4_10, -1, 1, 0},
+{ 2, s_4_11, -1, 1, 0},
+{ 2, s_4_12, -1, 1, 0},
+{ 3, s_4_13, -1, 2, 0},
+{ 3, s_4_14, -1, 1, 0},
+{ 1, s_4_15, -1, 1, 0},
+{ 1, s_4_16, -1, 1, 0},
+{ 1, s_4_17, -1, 1, 0},
+{ 1, s_4_18, -1, 1, 0},
+{ 1, s_4_19, -1, 1, 0},
+{ 1, s_4_20, -1, 1, 0},
+{ 1, s_4_21, -1, 1, 0}
+};
+
+static const unsigned char g_v[] = { 17, 65, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 129, 81, 6, 10 };
+
+static const symbol s_0[] = { 'a' };
+static const symbol s_1[] = { 'e' };
+static const symbol s_2[] = { 'i' };
+static const symbol s_3[] = { 'o' };
+static const symbol s_4[] = { 'u' };
+static const symbol s_5[] = { '.' };
+static const symbol s_6[] = { 'l', 'o', 'g' };
+static const symbol s_7[] = { 'i', 'c' };
+static const symbol s_8[] = { 'c' };
+static const symbol s_9[] = { 'i', 'c' };
+
+static int r_mark_regions(struct SN_env * z) {
+ z->I[1] = z->l;
+ z->I[0] = z->l;
+ { int c1 = z->c;
+ {
+ int ret = out_grouping(z, g_v, 97, 252, 1);
+ if (ret < 0) goto lab0;
+ z->c += ret;
+ }
+ {
+ int ret = in_grouping(z, g_v, 97, 252, 1);
+ if (ret < 0) goto lab0;
+ z->c += ret;
+ }
+ z->I[1] = z->c;
+ {
+ int ret = out_grouping(z, g_v, 97, 252, 1);
+ if (ret < 0) goto lab0;
+ z->c += ret;
+ }
+ {
+ int ret = in_grouping(z, g_v, 97, 252, 1);
+ if (ret < 0) goto lab0;
+ z->c += ret;
+ }
+ z->I[0] = z->c;
+ lab0:
+ z->c = c1;
+ }
+ return 1;
+}
+
+static int r_cleaning(struct SN_env * z) {
+ int among_var;
+ while(1) {
+ int c1 = z->c;
+ z->bra = z->c;
+ among_var = find_among(z, a_0, 13);
+ if (!(among_var)) goto lab0;
+ z->ket = z->c;
+ switch (among_var) {
+ case 1:
+ { int ret = slice_from_s(z, 1, s_0);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 2:
+ { int ret = slice_from_s(z, 1, s_1);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 3:
+ { int ret = slice_from_s(z, 1, s_2);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 4:
+ { int ret = slice_from_s(z, 1, s_3);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 5:
+ { int ret = slice_from_s(z, 1, s_4);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 6:
+ { int ret = slice_from_s(z, 1, s_5);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 7:
+ if (z->c >= z->l) goto lab0;
+ z->c++;
+ break;
+ }
+ continue;
+ lab0:
+ z->c = c1;
+ break;
+ }
+ return 1;
+}
+
+static int r_R1(struct SN_env * z) {
+ if (!(z->I[1] <= z->c)) return 0;
+ return 1;
+}
+
+static int r_R2(struct SN_env * z) {
+ if (!(z->I[0] <= z->c)) return 0;
+ return 1;
+}
+
+static int r_attached_pronoun(struct SN_env * z) {
+ z->ket = z->c;
+ if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1634850 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
+ if (!(find_among_b(z, a_1, 39))) return 0;
+ z->bra = z->c;
+ { int ret = r_R1(z);
+ if (ret <= 0) return ret;
+ }
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ return 1;
+}
+
+static int r_standard_suffix(struct SN_env * z) {
+ int among_var;
+ z->ket = z->c;
+ among_var = find_among_b(z, a_2, 200);
+ if (!(among_var)) return 0;
+ z->bra = z->c;
+ switch (among_var) {
+ case 1:
+ { int ret = r_R1(z);
+ if (ret <= 0) return ret;
+ }
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 2:
+ { int ret = r_R2(z);
+ if (ret <= 0) return ret;
+ }
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 3:
+ { int ret = r_R2(z);
+ if (ret <= 0) return ret;
+ }
+ { int ret = slice_from_s(z, 3, s_6);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 4:
+ { int ret = r_R2(z);
+ if (ret <= 0) return ret;
+ }
+ { int ret = slice_from_s(z, 2, s_7);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 5:
+ { int ret = r_R1(z);
+ if (ret <= 0) return ret;
+ }
+ { int ret = slice_from_s(z, 1, s_8);
+ if (ret < 0) return ret;
+ }
+ break;
+ }
+ return 1;
+}
+
+static int r_verb_suffix(struct SN_env * z) {
+ int among_var;
+ z->ket = z->c;
+ among_var = find_among_b(z, a_3, 283);
+ if (!(among_var)) return 0;
+ z->bra = z->c;
+ switch (among_var) {
+ case 1:
+ { int ret = r_R1(z);
+ if (ret <= 0) return ret;
+ }
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 2:
+ { int ret = r_R2(z);
+ if (ret <= 0) return ret;
+ }
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ break;
+ }
+ return 1;
+}
+
+static int r_residual_suffix(struct SN_env * z) {
+ int among_var;
+ z->ket = z->c;
+ among_var = find_among_b(z, a_4, 22);
+ if (!(among_var)) return 0;
+ z->bra = z->c;
+ switch (among_var) {
+ case 1:
+ { int ret = r_R1(z);
+ if (ret <= 0) return ret;
+ }
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 2:
+ { int ret = r_R1(z);
+ if (ret <= 0) return ret;
+ }
+ { int ret = slice_from_s(z, 2, s_9);
+ if (ret < 0) return ret;
+ }
+ break;
+ }
+ return 1;
+}
+
+extern int catalan_ISO_8859_1_stem(struct SN_env * z) {
+
+ { int ret = r_mark_regions(z);
+ if (ret < 0) return ret;
+ }
+ z->lb = z->c; z->c = z->l;
+
+ { int m1 = z->l - z->c; (void)m1;
+ { int ret = r_attached_pronoun(z);
+ if (ret < 0) return ret;
+ }
+ z->c = z->l - m1;
+ }
+ { int m2 = z->l - z->c; (void)m2;
+ { int m3 = z->l - z->c; (void)m3;
+ { int ret = r_standard_suffix(z);
+ if (ret == 0) goto lab2;
+ if (ret < 0) return ret;
+ }
+ goto lab1;
+ lab2:
+ z->c = z->l - m3;
+ { int ret = r_verb_suffix(z);
+ if (ret == 0) goto lab0;
+ if (ret < 0) return ret;
+ }
+ }
+ lab1:
+ lab0:
+ z->c = z->l - m2;
+ }
+ { int m4 = z->l - z->c; (void)m4;
+ { int ret = r_residual_suffix(z);
+ if (ret < 0) return ret;
+ }
+ z->c = z->l - m4;
+ }
+ z->c = z->lb;
+ { int c5 = z->c;
+ { int ret = r_cleaning(z);
+ if (ret < 0) return ret;
+ }
+ z->c = c5;
+ }
+ return 1;
+}
+
+extern struct SN_env * catalan_ISO_8859_1_create_env(void) { return SN_create_env(0, 2); }
+
+extern void catalan_ISO_8859_1_close_env(struct SN_env * z) { SN_close_env(z, 0); }
+
diff --git a/src/backend/snowball/libstemmer/stem_ISO_8859_1_danish.c b/src/backend/snowball/libstemmer/stem_ISO_8859_1_danish.c
new file mode 100644
index 0000000..cb3df46
--- /dev/null
+++ b/src/backend/snowball/libstemmer/stem_ISO_8859_1_danish.c
@@ -0,0 +1,314 @@
+/* Generated by Snowball 2.2.0 - https://snowballstem.org/ */
+
+#include "header.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+extern int danish_ISO_8859_1_stem(struct SN_env * z);
+#ifdef __cplusplus
+}
+#endif
+static int r_undouble(struct SN_env * z);
+static int r_other_suffix(struct SN_env * z);
+static int r_consonant_pair(struct SN_env * z);
+static int r_main_suffix(struct SN_env * z);
+static int r_mark_regions(struct SN_env * z);
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+extern struct SN_env * danish_ISO_8859_1_create_env(void);
+extern void danish_ISO_8859_1_close_env(struct SN_env * z);
+
+
+#ifdef __cplusplus
+}
+#endif
+static const symbol s_0_0[3] = { 'h', 'e', 'd' };
+static const symbol s_0_1[5] = { 'e', 't', 'h', 'e', 'd' };
+static const symbol s_0_2[4] = { 'e', 'r', 'e', 'd' };
+static const symbol s_0_3[1] = { 'e' };
+static const symbol s_0_4[5] = { 'e', 'r', 'e', 'd', 'e' };
+static const symbol s_0_5[4] = { 'e', 'n', 'd', 'e' };
+static const symbol s_0_6[6] = { 'e', 'r', 'e', 'n', 'd', 'e' };
+static const symbol s_0_7[3] = { 'e', 'n', 'e' };
+static const symbol s_0_8[4] = { 'e', 'r', 'n', 'e' };
+static const symbol s_0_9[3] = { 'e', 'r', 'e' };
+static const symbol s_0_10[2] = { 'e', 'n' };
+static const symbol s_0_11[5] = { 'h', 'e', 'd', 'e', 'n' };
+static const symbol s_0_12[4] = { 'e', 'r', 'e', 'n' };
+static const symbol s_0_13[2] = { 'e', 'r' };
+static const symbol s_0_14[5] = { 'h', 'e', 'd', 'e', 'r' };
+static const symbol s_0_15[4] = { 'e', 'r', 'e', 'r' };
+static const symbol s_0_16[1] = { 's' };
+static const symbol s_0_17[4] = { 'h', 'e', 'd', 's' };
+static const symbol s_0_18[2] = { 'e', 's' };
+static const symbol s_0_19[5] = { 'e', 'n', 'd', 'e', 's' };
+static const symbol s_0_20[7] = { 'e', 'r', 'e', 'n', 'd', 'e', 's' };
+static const symbol s_0_21[4] = { 'e', 'n', 'e', 's' };
+static const symbol s_0_22[5] = { 'e', 'r', 'n', 'e', 's' };
+static const symbol s_0_23[4] = { 'e', 'r', 'e', 's' };
+static const symbol s_0_24[3] = { 'e', 'n', 's' };
+static const symbol s_0_25[6] = { 'h', 'e', 'd', 'e', 'n', 's' };
+static const symbol s_0_26[5] = { 'e', 'r', 'e', 'n', 's' };
+static const symbol s_0_27[3] = { 'e', 'r', 's' };
+static const symbol s_0_28[3] = { 'e', 't', 's' };
+static const symbol s_0_29[5] = { 'e', 'r', 'e', 't', 's' };
+static const symbol s_0_30[2] = { 'e', 't' };
+static const symbol s_0_31[4] = { 'e', 'r', 'e', 't' };
+
+static const struct among a_0[32] =
+{
+{ 3, s_0_0, -1, 1, 0},
+{ 5, s_0_1, 0, 1, 0},
+{ 4, s_0_2, -1, 1, 0},
+{ 1, s_0_3, -1, 1, 0},
+{ 5, s_0_4, 3, 1, 0},
+{ 4, s_0_5, 3, 1, 0},
+{ 6, s_0_6, 5, 1, 0},
+{ 3, s_0_7, 3, 1, 0},
+{ 4, s_0_8, 3, 1, 0},
+{ 3, s_0_9, 3, 1, 0},
+{ 2, s_0_10, -1, 1, 0},
+{ 5, s_0_11, 10, 1, 0},
+{ 4, s_0_12, 10, 1, 0},
+{ 2, s_0_13, -1, 1, 0},
+{ 5, s_0_14, 13, 1, 0},
+{ 4, s_0_15, 13, 1, 0},
+{ 1, s_0_16, -1, 2, 0},
+{ 4, s_0_17, 16, 1, 0},
+{ 2, s_0_18, 16, 1, 0},
+{ 5, s_0_19, 18, 1, 0},
+{ 7, s_0_20, 19, 1, 0},
+{ 4, s_0_21, 18, 1, 0},
+{ 5, s_0_22, 18, 1, 0},
+{ 4, s_0_23, 18, 1, 0},
+{ 3, s_0_24, 16, 1, 0},
+{ 6, s_0_25, 24, 1, 0},
+{ 5, s_0_26, 24, 1, 0},
+{ 3, s_0_27, 16, 1, 0},
+{ 3, s_0_28, 16, 1, 0},
+{ 5, s_0_29, 28, 1, 0},
+{ 2, s_0_30, -1, 1, 0},
+{ 4, s_0_31, 30, 1, 0}
+};
+
+static const symbol s_1_0[2] = { 'g', 'd' };
+static const symbol s_1_1[2] = { 'd', 't' };
+static const symbol s_1_2[2] = { 'g', 't' };
+static const symbol s_1_3[2] = { 'k', 't' };
+
+static const struct among a_1[4] =
+{
+{ 2, s_1_0, -1, -1, 0},
+{ 2, s_1_1, -1, -1, 0},
+{ 2, s_1_2, -1, -1, 0},
+{ 2, s_1_3, -1, -1, 0}
+};
+
+static const symbol s_2_0[2] = { 'i', 'g' };
+static const symbol s_2_1[3] = { 'l', 'i', 'g' };
+static const symbol s_2_2[4] = { 'e', 'l', 'i', 'g' };
+static const symbol s_2_3[3] = { 'e', 'l', 's' };
+static const symbol s_2_4[4] = { 'l', 0xF8, 's', 't' };
+
+static const struct among a_2[5] =
+{
+{ 2, s_2_0, -1, 1, 0},
+{ 3, s_2_1, 0, 1, 0},
+{ 4, s_2_2, 1, 1, 0},
+{ 3, s_2_3, -1, 1, 0},
+{ 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 };
+
+static const symbol s_0[] = { 's', 't' };
+static const symbol s_1[] = { 'i', 'g' };
+static const symbol s_2[] = { 'l', 0xF8, 's' };
+
+static int r_mark_regions(struct SN_env * z) {
+ z->I[1] = z->l;
+ { int c_test1 = z->c;
+z->c = z->c + 3;
+ if (z->c > z->l) return 0;
+ z->I[0] = z->c;
+ z->c = c_test1;
+ }
+ if (out_grouping(z, g_v, 97, 248, 1) < 0) return 0;
+ {
+ int ret = in_grouping(z, g_v, 97, 248, 1);
+ if (ret < 0) return 0;
+ z->c += ret;
+ }
+ z->I[1] = z->c;
+
+ if (!(z->I[1] < z->I[0])) goto lab0;
+ z->I[1] = z->I[0];
+lab0:
+ return 1;
+}
+
+static int r_main_suffix(struct SN_env * z) {
+ int among_var;
+
+ { int mlimit1;
+ if (z->c < z->I[1]) return 0;
+ mlimit1 = z->lb; z->lb = z->I[1];
+ z->ket = z->c;
+ 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; }
+ among_var = find_among_b(z, a_0, 32);
+ if (!(among_var)) { z->lb = mlimit1; return 0; }
+ z->bra = z->c;
+ z->lb = mlimit1;
+ }
+ switch (among_var) {
+ case 1:
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 2:
+ if (in_grouping_b(z, g_s_ending, 97, 229, 0)) return 0;
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ break;
+ }
+ return 1;
+}
+
+static int r_consonant_pair(struct SN_env * z) {
+ { int m_test1 = z->l - z->c;
+
+ { int mlimit2;
+ if (z->c < z->I[1]) return 0;
+ mlimit2 = z->lb; z->lb = z->I[1];
+ z->ket = z->c;
+ if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 100 && z->p[z->c - 1] != 116)) { z->lb = mlimit2; return 0; }
+ if (!(find_among_b(z, a_1, 4))) { z->lb = mlimit2; return 0; }
+ z->bra = z->c;
+ z->lb = mlimit2;
+ }
+ z->c = z->l - m_test1;
+ }
+ if (z->c <= z->lb) return 0;
+ z->c--;
+ z->bra = z->c;
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ return 1;
+}
+
+static int r_other_suffix(struct SN_env * z) {
+ int among_var;
+ { int m1 = z->l - z->c; (void)m1;
+ z->ket = z->c;
+ if (!(eq_s_b(z, 2, s_0))) goto lab0;
+ z->bra = z->c;
+ if (!(eq_s_b(z, 2, s_1))) goto lab0;
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ lab0:
+ z->c = z->l - m1;
+ }
+
+ { int mlimit2;
+ if (z->c < z->I[1]) return 0;
+ mlimit2 = z->lb; z->lb = z->I[1];
+ z->ket = z->c;
+ 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; }
+ among_var = find_among_b(z, a_2, 5);
+ if (!(among_var)) { z->lb = mlimit2; return 0; }
+ z->bra = z->c;
+ z->lb = mlimit2;
+ }
+ switch (among_var) {
+ case 1:
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ { int m3 = z->l - z->c; (void)m3;
+ { int ret = r_consonant_pair(z);
+ if (ret < 0) return ret;
+ }
+ z->c = z->l - m3;
+ }
+ break;
+ case 2:
+ { int ret = slice_from_s(z, 3, s_2);
+ if (ret < 0) return ret;
+ }
+ break;
+ }
+ return 1;
+}
+
+static int r_undouble(struct SN_env * z) {
+
+ { int mlimit1;
+ if (z->c < z->I[1]) return 0;
+ mlimit1 = z->lb; z->lb = z->I[1];
+ z->ket = z->c;
+ if (in_grouping_b(z, g_c, 98, 122, 0)) { z->lb = mlimit1; return 0; }
+ z->bra = z->c;
+ z->S[0] = slice_to(z, z->S[0]);
+ if (z->S[0] == 0) return -1;
+ z->lb = mlimit1;
+ }
+ if (!(eq_v_b(z, z->S[0]))) return 0;
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ return 1;
+}
+
+extern int danish_ISO_8859_1_stem(struct SN_env * z) {
+ { int c1 = z->c;
+ { int ret = r_mark_regions(z);
+ if (ret < 0) return ret;
+ }
+ z->c = c1;
+ }
+ z->lb = z->c; z->c = z->l;
+
+ { int m2 = z->l - z->c; (void)m2;
+ { int ret = r_main_suffix(z);
+ if (ret < 0) return ret;
+ }
+ z->c = z->l - m2;
+ }
+ { int m3 = z->l - z->c; (void)m3;
+ { int ret = r_consonant_pair(z);
+ if (ret < 0) return ret;
+ }
+ z->c = z->l - m3;
+ }
+ { int m4 = z->l - z->c; (void)m4;
+ { int ret = r_other_suffix(z);
+ if (ret < 0) return ret;
+ }
+ z->c = z->l - m4;
+ }
+ { int m5 = z->l - z->c; (void)m5;
+ { int ret = r_undouble(z);
+ if (ret < 0) return ret;
+ }
+ z->c = z->l - m5;
+ }
+ z->c = z->lb;
+ return 1;
+}
+
+extern struct SN_env * danish_ISO_8859_1_create_env(void) { return SN_create_env(1, 2); }
+
+extern void danish_ISO_8859_1_close_env(struct SN_env * z) { SN_close_env(z, 1); }
+
diff --git a/src/backend/snowball/libstemmer/stem_ISO_8859_1_dutch.c b/src/backend/snowball/libstemmer/stem_ISO_8859_1_dutch.c
new file mode 100644
index 0000000..efb8b60
--- /dev/null
+++ b/src/backend/snowball/libstemmer/stem_ISO_8859_1_dutch.c
@@ -0,0 +1,603 @@
+/* Generated by Snowball 2.2.0 - https://snowballstem.org/ */
+
+#include "header.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+extern int dutch_ISO_8859_1_stem(struct SN_env * z);
+#ifdef __cplusplus
+}
+#endif
+static int r_standard_suffix(struct SN_env * z);
+static int r_undouble(struct SN_env * z);
+static int r_R2(struct SN_env * z);
+static int r_R1(struct SN_env * z);
+static int r_mark_regions(struct SN_env * z);
+static int r_en_ending(struct SN_env * z);
+static int r_e_ending(struct SN_env * z);
+static int r_postlude(struct SN_env * z);
+static int r_prelude(struct SN_env * z);
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+extern struct SN_env * dutch_ISO_8859_1_create_env(void);
+extern void dutch_ISO_8859_1_close_env(struct SN_env * z);
+
+
+#ifdef __cplusplus
+}
+#endif
+static const symbol s_0_1[1] = { 0xE1 };
+static const symbol s_0_2[1] = { 0xE4 };
+static const symbol s_0_3[1] = { 0xE9 };
+static const symbol s_0_4[1] = { 0xEB };
+static const symbol s_0_5[1] = { 0xED };
+static const symbol s_0_6[1] = { 0xEF };
+static const symbol s_0_7[1] = { 0xF3 };
+static const symbol s_0_8[1] = { 0xF6 };
+static const symbol s_0_9[1] = { 0xFA };
+static const symbol s_0_10[1] = { 0xFC };
+
+static const struct among a_0[11] =
+{
+{ 0, 0, -1, 6, 0},
+{ 1, s_0_1, 0, 1, 0},
+{ 1, s_0_2, 0, 1, 0},
+{ 1, s_0_3, 0, 2, 0},
+{ 1, s_0_4, 0, 2, 0},
+{ 1, s_0_5, 0, 3, 0},
+{ 1, s_0_6, 0, 3, 0},
+{ 1, s_0_7, 0, 4, 0},
+{ 1, s_0_8, 0, 4, 0},
+{ 1, s_0_9, 0, 5, 0},
+{ 1, s_0_10, 0, 5, 0}
+};
+
+static const symbol s_1_1[1] = { 'I' };
+static const symbol s_1_2[1] = { 'Y' };
+
+static const struct among a_1[3] =
+{
+{ 0, 0, -1, 3, 0},
+{ 1, s_1_1, 0, 2, 0},
+{ 1, s_1_2, 0, 1, 0}
+};
+
+static const symbol s_2_0[2] = { 'd', 'd' };
+static const symbol s_2_1[2] = { 'k', 'k' };
+static const symbol s_2_2[2] = { 't', 't' };
+
+static const struct among a_2[3] =
+{
+{ 2, s_2_0, -1, -1, 0},
+{ 2, s_2_1, -1, -1, 0},
+{ 2, s_2_2, -1, -1, 0}
+};
+
+static const symbol s_3_0[3] = { 'e', 'n', 'e' };
+static const symbol s_3_1[2] = { 's', 'e' };
+static const symbol s_3_2[2] = { 'e', 'n' };
+static const symbol s_3_3[5] = { 'h', 'e', 'd', 'e', 'n' };
+static const symbol s_3_4[1] = { 's' };
+
+static const struct among a_3[5] =
+{
+{ 3, s_3_0, -1, 2, 0},
+{ 2, s_3_1, -1, 3, 0},
+{ 2, s_3_2, -1, 2, 0},
+{ 5, s_3_3, 2, 1, 0},
+{ 1, s_3_4, -1, 3, 0}
+};
+
+static const symbol s_4_0[3] = { 'e', 'n', 'd' };
+static const symbol s_4_1[2] = { 'i', 'g' };
+static const symbol s_4_2[3] = { 'i', 'n', 'g' };
+static const symbol s_4_3[4] = { 'l', 'i', 'j', 'k' };
+static const symbol s_4_4[4] = { 'b', 'a', 'a', 'r' };
+static const symbol s_4_5[3] = { 'b', 'a', 'r' };
+
+static const struct among a_4[6] =
+{
+{ 3, s_4_0, -1, 1, 0},
+{ 2, s_4_1, -1, 2, 0},
+{ 3, s_4_2, -1, 1, 0},
+{ 4, s_4_3, -1, 3, 0},
+{ 4, s_4_4, -1, 4, 0},
+{ 3, s_4_5, -1, 5, 0}
+};
+
+static const symbol s_5_0[2] = { 'a', 'a' };
+static const symbol s_5_1[2] = { 'e', 'e' };
+static const symbol s_5_2[2] = { 'o', 'o' };
+static const symbol s_5_3[2] = { 'u', 'u' };
+
+static const struct among a_5[4] =
+{
+{ 2, s_5_0, -1, -1, 0},
+{ 2, s_5_1, -1, -1, 0},
+{ 2, s_5_2, -1, -1, 0},
+{ 2, s_5_3, -1, -1, 0}
+};
+
+static const unsigned char g_v[] = { 17, 65, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128 };
+
+static const unsigned char g_v_I[] = { 1, 0, 0, 17, 65, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128 };
+
+static const unsigned char g_v_j[] = { 17, 67, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128 };
+
+static const symbol s_0[] = { 'a' };
+static const symbol s_1[] = { 'e' };
+static const symbol s_2[] = { 'i' };
+static const symbol s_3[] = { 'o' };
+static const symbol s_4[] = { 'u' };
+static const symbol s_5[] = { 'Y' };
+static const symbol s_6[] = { 'I' };
+static const symbol s_7[] = { 'Y' };
+static const symbol s_8[] = { 'y' };
+static const symbol s_9[] = { 'i' };
+static const symbol s_10[] = { 'g', 'e', 'm' };
+static const symbol s_11[] = { 'h', 'e', 'i', 'd' };
+static const symbol s_12[] = { 'h', 'e', 'i', 'd' };
+static const symbol s_13[] = { 'e', 'n' };
+static const symbol s_14[] = { 'i', 'g' };
+
+static int r_prelude(struct SN_env * z) {
+ int among_var;
+ { int c_test1 = z->c;
+ while(1) {
+ int c2 = z->c;
+ z->bra = z->c;
+ if (z->c >= z->l || z->p[z->c + 0] >> 5 != 7 || !((340306450 >> (z->p[z->c + 0] & 0x1f)) & 1)) among_var = 6; else
+ among_var = find_among(z, a_0, 11);
+ if (!(among_var)) goto lab0;
+ z->ket = z->c;
+ switch (among_var) {
+ case 1:
+ { int ret = slice_from_s(z, 1, s_0);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 2:
+ { int ret = slice_from_s(z, 1, s_1);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 3:
+ { int ret = slice_from_s(z, 1, s_2);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 4:
+ { int ret = slice_from_s(z, 1, s_3);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 5:
+ { int ret = slice_from_s(z, 1, s_4);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 6:
+ if (z->c >= z->l) goto lab0;
+ z->c++;
+ break;
+ }
+ continue;
+ lab0:
+ z->c = c2;
+ break;
+ }
+ z->c = c_test1;
+ }
+ { int c3 = z->c;
+ z->bra = z->c;
+ if (z->c == z->l || z->p[z->c] != 'y') { z->c = c3; goto lab1; }
+ z->c++;
+ z->ket = z->c;
+ { int ret = slice_from_s(z, 1, s_5);
+ if (ret < 0) return ret;
+ }
+ lab1:
+ ;
+ }
+ while(1) {
+ int c4 = z->c;
+ while(1) {
+ int c5 = z->c;
+ if (in_grouping(z, g_v, 97, 232, 0)) goto lab3;
+ z->bra = z->c;
+ { int c6 = z->c;
+ if (z->c == z->l || z->p[z->c] != 'i') goto lab5;
+ z->c++;
+ z->ket = z->c;
+ if (in_grouping(z, g_v, 97, 232, 0)) goto lab5;
+ { int ret = slice_from_s(z, 1, s_6);
+ if (ret < 0) return ret;
+ }
+ goto lab4;
+ lab5:
+ z->c = c6;
+ if (z->c == z->l || z->p[z->c] != 'y') goto lab3;
+ z->c++;
+ z->ket = z->c;
+ { int ret = slice_from_s(z, 1, s_7);
+ if (ret < 0) return ret;
+ }
+ }
+ lab4:
+ z->c = c5;
+ break;
+ lab3:
+ z->c = c5;
+ if (z->c >= z->l) goto lab2;
+ z->c++;
+ }
+ continue;
+ lab2:
+ z->c = c4;
+ break;
+ }
+ return 1;
+}
+
+static int r_mark_regions(struct SN_env * z) {
+ z->I[1] = z->l;
+ z->I[0] = z->l;
+ {
+ int ret = out_grouping(z, g_v, 97, 232, 1);
+ if (ret < 0) return 0;
+ z->c += ret;
+ }
+ {
+ int ret = in_grouping(z, g_v, 97, 232, 1);
+ if (ret < 0) return 0;
+ z->c += ret;
+ }
+ z->I[1] = z->c;
+
+ if (!(z->I[1] < 3)) goto lab0;
+ z->I[1] = 3;
+lab0:
+ {
+ int ret = out_grouping(z, g_v, 97, 232, 1);
+ if (ret < 0) return 0;
+ z->c += ret;
+ }
+ {
+ int ret = in_grouping(z, g_v, 97, 232, 1);
+ if (ret < 0) return 0;
+ z->c += ret;
+ }
+ z->I[0] = z->c;
+ return 1;
+}
+
+static int r_postlude(struct SN_env * z) {
+ int among_var;
+ while(1) {
+ int c1 = z->c;
+ z->bra = z->c;
+ if (z->c >= z->l || (z->p[z->c + 0] != 73 && z->p[z->c + 0] != 89)) among_var = 3; else
+ among_var = find_among(z, a_1, 3);
+ if (!(among_var)) goto lab0;
+ z->ket = z->c;
+ switch (among_var) {
+ case 1:
+ { int ret = slice_from_s(z, 1, s_8);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 2:
+ { int ret = slice_from_s(z, 1, s_9);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 3:
+ if (z->c >= z->l) goto lab0;
+ z->c++;
+ break;
+ }
+ continue;
+ lab0:
+ z->c = c1;
+ break;
+ }
+ return 1;
+}
+
+static int r_R1(struct SN_env * z) {
+ if (!(z->I[1] <= z->c)) return 0;
+ return 1;
+}
+
+static int r_R2(struct SN_env * z) {
+ if (!(z->I[0] <= z->c)) return 0;
+ return 1;
+}
+
+static int r_undouble(struct SN_env * z) {
+ { int m_test1 = z->l - z->c;
+ if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1050640 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
+ if (!(find_among_b(z, a_2, 3))) return 0;
+ z->c = z->l - m_test1;
+ }
+ z->ket = z->c;
+ if (z->c <= z->lb) return 0;
+ z->c--;
+ z->bra = z->c;
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ return 1;
+}
+
+static int r_e_ending(struct SN_env * z) {
+ z->I[2] = 0;
+ z->ket = z->c;
+ if (z->c <= z->lb || z->p[z->c - 1] != 'e') return 0;
+ z->c--;
+ z->bra = z->c;
+ { int ret = r_R1(z);
+ if (ret <= 0) return ret;
+ }
+ { int m_test1 = z->l - z->c;
+ if (out_grouping_b(z, g_v, 97, 232, 0)) return 0;
+ z->c = z->l - m_test1;
+ }
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ z->I[2] = 1;
+ { int ret = r_undouble(z);
+ if (ret <= 0) return ret;
+ }
+ return 1;
+}
+
+static int r_en_ending(struct SN_env * z) {
+ { int ret = r_R1(z);
+ if (ret <= 0) return ret;
+ }
+ { int m1 = z->l - z->c; (void)m1;
+ if (out_grouping_b(z, g_v, 97, 232, 0)) return 0;
+ z->c = z->l - m1;
+ { int m2 = z->l - z->c; (void)m2;
+ if (!(eq_s_b(z, 3, s_10))) goto lab0;
+ return 0;
+ lab0:
+ z->c = z->l - m2;
+ }
+ }
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ { int ret = r_undouble(z);
+ if (ret <= 0) return ret;
+ }
+ return 1;
+}
+
+static int r_standard_suffix(struct SN_env * z) {
+ int among_var;
+ { int m1 = z->l - z->c; (void)m1;
+ z->ket = z->c;
+ if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((540704 >> (z->p[z->c - 1] & 0x1f)) & 1)) goto lab0;
+ among_var = find_among_b(z, a_3, 5);
+ if (!(among_var)) goto lab0;
+ z->bra = z->c;
+ switch (among_var) {
+ case 1:
+ { int ret = r_R1(z);
+ if (ret == 0) goto lab0;
+ if (ret < 0) return ret;
+ }
+ { int ret = slice_from_s(z, 4, s_11);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 2:
+ { int ret = r_en_ending(z);
+ if (ret == 0) goto lab0;
+ if (ret < 0) return ret;
+ }
+ break;
+ case 3:
+ { int ret = r_R1(z);
+ if (ret == 0) goto lab0;
+ if (ret < 0) return ret;
+ }
+ if (out_grouping_b(z, g_v_j, 97, 232, 0)) goto lab0;
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ break;
+ }
+ lab0:
+ z->c = z->l - m1;
+ }
+ { int m2 = z->l - z->c; (void)m2;
+ { int ret = r_e_ending(z);
+ if (ret < 0) return ret;
+ }
+ z->c = z->l - m2;
+ }
+ { int m3 = z->l - z->c; (void)m3;
+ z->ket = z->c;
+ if (!(eq_s_b(z, 4, s_12))) goto lab1;
+ z->bra = z->c;
+ { int ret = r_R2(z);
+ if (ret == 0) goto lab1;
+ if (ret < 0) return ret;
+ }
+ { int m4 = z->l - z->c; (void)m4;
+ if (z->c <= z->lb || z->p[z->c - 1] != 'c') goto lab2;
+ z->c--;
+ goto lab1;
+ lab2:
+ z->c = z->l - m4;
+ }
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ z->ket = z->c;
+ if (!(eq_s_b(z, 2, s_13))) goto lab1;
+ z->bra = z->c;
+ { int ret = r_en_ending(z);
+ if (ret == 0) goto lab1;
+ if (ret < 0) return ret;
+ }
+ lab1:
+ z->c = z->l - m3;
+ }
+ { int m5 = z->l - z->c; (void)m5;
+ z->ket = z->c;
+ if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((264336 >> (z->p[z->c - 1] & 0x1f)) & 1)) goto lab3;
+ among_var = find_among_b(z, a_4, 6);
+ if (!(among_var)) goto lab3;
+ z->bra = z->c;
+ switch (among_var) {
+ case 1:
+ { int ret = r_R2(z);
+ if (ret == 0) goto lab3;
+ if (ret < 0) return ret;
+ }
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ { int m6 = z->l - z->c; (void)m6;
+ z->ket = z->c;
+ if (!(eq_s_b(z, 2, s_14))) goto lab5;
+ z->bra = z->c;
+ { int ret = r_R2(z);
+ if (ret == 0) goto lab5;
+ if (ret < 0) return ret;
+ }
+ { int m7 = z->l - z->c; (void)m7;
+ if (z->c <= z->lb || z->p[z->c - 1] != 'e') goto lab6;
+ z->c--;
+ goto lab5;
+ lab6:
+ z->c = z->l - m7;
+ }
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ goto lab4;
+ lab5:
+ z->c = z->l - m6;
+ { int ret = r_undouble(z);
+ if (ret == 0) goto lab3;
+ if (ret < 0) return ret;
+ }
+ }
+ lab4:
+ break;
+ case 2:
+ { int ret = r_R2(z);
+ if (ret == 0) goto lab3;
+ if (ret < 0) return ret;
+ }
+ { int m8 = z->l - z->c; (void)m8;
+ if (z->c <= z->lb || z->p[z->c - 1] != 'e') goto lab7;
+ z->c--;
+ goto lab3;
+ lab7:
+ z->c = z->l - m8;
+ }
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 3:
+ { int ret = r_R2(z);
+ if (ret == 0) goto lab3;
+ if (ret < 0) return ret;
+ }
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ { int ret = r_e_ending(z);
+ if (ret == 0) goto lab3;
+ if (ret < 0) return ret;
+ }
+ break;
+ case 4:
+ { int ret = r_R2(z);
+ if (ret == 0) goto lab3;
+ if (ret < 0) return ret;
+ }
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 5:
+ { int ret = r_R2(z);
+ if (ret == 0) goto lab3;
+ if (ret < 0) return ret;
+ }
+ if (!(z->I[2])) goto lab3;
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ break;
+ }
+ lab3:
+ z->c = z->l - m5;
+ }
+ { int m9 = z->l - z->c; (void)m9;
+ if (out_grouping_b(z, g_v_I, 73, 232, 0)) goto lab8;
+ { int m_test10 = z->l - z->c;
+ if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((2129954 >> (z->p[z->c - 1] & 0x1f)) & 1)) goto lab8;
+ if (!(find_among_b(z, a_5, 4))) goto lab8;
+ if (out_grouping_b(z, g_v, 97, 232, 0)) goto lab8;
+ z->c = z->l - m_test10;
+ }
+ z->ket = z->c;
+ if (z->c <= z->lb) goto lab8;
+ z->c--;
+ z->bra = z->c;
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ lab8:
+ z->c = z->l - m9;
+ }
+ return 1;
+}
+
+extern int dutch_ISO_8859_1_stem(struct SN_env * z) {
+ { int c1 = z->c;
+ { int ret = r_prelude(z);
+ if (ret < 0) return ret;
+ }
+ z->c = c1;
+ }
+ { int c2 = z->c;
+ { int ret = r_mark_regions(z);
+ if (ret < 0) return ret;
+ }
+ z->c = c2;
+ }
+ z->lb = z->c; z->c = z->l;
+
+
+ { int ret = r_standard_suffix(z);
+ if (ret < 0) return ret;
+ }
+ z->c = z->lb;
+ { int c3 = z->c;
+ { int ret = r_postlude(z);
+ if (ret < 0) return ret;
+ }
+ z->c = c3;
+ }
+ return 1;
+}
+
+extern struct SN_env * dutch_ISO_8859_1_create_env(void) { return SN_create_env(0, 3); }
+
+extern void dutch_ISO_8859_1_close_env(struct SN_env * z) { SN_close_env(z, 0); }
+
diff --git a/src/backend/snowball/libstemmer/stem_ISO_8859_1_english.c b/src/backend/snowball/libstemmer/stem_ISO_8859_1_english.c
new file mode 100644
index 0000000..eac624e
--- /dev/null
+++ b/src/backend/snowball/libstemmer/stem_ISO_8859_1_english.c
@@ -0,0 +1,1062 @@
+/* Generated by Snowball 2.2.0 - https://snowballstem.org/ */
+
+#include "header.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+extern int english_ISO_8859_1_stem(struct SN_env * z);
+#ifdef __cplusplus
+}
+#endif
+static int r_exception2(struct SN_env * z);
+static int r_exception1(struct SN_env * z);
+static int r_Step_5(struct SN_env * z);
+static int r_Step_4(struct SN_env * z);
+static int r_Step_3(struct SN_env * z);
+static int r_Step_2(struct SN_env * z);
+static int r_Step_1c(struct SN_env * z);
+static int r_Step_1b(struct SN_env * z);
+static int r_Step_1a(struct SN_env * z);
+static int r_R2(struct SN_env * z);
+static int r_R1(struct SN_env * z);
+static int r_shortv(struct SN_env * z);
+static int r_mark_regions(struct SN_env * z);
+static int r_postlude(struct SN_env * z);
+static int r_prelude(struct SN_env * z);
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+extern struct SN_env * english_ISO_8859_1_create_env(void);
+extern void english_ISO_8859_1_close_env(struct SN_env * z);
+
+
+#ifdef __cplusplus
+}
+#endif
+static const symbol s_0_0[5] = { 'a', 'r', 's', 'e', 'n' };
+static const symbol s_0_1[6] = { 'c', 'o', 'm', 'm', 'u', 'n' };
+static const symbol s_0_2[5] = { 'g', 'e', 'n', 'e', 'r' };
+
+static const struct among a_0[3] =
+{
+{ 5, s_0_0, -1, -1, 0},
+{ 6, s_0_1, -1, -1, 0},
+{ 5, s_0_2, -1, -1, 0}
+};
+
+static const symbol s_1_0[1] = { '\'' };
+static const symbol s_1_1[3] = { '\'', 's', '\'' };
+static const symbol s_1_2[2] = { '\'', 's' };
+
+static const struct among a_1[3] =
+{
+{ 1, s_1_0, -1, 1, 0},
+{ 3, s_1_1, 0, 1, 0},
+{ 2, s_1_2, -1, 1, 0}
+};
+
+static const symbol s_2_0[3] = { 'i', 'e', 'd' };
+static const symbol s_2_1[1] = { 's' };
+static const symbol s_2_2[3] = { 'i', 'e', 's' };
+static const symbol s_2_3[4] = { 's', 's', 'e', 's' };
+static const symbol s_2_4[2] = { 's', 's' };
+static const symbol s_2_5[2] = { 'u', 's' };
+
+static const struct among a_2[6] =
+{
+{ 3, s_2_0, -1, 2, 0},
+{ 1, s_2_1, -1, 3, 0},
+{ 3, s_2_2, 1, 2, 0},
+{ 4, s_2_3, 1, 1, 0},
+{ 2, s_2_4, 1, -1, 0},
+{ 2, s_2_5, 1, -1, 0}
+};
+
+static const symbol s_3_1[2] = { 'b', 'b' };
+static const symbol s_3_2[2] = { 'd', 'd' };
+static const symbol s_3_3[2] = { 'f', 'f' };
+static const symbol s_3_4[2] = { 'g', 'g' };
+static const symbol s_3_5[2] = { 'b', 'l' };
+static const symbol s_3_6[2] = { 'm', 'm' };
+static const symbol s_3_7[2] = { 'n', 'n' };
+static const symbol s_3_8[2] = { 'p', 'p' };
+static const symbol s_3_9[2] = { 'r', 'r' };
+static const symbol s_3_10[2] = { 'a', 't' };
+static const symbol s_3_11[2] = { 't', 't' };
+static const symbol s_3_12[2] = { 'i', 'z' };
+
+static const struct among a_3[13] =
+{
+{ 0, 0, -1, 3, 0},
+{ 2, s_3_1, 0, 2, 0},
+{ 2, s_3_2, 0, 2, 0},
+{ 2, s_3_3, 0, 2, 0},
+{ 2, s_3_4, 0, 2, 0},
+{ 2, s_3_5, 0, 1, 0},
+{ 2, s_3_6, 0, 2, 0},
+{ 2, s_3_7, 0, 2, 0},
+{ 2, s_3_8, 0, 2, 0},
+{ 2, s_3_9, 0, 2, 0},
+{ 2, s_3_10, 0, 1, 0},
+{ 2, s_3_11, 0, 2, 0},
+{ 2, s_3_12, 0, 1, 0}
+};
+
+static const symbol s_4_0[2] = { 'e', 'd' };
+static const symbol s_4_1[3] = { 'e', 'e', 'd' };
+static const symbol s_4_2[3] = { 'i', 'n', 'g' };
+static const symbol s_4_3[4] = { 'e', 'd', 'l', 'y' };
+static const symbol s_4_4[5] = { 'e', 'e', 'd', 'l', 'y' };
+static const symbol s_4_5[5] = { 'i', 'n', 'g', 'l', 'y' };
+
+static const struct among a_4[6] =
+{
+{ 2, s_4_0, -1, 2, 0},
+{ 3, s_4_1, 0, 1, 0},
+{ 3, s_4_2, -1, 2, 0},
+{ 4, s_4_3, -1, 2, 0},
+{ 5, s_4_4, 3, 1, 0},
+{ 5, s_4_5, -1, 2, 0}
+};
+
+static const symbol s_5_0[4] = { 'a', 'n', 'c', 'i' };
+static const symbol s_5_1[4] = { 'e', 'n', 'c', 'i' };
+static const symbol s_5_2[3] = { 'o', 'g', 'i' };
+static const symbol s_5_3[2] = { 'l', 'i' };
+static const symbol s_5_4[3] = { 'b', 'l', 'i' };
+static const symbol s_5_5[4] = { 'a', 'b', 'l', 'i' };
+static const symbol s_5_6[4] = { 'a', 'l', 'l', 'i' };
+static const symbol s_5_7[5] = { 'f', 'u', 'l', 'l', 'i' };
+static const symbol s_5_8[6] = { 'l', 'e', 's', 's', 'l', 'i' };
+static const symbol s_5_9[5] = { 'o', 'u', 's', 'l', 'i' };
+static const symbol s_5_10[5] = { 'e', 'n', 't', 'l', 'i' };
+static const symbol s_5_11[5] = { 'a', 'l', 'i', 't', 'i' };
+static const symbol s_5_12[6] = { 'b', 'i', 'l', 'i', 't', 'i' };
+static const symbol s_5_13[5] = { 'i', 'v', 'i', 't', 'i' };
+static const symbol s_5_14[6] = { 't', 'i', 'o', 'n', 'a', 'l' };
+static const symbol s_5_15[7] = { 'a', 't', 'i', 'o', 'n', 'a', 'l' };
+static const symbol s_5_16[5] = { 'a', 'l', 'i', 's', 'm' };
+static const symbol s_5_17[5] = { 'a', 't', 'i', 'o', 'n' };
+static const symbol s_5_18[7] = { 'i', 'z', 'a', 't', 'i', 'o', 'n' };
+static const symbol s_5_19[4] = { 'i', 'z', 'e', 'r' };
+static const symbol s_5_20[4] = { 'a', 't', 'o', 'r' };
+static const symbol s_5_21[7] = { 'i', 'v', 'e', 'n', 'e', 's', 's' };
+static const symbol s_5_22[7] = { 'f', 'u', 'l', 'n', 'e', 's', 's' };
+static const symbol s_5_23[7] = { 'o', 'u', 's', 'n', 'e', 's', 's' };
+
+static const struct among a_5[24] =
+{
+{ 4, s_5_0, -1, 3, 0},
+{ 4, s_5_1, -1, 2, 0},
+{ 3, s_5_2, -1, 13, 0},
+{ 2, s_5_3, -1, 15, 0},
+{ 3, s_5_4, 3, 12, 0},
+{ 4, s_5_5, 4, 4, 0},
+{ 4, s_5_6, 3, 8, 0},
+{ 5, s_5_7, 3, 9, 0},
+{ 6, s_5_8, 3, 14, 0},
+{ 5, s_5_9, 3, 10, 0},
+{ 5, s_5_10, 3, 5, 0},
+{ 5, s_5_11, -1, 8, 0},
+{ 6, s_5_12, -1, 12, 0},
+{ 5, s_5_13, -1, 11, 0},
+{ 6, s_5_14, -1, 1, 0},
+{ 7, s_5_15, 14, 7, 0},
+{ 5, s_5_16, -1, 8, 0},
+{ 5, s_5_17, -1, 7, 0},
+{ 7, s_5_18, 17, 6, 0},
+{ 4, s_5_19, -1, 6, 0},
+{ 4, s_5_20, -1, 7, 0},
+{ 7, s_5_21, -1, 11, 0},
+{ 7, s_5_22, -1, 9, 0},
+{ 7, s_5_23, -1, 10, 0}
+};
+
+static const symbol s_6_0[5] = { 'i', 'c', 'a', 't', 'e' };
+static const symbol s_6_1[5] = { 'a', 't', 'i', 'v', 'e' };
+static const symbol s_6_2[5] = { 'a', 'l', 'i', 'z', 'e' };
+static const symbol s_6_3[5] = { 'i', 'c', 'i', 't', 'i' };
+static const symbol s_6_4[4] = { 'i', 'c', 'a', 'l' };
+static const symbol s_6_5[6] = { 't', 'i', 'o', 'n', 'a', 'l' };
+static const symbol s_6_6[7] = { 'a', 't', 'i', 'o', 'n', 'a', 'l' };
+static const symbol s_6_7[3] = { 'f', 'u', 'l' };
+static const symbol s_6_8[4] = { 'n', 'e', 's', 's' };
+
+static const struct among a_6[9] =
+{
+{ 5, s_6_0, -1, 4, 0},
+{ 5, s_6_1, -1, 6, 0},
+{ 5, s_6_2, -1, 3, 0},
+{ 5, s_6_3, -1, 4, 0},
+{ 4, s_6_4, -1, 4, 0},
+{ 6, s_6_5, -1, 1, 0},
+{ 7, s_6_6, 5, 2, 0},
+{ 3, s_6_7, -1, 5, 0},
+{ 4, s_6_8, -1, 5, 0}
+};
+
+static const symbol s_7_0[2] = { 'i', 'c' };
+static const symbol s_7_1[4] = { 'a', 'n', 'c', 'e' };
+static const symbol s_7_2[4] = { 'e', 'n', 'c', 'e' };
+static const symbol s_7_3[4] = { 'a', 'b', 'l', 'e' };
+static const symbol s_7_4[4] = { 'i', 'b', 'l', 'e' };
+static const symbol s_7_5[3] = { 'a', 't', 'e' };
+static const symbol s_7_6[3] = { 'i', 'v', 'e' };
+static const symbol s_7_7[3] = { 'i', 'z', 'e' };
+static const symbol s_7_8[3] = { 'i', 't', 'i' };
+static const symbol s_7_9[2] = { 'a', 'l' };
+static const symbol s_7_10[3] = { 'i', 's', 'm' };
+static const symbol s_7_11[3] = { 'i', 'o', 'n' };
+static const symbol s_7_12[2] = { 'e', 'r' };
+static const symbol s_7_13[3] = { 'o', 'u', 's' };
+static const symbol s_7_14[3] = { 'a', 'n', 't' };
+static const symbol s_7_15[3] = { 'e', 'n', 't' };
+static const symbol s_7_16[4] = { 'm', 'e', 'n', 't' };
+static const symbol s_7_17[5] = { 'e', 'm', 'e', 'n', 't' };
+
+static const struct among a_7[18] =
+{
+{ 2, s_7_0, -1, 1, 0},
+{ 4, s_7_1, -1, 1, 0},
+{ 4, s_7_2, -1, 1, 0},
+{ 4, s_7_3, -1, 1, 0},
+{ 4, s_7_4, -1, 1, 0},
+{ 3, s_7_5, -1, 1, 0},
+{ 3, s_7_6, -1, 1, 0},
+{ 3, s_7_7, -1, 1, 0},
+{ 3, s_7_8, -1, 1, 0},
+{ 2, s_7_9, -1, 1, 0},
+{ 3, s_7_10, -1, 1, 0},
+{ 3, s_7_11, -1, 2, 0},
+{ 2, s_7_12, -1, 1, 0},
+{ 3, s_7_13, -1, 1, 0},
+{ 3, s_7_14, -1, 1, 0},
+{ 3, s_7_15, -1, 1, 0},
+{ 4, s_7_16, 15, 1, 0},
+{ 5, s_7_17, 16, 1, 0}
+};
+
+static const symbol s_8_0[1] = { 'e' };
+static const symbol s_8_1[1] = { 'l' };
+
+static const struct among a_8[2] =
+{
+{ 1, s_8_0, -1, 1, 0},
+{ 1, s_8_1, -1, 2, 0}
+};
+
+static const symbol s_9_0[7] = { 's', 'u', 'c', 'c', 'e', 'e', 'd' };
+static const symbol s_9_1[7] = { 'p', 'r', 'o', 'c', 'e', 'e', 'd' };
+static const symbol s_9_2[6] = { 'e', 'x', 'c', 'e', 'e', 'd' };
+static const symbol s_9_3[7] = { 'c', 'a', 'n', 'n', 'i', 'n', 'g' };
+static const symbol s_9_4[6] = { 'i', 'n', 'n', 'i', 'n', 'g' };
+static const symbol s_9_5[7] = { 'e', 'a', 'r', 'r', 'i', 'n', 'g' };
+static const symbol s_9_6[7] = { 'h', 'e', 'r', 'r', 'i', 'n', 'g' };
+static const symbol s_9_7[6] = { 'o', 'u', 't', 'i', 'n', 'g' };
+
+static const struct among a_9[8] =
+{
+{ 7, s_9_0, -1, -1, 0},
+{ 7, s_9_1, -1, -1, 0},
+{ 6, s_9_2, -1, -1, 0},
+{ 7, s_9_3, -1, -1, 0},
+{ 6, s_9_4, -1, -1, 0},
+{ 7, s_9_5, -1, -1, 0},
+{ 7, s_9_6, -1, -1, 0},
+{ 6, s_9_7, -1, -1, 0}
+};
+
+static const symbol s_10_0[5] = { 'a', 'n', 'd', 'e', 's' };
+static const symbol s_10_1[5] = { 'a', 't', 'l', 'a', 's' };
+static const symbol s_10_2[4] = { 'b', 'i', 'a', 's' };
+static const symbol s_10_3[6] = { 'c', 'o', 's', 'm', 'o', 's' };
+static const symbol s_10_4[5] = { 'd', 'y', 'i', 'n', 'g' };
+static const symbol s_10_5[5] = { 'e', 'a', 'r', 'l', 'y' };
+static const symbol s_10_6[6] = { 'g', 'e', 'n', 't', 'l', 'y' };
+static const symbol s_10_7[4] = { 'h', 'o', 'w', 'e' };
+static const symbol s_10_8[4] = { 'i', 'd', 'l', 'y' };
+static const symbol s_10_9[5] = { 'l', 'y', 'i', 'n', 'g' };
+static const symbol s_10_10[4] = { 'n', 'e', 'w', 's' };
+static const symbol s_10_11[4] = { 'o', 'n', 'l', 'y' };
+static const symbol s_10_12[6] = { 's', 'i', 'n', 'g', 'l', 'y' };
+static const symbol s_10_13[5] = { 's', 'k', 'i', 'e', 's' };
+static const symbol s_10_14[4] = { 's', 'k', 'i', 's' };
+static const symbol s_10_15[3] = { 's', 'k', 'y' };
+static const symbol s_10_16[5] = { 't', 'y', 'i', 'n', 'g' };
+static const symbol s_10_17[4] = { 'u', 'g', 'l', 'y' };
+
+static const struct among a_10[18] =
+{
+{ 5, s_10_0, -1, -1, 0},
+{ 5, s_10_1, -1, -1, 0},
+{ 4, s_10_2, -1, -1, 0},
+{ 6, s_10_3, -1, -1, 0},
+{ 5, s_10_4, -1, 3, 0},
+{ 5, s_10_5, -1, 9, 0},
+{ 6, s_10_6, -1, 7, 0},
+{ 4, s_10_7, -1, -1, 0},
+{ 4, s_10_8, -1, 6, 0},
+{ 5, s_10_9, -1, 4, 0},
+{ 4, s_10_10, -1, -1, 0},
+{ 4, s_10_11, -1, 10, 0},
+{ 6, s_10_12, -1, 11, 0},
+{ 5, s_10_13, -1, 2, 0},
+{ 4, s_10_14, -1, 1, 0},
+{ 3, s_10_15, -1, -1, 0},
+{ 5, s_10_16, -1, 5, 0},
+{ 4, s_10_17, -1, 8, 0}
+};
+
+static const unsigned char g_v[] = { 17, 65, 16, 1 };
+
+static const unsigned char g_v_WXY[] = { 1, 17, 65, 208, 1 };
+
+static const unsigned char g_valid_LI[] = { 55, 141, 2 };
+
+static const symbol s_0[] = { 'Y' };
+static const symbol s_1[] = { 'Y' };
+static const symbol s_2[] = { 's', 's' };
+static const symbol s_3[] = { 'i' };
+static const symbol s_4[] = { 'i', 'e' };
+static const symbol s_5[] = { 'e', 'e' };
+static const symbol s_6[] = { 'e' };
+static const symbol s_7[] = { 'e' };
+static const symbol s_8[] = { 'i' };
+static const symbol s_9[] = { 't', 'i', 'o', 'n' };
+static const symbol s_10[] = { 'e', 'n', 'c', 'e' };
+static const symbol s_11[] = { 'a', 'n', 'c', 'e' };
+static const symbol s_12[] = { 'a', 'b', 'l', 'e' };
+static const symbol s_13[] = { 'e', 'n', 't' };
+static const symbol s_14[] = { 'i', 'z', 'e' };
+static const symbol s_15[] = { 'a', 't', 'e' };
+static const symbol s_16[] = { 'a', 'l' };
+static const symbol s_17[] = { 'f', 'u', 'l' };
+static const symbol s_18[] = { 'o', 'u', 's' };
+static const symbol s_19[] = { 'i', 'v', 'e' };
+static const symbol s_20[] = { 'b', 'l', 'e' };
+static const symbol s_21[] = { 'o', 'g' };
+static const symbol s_22[] = { 'l', 'e', 's', 's' };
+static const symbol s_23[] = { 't', 'i', 'o', 'n' };
+static const symbol s_24[] = { 'a', 't', 'e' };
+static const symbol s_25[] = { 'a', 'l' };
+static const symbol s_26[] = { 'i', 'c' };
+static const symbol s_27[] = { 's', 'k', 'i' };
+static const symbol s_28[] = { 's', 'k', 'y' };
+static const symbol s_29[] = { 'd', 'i', 'e' };
+static const symbol s_30[] = { 'l', 'i', 'e' };
+static const symbol s_31[] = { 't', 'i', 'e' };
+static const symbol s_32[] = { 'i', 'd', 'l' };
+static const symbol s_33[] = { 'g', 'e', 'n', 't', 'l' };
+static const symbol s_34[] = { 'u', 'g', 'l', 'i' };
+static const symbol s_35[] = { 'e', 'a', 'r', 'l', 'i' };
+static const symbol s_36[] = { 'o', 'n', 'l', 'i' };
+static const symbol s_37[] = { 's', 'i', 'n', 'g', 'l' };
+static const symbol s_38[] = { 'y' };
+
+static int r_prelude(struct SN_env * z) {
+ z->I[2] = 0;
+ { int c1 = z->c;
+ z->bra = z->c;
+ if (z->c == z->l || z->p[z->c] != '\'') goto lab0;
+ z->c++;
+ z->ket = z->c;
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ lab0:
+ z->c = c1;
+ }
+ { int c2 = z->c;
+ z->bra = z->c;
+ if (z->c == z->l || z->p[z->c] != 'y') goto lab1;
+ z->c++;
+ z->ket = z->c;
+ { int ret = slice_from_s(z, 1, s_0);
+ if (ret < 0) return ret;
+ }
+ z->I[2] = 1;
+ lab1:
+ z->c = c2;
+ }
+ { int c3 = z->c;
+ while(1) {
+ int c4 = z->c;
+ while(1) {
+ int c5 = z->c;
+ if (in_grouping(z, g_v, 97, 121, 0)) goto lab4;
+ z->bra = z->c;
+ if (z->c == z->l || z->p[z->c] != 'y') goto lab4;
+ z->c++;
+ z->ket = z->c;
+ z->c = c5;
+ break;
+ lab4:
+ z->c = c5;
+ if (z->c >= z->l) goto lab3;
+ z->c++;
+ }
+ { int ret = slice_from_s(z, 1, s_1);
+ if (ret < 0) return ret;
+ }
+ z->I[2] = 1;
+ continue;
+ lab3:
+ z->c = c4;
+ break;
+ }
+ z->c = c3;
+ }
+ return 1;
+}
+
+static int r_mark_regions(struct SN_env * z) {
+ z->I[1] = z->l;
+ z->I[0] = z->l;
+ { int c1 = z->c;
+ { int c2 = z->c;
+ if (z->c + 4 >= z->l || z->p[z->c + 4] >> 5 != 3 || !((2375680 >> (z->p[z->c + 4] & 0x1f)) & 1)) goto lab2;
+ if (!(find_among(z, a_0, 3))) goto lab2;
+ goto lab1;
+ lab2:
+ z->c = c2;
+ {
+ int ret = out_grouping(z, g_v, 97, 121, 1);
+ if (ret < 0) goto lab0;
+ z->c += ret;
+ }
+ {
+ int ret = in_grouping(z, g_v, 97, 121, 1);
+ if (ret < 0) goto lab0;
+ z->c += ret;
+ }
+ }
+ lab1:
+ z->I[1] = z->c;
+ {
+ int ret = out_grouping(z, g_v, 97, 121, 1);
+ if (ret < 0) goto lab0;
+ z->c += ret;
+ }
+ {
+ int ret = in_grouping(z, g_v, 97, 121, 1);
+ if (ret < 0) goto lab0;
+ z->c += ret;
+ }
+ z->I[0] = z->c;
+ lab0:
+ z->c = c1;
+ }
+ return 1;
+}
+
+static int r_shortv(struct SN_env * z) {
+ { int m1 = z->l - z->c; (void)m1;
+ if (out_grouping_b(z, g_v_WXY, 89, 121, 0)) goto lab1;
+ if (in_grouping_b(z, g_v, 97, 121, 0)) goto lab1;
+ if (out_grouping_b(z, g_v, 97, 121, 0)) goto lab1;
+ goto lab0;
+ lab1:
+ z->c = z->l - m1;
+ if (out_grouping_b(z, g_v, 97, 121, 0)) return 0;
+ if (in_grouping_b(z, g_v, 97, 121, 0)) return 0;
+ if (z->c > z->lb) return 0;
+ }
+lab0:
+ return 1;
+}
+
+static int r_R1(struct SN_env * z) {
+ if (!(z->I[1] <= z->c)) return 0;
+ return 1;
+}
+
+static int r_R2(struct SN_env * z) {
+ if (!(z->I[0] <= z->c)) return 0;
+ return 1;
+}
+
+static int r_Step_1a(struct SN_env * z) {
+ int among_var;
+ { int m1 = z->l - z->c; (void)m1;
+ z->ket = z->c;
+ if (z->c <= z->lb || (z->p[z->c - 1] != 39 && z->p[z->c - 1] != 115)) { z->c = z->l - m1; goto lab0; }
+ if (!(find_among_b(z, a_1, 3))) { z->c = z->l - m1; goto lab0; }
+ z->bra = z->c;
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ lab0:
+ ;
+ }
+ z->ket = z->c;
+ if (z->c <= z->lb || (z->p[z->c - 1] != 100 && z->p[z->c - 1] != 115)) return 0;
+ among_var = find_among_b(z, a_2, 6);
+ if (!(among_var)) return 0;
+ z->bra = z->c;
+ switch (among_var) {
+ case 1:
+ { int ret = slice_from_s(z, 2, s_2);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 2:
+ { int m2 = z->l - z->c; (void)m2;
+z->c = z->c - 2;
+ if (z->c < z->lb) goto lab2;
+ { int ret = slice_from_s(z, 1, s_3);
+ if (ret < 0) return ret;
+ }
+ goto lab1;
+ lab2:
+ z->c = z->l - m2;
+ { int ret = slice_from_s(z, 2, s_4);
+ if (ret < 0) return ret;
+ }
+ }
+ lab1:
+ break;
+ case 3:
+ if (z->c <= z->lb) return 0;
+ z->c--;
+ {
+ int ret = out_grouping_b(z, g_v, 97, 121, 1);
+ if (ret < 0) return 0;
+ z->c -= ret;
+ }
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ break;
+ }
+ return 1;
+}
+
+static int r_Step_1b(struct SN_env * z) {
+ int among_var;
+ z->ket = z->c;
+ if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((33554576 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
+ among_var = find_among_b(z, a_4, 6);
+ if (!(among_var)) return 0;
+ z->bra = z->c;
+ switch (among_var) {
+ case 1:
+ { int ret = r_R1(z);
+ if (ret <= 0) return ret;
+ }
+ { int ret = slice_from_s(z, 2, s_5);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 2:
+ { int m_test1 = z->l - z->c;
+ {
+ int ret = out_grouping_b(z, g_v, 97, 121, 1);
+ if (ret < 0) return 0;
+ z->c -= ret;
+ }
+ z->c = z->l - m_test1;
+ }
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ { int m_test2 = z->l - z->c;
+ if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((68514004 >> (z->p[z->c - 1] & 0x1f)) & 1)) among_var = 3; else
+ among_var = find_among_b(z, a_3, 13);
+ if (!(among_var)) return 0;
+ z->c = z->l - m_test2;
+ }
+ switch (among_var) {
+ case 1:
+ { int ret;
+ { int saved_c = z->c;
+ ret = insert_s(z, z->c, z->c, 1, s_6);
+ z->c = saved_c;
+ }
+ if (ret < 0) return ret;
+ }
+ break;
+ case 2:
+ z->ket = z->c;
+ if (z->c <= z->lb) return 0;
+ z->c--;
+ z->bra = z->c;
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 3:
+ if (z->c != z->I[1]) return 0;
+ { int m_test3 = z->l - z->c;
+ { int ret = r_shortv(z);
+ if (ret <= 0) return ret;
+ }
+ z->c = z->l - m_test3;
+ }
+ { int ret;
+ { int saved_c = z->c;
+ ret = insert_s(z, z->c, z->c, 1, s_7);
+ z->c = saved_c;
+ }
+ if (ret < 0) return ret;
+ }
+ break;
+ }
+ break;
+ }
+ return 1;
+}
+
+static int r_Step_1c(struct SN_env * z) {
+ z->ket = z->c;
+ { int m1 = z->l - z->c; (void)m1;
+ if (z->c <= z->lb || z->p[z->c - 1] != 'y') goto lab1;
+ z->c--;
+ goto lab0;
+ lab1:
+ z->c = z->l - m1;
+ if (z->c <= z->lb || z->p[z->c - 1] != 'Y') return 0;
+ z->c--;
+ }
+lab0:
+ z->bra = z->c;
+ if (out_grouping_b(z, g_v, 97, 121, 0)) return 0;
+
+ if (z->c > z->lb) goto lab2;
+ return 0;
+lab2:
+ { int ret = slice_from_s(z, 1, s_8);
+ if (ret < 0) return ret;
+ }
+ return 1;
+}
+
+static int r_Step_2(struct SN_env * z) {
+ int among_var;
+ z->ket = z->c;
+ if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((815616 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
+ among_var = find_among_b(z, a_5, 24);
+ if (!(among_var)) return 0;
+ z->bra = z->c;
+ { int ret = r_R1(z);
+ if (ret <= 0) return ret;
+ }
+ switch (among_var) {
+ case 1:
+ { int ret = slice_from_s(z, 4, s_9);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 2:
+ { int ret = slice_from_s(z, 4, s_10);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 3:
+ { int ret = slice_from_s(z, 4, s_11);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 4:
+ { int ret = slice_from_s(z, 4, s_12);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 5:
+ { int ret = slice_from_s(z, 3, s_13);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 6:
+ { int ret = slice_from_s(z, 3, s_14);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 7:
+ { int ret = slice_from_s(z, 3, s_15);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 8:
+ { int ret = slice_from_s(z, 2, s_16);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 9:
+ { int ret = slice_from_s(z, 3, s_17);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 10:
+ { int ret = slice_from_s(z, 3, s_18);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 11:
+ { int ret = slice_from_s(z, 3, s_19);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 12:
+ { int ret = slice_from_s(z, 3, s_20);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 13:
+ if (z->c <= z->lb || z->p[z->c - 1] != 'l') return 0;
+ z->c--;
+ { int ret = slice_from_s(z, 2, s_21);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 14:
+ { int ret = slice_from_s(z, 4, s_22);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 15:
+ if (in_grouping_b(z, g_valid_LI, 99, 116, 0)) return 0;
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ break;
+ }
+ return 1;
+}
+
+static int r_Step_3(struct SN_env * z) {
+ int among_var;
+ z->ket = z->c;
+ if (z->c - 2 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((528928 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
+ among_var = find_among_b(z, a_6, 9);
+ if (!(among_var)) return 0;
+ z->bra = z->c;
+ { int ret = r_R1(z);
+ if (ret <= 0) return ret;
+ }
+ switch (among_var) {
+ case 1:
+ { int ret = slice_from_s(z, 4, s_23);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 2:
+ { int ret = slice_from_s(z, 3, s_24);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 3:
+ { int ret = slice_from_s(z, 2, s_25);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 4:
+ { int ret = slice_from_s(z, 2, s_26);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 5:
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 6:
+ { int ret = r_R2(z);
+ if (ret <= 0) return ret;
+ }
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ break;
+ }
+ return 1;
+}
+
+static int r_Step_4(struct SN_env * z) {
+ int among_var;
+ z->ket = z->c;
+ if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1864232 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
+ among_var = find_among_b(z, a_7, 18);
+ if (!(among_var)) return 0;
+ z->bra = z->c;
+ { int ret = r_R2(z);
+ if (ret <= 0) return ret;
+ }
+ switch (among_var) {
+ case 1:
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 2:
+ { int m1 = z->l - z->c; (void)m1;
+ if (z->c <= z->lb || z->p[z->c - 1] != 's') goto lab1;
+ z->c--;
+ goto lab0;
+ lab1:
+ z->c = z->l - m1;
+ if (z->c <= z->lb || z->p[z->c - 1] != 't') return 0;
+ z->c--;
+ }
+ lab0:
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ break;
+ }
+ return 1;
+}
+
+static int r_Step_5(struct SN_env * z) {
+ int among_var;
+ z->ket = z->c;
+ if (z->c <= z->lb || (z->p[z->c - 1] != 101 && z->p[z->c - 1] != 108)) return 0;
+ among_var = find_among_b(z, a_8, 2);
+ if (!(among_var)) return 0;
+ z->bra = z->c;
+ switch (among_var) {
+ case 1:
+ { int m1 = z->l - z->c; (void)m1;
+ { int ret = r_R2(z);
+ if (ret == 0) goto lab1;
+ if (ret < 0) return ret;
+ }
+ goto lab0;
+ lab1:
+ z->c = z->l - m1;
+ { int ret = r_R1(z);
+ if (ret <= 0) return ret;
+ }
+ { int m2 = z->l - z->c; (void)m2;
+ { int ret = r_shortv(z);
+ if (ret == 0) goto lab2;
+ if (ret < 0) return ret;
+ }
+ return 0;
+ lab2:
+ z->c = z->l - m2;
+ }
+ }
+ lab0:
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 2:
+ { int ret = r_R2(z);
+ if (ret <= 0) return ret;
+ }
+ if (z->c <= z->lb || z->p[z->c - 1] != 'l') return 0;
+ z->c--;
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ break;
+ }
+ return 1;
+}
+
+static int r_exception2(struct SN_env * z) {
+ z->ket = z->c;
+ if (z->c - 5 <= z->lb || (z->p[z->c - 1] != 100 && z->p[z->c - 1] != 103)) return 0;
+ if (!(find_among_b(z, a_9, 8))) return 0;
+ z->bra = z->c;
+ if (z->c > z->lb) return 0;
+ return 1;
+}
+
+static int r_exception1(struct SN_env * z) {
+ int among_var;
+ z->bra = z->c;
+ if (z->c + 2 >= z->l || z->p[z->c + 2] >> 5 != 3 || !((42750482 >> (z->p[z->c + 2] & 0x1f)) & 1)) return 0;
+ among_var = find_among(z, a_10, 18);
+ if (!(among_var)) return 0;
+ z->ket = z->c;
+ if (z->c < z->l) return 0;
+ switch (among_var) {
+ case 1:
+ { int ret = slice_from_s(z, 3, s_27);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 2:
+ { int ret = slice_from_s(z, 3, s_28);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 3:
+ { int ret = slice_from_s(z, 3, s_29);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 4:
+ { int ret = slice_from_s(z, 3, s_30);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 5:
+ { int ret = slice_from_s(z, 3, s_31);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 6:
+ { int ret = slice_from_s(z, 3, s_32);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 7:
+ { int ret = slice_from_s(z, 5, s_33);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 8:
+ { int ret = slice_from_s(z, 4, s_34);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 9:
+ { int ret = slice_from_s(z, 5, s_35);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 10:
+ { int ret = slice_from_s(z, 4, s_36);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 11:
+ { int ret = slice_from_s(z, 5, s_37);
+ if (ret < 0) return ret;
+ }
+ break;
+ }
+ return 1;
+}
+
+static int r_postlude(struct SN_env * z) {
+ if (!(z->I[2])) return 0;
+ while(1) {
+ int c1 = z->c;
+ while(1) {
+ int c2 = z->c;
+ z->bra = z->c;
+ if (z->c == z->l || z->p[z->c] != 'Y') goto lab1;
+ z->c++;
+ z->ket = z->c;
+ z->c = c2;
+ break;
+ lab1:
+ z->c = c2;
+ if (z->c >= z->l) goto lab0;
+ z->c++;
+ }
+ { int ret = slice_from_s(z, 1, s_38);
+ if (ret < 0) return ret;
+ }
+ continue;
+ lab0:
+ z->c = c1;
+ break;
+ }
+ return 1;
+}
+
+extern int english_ISO_8859_1_stem(struct SN_env * z) {
+ { int c1 = z->c;
+ { int ret = r_exception1(z);
+ if (ret == 0) goto lab1;
+ if (ret < 0) return ret;
+ }
+ goto lab0;
+ lab1:
+ z->c = c1;
+ { int c2 = z->c;
+z->c = z->c + 3;
+ if (z->c > z->l) goto lab3;
+ goto lab2;
+ lab3:
+ z->c = c2;
+ }
+ goto lab0;
+ lab2:
+ z->c = c1;
+
+ { int ret = r_prelude(z);
+ if (ret < 0) return ret;
+ }
+
+ { int ret = r_mark_regions(z);
+ if (ret < 0) return ret;
+ }
+ z->lb = z->c; z->c = z->l;
+
+ { int m3 = z->l - z->c; (void)m3;
+ { int ret = r_Step_1a(z);
+ if (ret < 0) return ret;
+ }
+ z->c = z->l - m3;
+ }
+ { int m4 = z->l - z->c; (void)m4;
+ { int ret = r_exception2(z);
+ if (ret == 0) goto lab5;
+ if (ret < 0) return ret;
+ }
+ goto lab4;
+ lab5:
+ z->c = z->l - m4;
+ { int m5 = z->l - z->c; (void)m5;
+ { int ret = r_Step_1b(z);
+ if (ret < 0) return ret;
+ }
+ z->c = z->l - m5;
+ }
+ { int m6 = z->l - z->c; (void)m6;
+ { int ret = r_Step_1c(z);
+ if (ret < 0) return ret;
+ }
+ z->c = z->l - m6;
+ }
+ { int m7 = z->l - z->c; (void)m7;
+ { int ret = r_Step_2(z);
+ if (ret < 0) return ret;
+ }
+ z->c = z->l - m7;
+ }
+ { int m8 = z->l - z->c; (void)m8;
+ { int ret = r_Step_3(z);
+ if (ret < 0) return ret;
+ }
+ z->c = z->l - m8;
+ }
+ { int m9 = z->l - z->c; (void)m9;
+ { int ret = r_Step_4(z);
+ if (ret < 0) return ret;
+ }
+ z->c = z->l - m9;
+ }
+ { int m10 = z->l - z->c; (void)m10;
+ { int ret = r_Step_5(z);
+ if (ret < 0) return ret;
+ }
+ z->c = z->l - m10;
+ }
+ }
+ lab4:
+ z->c = z->lb;
+ { int c11 = z->c;
+ { int ret = r_postlude(z);
+ if (ret < 0) return ret;
+ }
+ z->c = c11;
+ }
+ }
+lab0:
+ return 1;
+}
+
+extern struct SN_env * english_ISO_8859_1_create_env(void) { return SN_create_env(0, 3); }
+
+extern void english_ISO_8859_1_close_env(struct SN_env * z) { SN_close_env(z, 0); }
+
diff --git a/src/backend/snowball/libstemmer/stem_ISO_8859_1_finnish.c b/src/backend/snowball/libstemmer/stem_ISO_8859_1_finnish.c
new file mode 100644
index 0000000..7835bd1
--- /dev/null
+++ b/src/backend/snowball/libstemmer/stem_ISO_8859_1_finnish.c
@@ -0,0 +1,718 @@
+/* Generated by Snowball 2.2.0 - https://snowballstem.org/ */
+
+#include "header.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+extern int finnish_ISO_8859_1_stem(struct SN_env * z);
+#ifdef __cplusplus
+}
+#endif
+static int r_tidy(struct SN_env * z);
+static int r_other_endings(struct SN_env * z);
+static int r_t_plural(struct SN_env * z);
+static int r_i_plural(struct SN_env * z);
+static int r_case_ending(struct SN_env * z);
+static int r_VI(struct SN_env * z);
+static int r_LONG(struct SN_env * z);
+static int r_possessive(struct SN_env * z);
+static int r_particle_etc(struct SN_env * z);
+static int r_R2(struct SN_env * z);
+static int r_mark_regions(struct SN_env * z);
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+extern struct SN_env * finnish_ISO_8859_1_create_env(void);
+extern void finnish_ISO_8859_1_close_env(struct SN_env * z);
+
+
+#ifdef __cplusplus
+}
+#endif
+static const symbol s_0_0[2] = { 'p', 'a' };
+static const symbol s_0_1[3] = { 's', 't', 'i' };
+static const symbol s_0_2[4] = { 'k', 'a', 'a', 'n' };
+static const symbol s_0_3[3] = { 'h', 'a', 'n' };
+static const symbol s_0_4[3] = { 'k', 'i', 'n' };
+static const symbol s_0_5[3] = { 'h', 0xE4, 'n' };
+static const symbol s_0_6[4] = { 'k', 0xE4, 0xE4, 'n' };
+static const symbol s_0_7[2] = { 'k', 'o' };
+static const symbol s_0_8[2] = { 'p', 0xE4 };
+static const symbol s_0_9[2] = { 'k', 0xF6 };
+
+static const struct among a_0[10] =
+{
+{ 2, s_0_0, -1, 1, 0},
+{ 3, s_0_1, -1, 2, 0},
+{ 4, s_0_2, -1, 1, 0},
+{ 3, s_0_3, -1, 1, 0},
+{ 3, s_0_4, -1, 1, 0},
+{ 3, s_0_5, -1, 1, 0},
+{ 4, s_0_6, -1, 1, 0},
+{ 2, s_0_7, -1, 1, 0},
+{ 2, s_0_8, -1, 1, 0},
+{ 2, s_0_9, -1, 1, 0}
+};
+
+static const symbol s_1_0[3] = { 'l', 'l', 'a' };
+static const symbol s_1_1[2] = { 'n', 'a' };
+static const symbol s_1_2[3] = { 's', 's', 'a' };
+static const symbol s_1_3[2] = { 't', 'a' };
+static const symbol s_1_4[3] = { 'l', 't', 'a' };
+static const symbol s_1_5[3] = { 's', 't', 'a' };
+
+static const struct among a_1[6] =
+{
+{ 3, s_1_0, -1, -1, 0},
+{ 2, s_1_1, -1, -1, 0},
+{ 3, s_1_2, -1, -1, 0},
+{ 2, s_1_3, -1, -1, 0},
+{ 3, s_1_4, 3, -1, 0},
+{ 3, s_1_5, 3, -1, 0}
+};
+
+static const symbol s_2_0[3] = { 'l', 'l', 0xE4 };
+static const symbol s_2_1[2] = { 'n', 0xE4 };
+static const symbol s_2_2[3] = { 's', 's', 0xE4 };
+static const symbol s_2_3[2] = { 't', 0xE4 };
+static const symbol s_2_4[3] = { 'l', 't', 0xE4 };
+static const symbol s_2_5[3] = { 's', 't', 0xE4 };
+
+static const struct among a_2[6] =
+{
+{ 3, s_2_0, -1, -1, 0},
+{ 2, s_2_1, -1, -1, 0},
+{ 3, s_2_2, -1, -1, 0},
+{ 2, s_2_3, -1, -1, 0},
+{ 3, s_2_4, 3, -1, 0},
+{ 3, s_2_5, 3, -1, 0}
+};
+
+static const symbol s_3_0[3] = { 'l', 'l', 'e' };
+static const symbol s_3_1[3] = { 'i', 'n', 'e' };
+
+static const struct among a_3[2] =
+{
+{ 3, s_3_0, -1, -1, 0},
+{ 3, s_3_1, -1, -1, 0}
+};
+
+static const symbol s_4_0[3] = { 'n', 's', 'a' };
+static const symbol s_4_1[3] = { 'm', 'm', 'e' };
+static const symbol s_4_2[3] = { 'n', 'n', 'e' };
+static const symbol s_4_3[2] = { 'n', 'i' };
+static const symbol s_4_4[2] = { 's', 'i' };
+static const symbol s_4_5[2] = { 'a', 'n' };
+static const symbol s_4_6[2] = { 'e', 'n' };
+static const symbol s_4_7[2] = { 0xE4, 'n' };
+static const symbol s_4_8[3] = { 'n', 's', 0xE4 };
+
+static const struct among a_4[9] =
+{
+{ 3, s_4_0, -1, 3, 0},
+{ 3, s_4_1, -1, 3, 0},
+{ 3, s_4_2, -1, 3, 0},
+{ 2, s_4_3, -1, 2, 0},
+{ 2, s_4_4, -1, 1, 0},
+{ 2, s_4_5, -1, 4, 0},
+{ 2, s_4_6, -1, 6, 0},
+{ 2, s_4_7, -1, 5, 0},
+{ 3, s_4_8, -1, 3, 0}
+};
+
+static const symbol s_5_0[2] = { 'a', 'a' };
+static const symbol s_5_1[2] = { 'e', 'e' };
+static const symbol s_5_2[2] = { 'i', 'i' };
+static const symbol s_5_3[2] = { 'o', 'o' };
+static const symbol s_5_4[2] = { 'u', 'u' };
+static const symbol s_5_5[2] = { 0xE4, 0xE4 };
+static const symbol s_5_6[2] = { 0xF6, 0xF6 };
+
+static const struct among a_5[7] =
+{
+{ 2, s_5_0, -1, -1, 0},
+{ 2, s_5_1, -1, -1, 0},
+{ 2, s_5_2, -1, -1, 0},
+{ 2, s_5_3, -1, -1, 0},
+{ 2, s_5_4, -1, -1, 0},
+{ 2, s_5_5, -1, -1, 0},
+{ 2, s_5_6, -1, -1, 0}
+};
+
+static const symbol s_6_0[1] = { 'a' };
+static const symbol s_6_1[3] = { 'l', 'l', 'a' };
+static const symbol s_6_2[2] = { 'n', 'a' };
+static const symbol s_6_3[3] = { 's', 's', 'a' };
+static const symbol s_6_4[2] = { 't', 'a' };
+static const symbol s_6_5[3] = { 'l', 't', 'a' };
+static const symbol s_6_6[3] = { 's', 't', 'a' };
+static const symbol s_6_7[3] = { 't', 't', 'a' };
+static const symbol s_6_8[3] = { 'l', 'l', 'e' };
+static const symbol s_6_9[3] = { 'i', 'n', 'e' };
+static const symbol s_6_10[3] = { 'k', 's', 'i' };
+static const symbol s_6_11[1] = { 'n' };
+static const symbol s_6_12[3] = { 'h', 'a', 'n' };
+static const symbol s_6_13[3] = { 'd', 'e', 'n' };
+static const symbol s_6_14[4] = { 's', 'e', 'e', 'n' };
+static const symbol s_6_15[3] = { 'h', 'e', 'n' };
+static const symbol s_6_16[4] = { 't', 't', 'e', 'n' };
+static const symbol s_6_17[3] = { 'h', 'i', 'n' };
+static const symbol s_6_18[4] = { 's', 'i', 'i', 'n' };
+static const symbol s_6_19[3] = { 'h', 'o', 'n' };
+static const symbol s_6_20[3] = { 'h', 0xE4, 'n' };
+static const symbol s_6_21[3] = { 'h', 0xF6, 'n' };
+static const symbol s_6_22[1] = { 0xE4 };
+static const symbol s_6_23[3] = { 'l', 'l', 0xE4 };
+static const symbol s_6_24[2] = { 'n', 0xE4 };
+static const symbol s_6_25[3] = { 's', 's', 0xE4 };
+static const symbol s_6_26[2] = { 't', 0xE4 };
+static const symbol s_6_27[3] = { 'l', 't', 0xE4 };
+static const symbol s_6_28[3] = { 's', 't', 0xE4 };
+static const symbol s_6_29[3] = { 't', 't', 0xE4 };
+
+static const struct among a_6[30] =
+{
+{ 1, s_6_0, -1, 8, 0},
+{ 3, s_6_1, 0, -1, 0},
+{ 2, s_6_2, 0, -1, 0},
+{ 3, s_6_3, 0, -1, 0},
+{ 2, s_6_4, 0, -1, 0},
+{ 3, s_6_5, 4, -1, 0},
+{ 3, s_6_6, 4, -1, 0},
+{ 3, s_6_7, 4, 2, 0},
+{ 3, s_6_8, -1, -1, 0},
+{ 3, s_6_9, -1, -1, 0},
+{ 3, s_6_10, -1, -1, 0},
+{ 1, s_6_11, -1, 7, 0},
+{ 3, s_6_12, 11, 1, 0},
+{ 3, s_6_13, 11, -1, r_VI},
+{ 4, s_6_14, 11, -1, r_LONG},
+{ 3, s_6_15, 11, 2, 0},
+{ 4, s_6_16, 11, -1, r_VI},
+{ 3, s_6_17, 11, 3, 0},
+{ 4, s_6_18, 11, -1, r_VI},
+{ 3, s_6_19, 11, 4, 0},
+{ 3, s_6_20, 11, 5, 0},
+{ 3, s_6_21, 11, 6, 0},
+{ 1, s_6_22, -1, 8, 0},
+{ 3, s_6_23, 22, -1, 0},
+{ 2, s_6_24, 22, -1, 0},
+{ 3, s_6_25, 22, -1, 0},
+{ 2, s_6_26, 22, -1, 0},
+{ 3, s_6_27, 26, -1, 0},
+{ 3, s_6_28, 26, -1, 0},
+{ 3, s_6_29, 26, 2, 0}
+};
+
+static const symbol s_7_0[3] = { 'e', 'j', 'a' };
+static const symbol s_7_1[3] = { 'm', 'm', 'a' };
+static const symbol s_7_2[4] = { 'i', 'm', 'm', 'a' };
+static const symbol s_7_3[3] = { 'm', 'p', 'a' };
+static const symbol s_7_4[4] = { 'i', 'm', 'p', 'a' };
+static const symbol s_7_5[3] = { 'm', 'm', 'i' };
+static const symbol s_7_6[4] = { 'i', 'm', 'm', 'i' };
+static const symbol s_7_7[3] = { 'm', 'p', 'i' };
+static const symbol s_7_8[4] = { 'i', 'm', 'p', 'i' };
+static const symbol s_7_9[3] = { 'e', 'j', 0xE4 };
+static const symbol s_7_10[3] = { 'm', 'm', 0xE4 };
+static const symbol s_7_11[4] = { 'i', 'm', 'm', 0xE4 };
+static const symbol s_7_12[3] = { 'm', 'p', 0xE4 };
+static const symbol s_7_13[4] = { 'i', 'm', 'p', 0xE4 };
+
+static const struct among a_7[14] =
+{
+{ 3, s_7_0, -1, -1, 0},
+{ 3, s_7_1, -1, 1, 0},
+{ 4, s_7_2, 1, -1, 0},
+{ 3, s_7_3, -1, 1, 0},
+{ 4, s_7_4, 3, -1, 0},
+{ 3, s_7_5, -1, 1, 0},
+{ 4, s_7_6, 5, -1, 0},
+{ 3, s_7_7, -1, 1, 0},
+{ 4, s_7_8, 7, -1, 0},
+{ 3, s_7_9, -1, -1, 0},
+{ 3, s_7_10, -1, 1, 0},
+{ 4, s_7_11, 10, -1, 0},
+{ 3, s_7_12, -1, 1, 0},
+{ 4, s_7_13, 12, -1, 0}
+};
+
+static const symbol s_8_0[1] = { 'i' };
+static const symbol s_8_1[1] = { 'j' };
+
+static const struct among a_8[2] =
+{
+{ 1, s_8_0, -1, -1, 0},
+{ 1, s_8_1, -1, -1, 0}
+};
+
+static const symbol s_9_0[3] = { 'm', 'm', 'a' };
+static const symbol s_9_1[4] = { 'i', 'm', 'm', 'a' };
+
+static const struct among a_9[2] =
+{
+{ 3, s_9_0, -1, 1, 0},
+{ 4, s_9_1, 0, -1, 0}
+};
+
+static const unsigned char g_AEI[] = { 17, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8 };
+
+static const unsigned char g_C[] = { 119, 223, 119, 1 };
+
+static const unsigned char g_V1[] = { 17, 65, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 32 };
+
+static const unsigned char g_V2[] = { 17, 65, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 32 };
+
+static const unsigned char g_particle_end[] = { 17, 97, 24, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 32 };
+
+static const symbol s_0[] = { 'k', 's', 'e' };
+static const symbol s_1[] = { 'k', 's', 'i' };
+static const symbol s_2[] = { 'i', 'e' };
+static const symbol s_3[] = { 'p', 'o' };
+static const symbol s_4[] = { 'p', 'o' };
+
+static int r_mark_regions(struct SN_env * z) {
+ z->I[1] = z->l;
+ z->I[0] = z->l;
+ if (out_grouping(z, g_V1, 97, 246, 1) < 0) return 0;
+ {
+ int ret = in_grouping(z, g_V1, 97, 246, 1);
+ if (ret < 0) return 0;
+ z->c += ret;
+ }
+ z->I[1] = z->c;
+ if (out_grouping(z, g_V1, 97, 246, 1) < 0) return 0;
+ {
+ int ret = in_grouping(z, g_V1, 97, 246, 1);
+ if (ret < 0) return 0;
+ z->c += ret;
+ }
+ z->I[0] = z->c;
+ return 1;
+}
+
+static int r_R2(struct SN_env * z) {
+ if (!(z->I[0] <= z->c)) return 0;
+ return 1;
+}
+
+static int r_particle_etc(struct SN_env * z) {
+ int among_var;
+
+ { int mlimit1;
+ if (z->c < z->I[1]) return 0;
+ mlimit1 = z->lb; z->lb = z->I[1];
+ z->ket = z->c;
+ among_var = find_among_b(z, a_0, 10);
+ if (!(among_var)) { z->lb = mlimit1; return 0; }
+ z->bra = z->c;
+ z->lb = mlimit1;
+ }
+ switch (among_var) {
+ case 1:
+ if (in_grouping_b(z, g_particle_end, 97, 246, 0)) return 0;
+ break;
+ case 2:
+ { int ret = r_R2(z);
+ if (ret <= 0) return ret;
+ }
+ break;
+ }
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ return 1;
+}
+
+static int r_possessive(struct SN_env * z) {
+ int among_var;
+
+ { int mlimit1;
+ if (z->c < z->I[1]) return 0;
+ mlimit1 = z->lb; z->lb = z->I[1];
+ z->ket = z->c;
+ among_var = find_among_b(z, a_4, 9);
+ if (!(among_var)) { z->lb = mlimit1; return 0; }
+ z->bra = z->c;
+ z->lb = mlimit1;
+ }
+ switch (among_var) {
+ case 1:
+ { int m2 = z->l - z->c; (void)m2;
+ if (z->c <= z->lb || z->p[z->c - 1] != 'k') goto lab0;
+ z->c--;
+ return 0;
+ lab0:
+ z->c = z->l - m2;
+ }
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 2:
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ z->ket = z->c;
+ if (!(eq_s_b(z, 3, s_0))) return 0;
+ z->bra = z->c;
+ { int ret = slice_from_s(z, 3, s_1);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 3:
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 4:
+ if (z->c - 1 <= z->lb || z->p[z->c - 1] != 97) return 0;
+ if (!(find_among_b(z, a_1, 6))) return 0;
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 5:
+ if (z->c - 1 <= z->lb || z->p[z->c - 1] != 228) return 0;
+ if (!(find_among_b(z, a_2, 6))) return 0;
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 6:
+ if (z->c - 2 <= z->lb || z->p[z->c - 1] != 101) return 0;
+ if (!(find_among_b(z, a_3, 2))) return 0;
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ break;
+ }
+ return 1;
+}
+
+static int r_LONG(struct SN_env * z) {
+ if (!(find_among_b(z, a_5, 7))) return 0;
+ return 1;
+}
+
+static int r_VI(struct SN_env * z) {
+ if (z->c <= z->lb || z->p[z->c - 1] != 'i') return 0;
+ z->c--;
+ if (in_grouping_b(z, g_V2, 97, 246, 0)) return 0;
+ return 1;
+}
+
+static int r_case_ending(struct SN_env * z) {
+ int among_var;
+
+ { int mlimit1;
+ if (z->c < z->I[1]) return 0;
+ mlimit1 = z->lb; z->lb = z->I[1];
+ z->ket = z->c;
+ among_var = find_among_b(z, a_6, 30);
+ if (!(among_var)) { z->lb = mlimit1; return 0; }
+ z->bra = z->c;
+ z->lb = mlimit1;
+ }
+ switch (among_var) {
+ case 1:
+ if (z->c <= z->lb || z->p[z->c - 1] != 'a') return 0;
+ z->c--;
+ break;
+ case 2:
+ if (z->c <= z->lb || z->p[z->c - 1] != 'e') return 0;
+ z->c--;
+ break;
+ case 3:
+ if (z->c <= z->lb || z->p[z->c - 1] != 'i') return 0;
+ z->c--;
+ break;
+ case 4:
+ if (z->c <= z->lb || z->p[z->c - 1] != 'o') return 0;
+ z->c--;
+ break;
+ case 5:
+ if (z->c <= z->lb || z->p[z->c - 1] != 0xE4) return 0;
+ z->c--;
+ break;
+ case 6:
+ if (z->c <= z->lb || z->p[z->c - 1] != 0xF6) return 0;
+ z->c--;
+ break;
+ case 7:
+ { int m2 = z->l - z->c; (void)m2;
+ { int m3 = z->l - z->c; (void)m3;
+ { int m4 = z->l - z->c; (void)m4;
+ { int ret = r_LONG(z);
+ if (ret == 0) goto lab2;
+ if (ret < 0) return ret;
+ }
+ goto lab1;
+ lab2:
+ z->c = z->l - m4;
+ if (!(eq_s_b(z, 2, s_2))) { z->c = z->l - m2; goto lab0; }
+ }
+ lab1:
+ z->c = z->l - m3;
+ if (z->c <= z->lb) { z->c = z->l - m2; goto lab0; }
+ z->c--;
+ }
+ z->bra = z->c;
+ lab0:
+ ;
+ }
+ break;
+ case 8:
+ if (in_grouping_b(z, g_V1, 97, 246, 0)) return 0;
+ if (in_grouping_b(z, g_C, 98, 122, 0)) return 0;
+ break;
+ }
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ z->I[2] = 1;
+ return 1;
+}
+
+static int r_other_endings(struct SN_env * z) {
+ int among_var;
+
+ { int mlimit1;
+ if (z->c < z->I[0]) return 0;
+ mlimit1 = z->lb; z->lb = z->I[0];
+ z->ket = z->c;
+ among_var = find_among_b(z, a_7, 14);
+ if (!(among_var)) { z->lb = mlimit1; return 0; }
+ z->bra = z->c;
+ z->lb = mlimit1;
+ }
+ switch (among_var) {
+ case 1:
+ { int m2 = z->l - z->c; (void)m2;
+ if (!(eq_s_b(z, 2, s_3))) goto lab0;
+ return 0;
+ lab0:
+ z->c = z->l - m2;
+ }
+ break;
+ }
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ return 1;
+}
+
+static int r_i_plural(struct SN_env * z) {
+
+ { int mlimit1;
+ if (z->c < z->I[1]) return 0;
+ mlimit1 = z->lb; z->lb = z->I[1];
+ z->ket = z->c;
+ if (z->c <= z->lb || (z->p[z->c - 1] != 105 && z->p[z->c - 1] != 106)) { z->lb = mlimit1; return 0; }
+ if (!(find_among_b(z, a_8, 2))) { z->lb = mlimit1; return 0; }
+ z->bra = z->c;
+ z->lb = mlimit1;
+ }
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ return 1;
+}
+
+static int r_t_plural(struct SN_env * z) {
+ int among_var;
+
+ { int mlimit1;
+ if (z->c < z->I[1]) return 0;
+ mlimit1 = z->lb; z->lb = z->I[1];
+ z->ket = z->c;
+ if (z->c <= z->lb || z->p[z->c - 1] != 't') { z->lb = mlimit1; return 0; }
+ z->c--;
+ z->bra = z->c;
+ { int m_test2 = z->l - z->c;
+ if (in_grouping_b(z, g_V1, 97, 246, 0)) { z->lb = mlimit1; return 0; }
+ z->c = z->l - m_test2;
+ }
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ z->lb = mlimit1;
+ }
+
+ { int mlimit3;
+ if (z->c < z->I[0]) return 0;
+ mlimit3 = z->lb; z->lb = z->I[0];
+ z->ket = z->c;
+ if (z->c - 2 <= z->lb || z->p[z->c - 1] != 97) { z->lb = mlimit3; return 0; }
+ among_var = find_among_b(z, a_9, 2);
+ if (!(among_var)) { z->lb = mlimit3; return 0; }
+ z->bra = z->c;
+ z->lb = mlimit3;
+ }
+ switch (among_var) {
+ case 1:
+ { int m4 = z->l - z->c; (void)m4;
+ if (!(eq_s_b(z, 2, s_4))) goto lab0;
+ return 0;
+ lab0:
+ z->c = z->l - m4;
+ }
+ break;
+ }
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ return 1;
+}
+
+static int r_tidy(struct SN_env * z) {
+
+ { int mlimit1;
+ if (z->c < z->I[1]) return 0;
+ mlimit1 = z->lb; z->lb = z->I[1];
+ { int m2 = z->l - z->c; (void)m2;
+ { int m3 = z->l - z->c; (void)m3;
+ { int ret = r_LONG(z);
+ if (ret == 0) goto lab0;
+ if (ret < 0) return ret;
+ }
+ z->c = z->l - m3;
+ z->ket = z->c;
+ if (z->c <= z->lb) goto lab0;
+ z->c--;
+ z->bra = z->c;
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ }
+ lab0:
+ z->c = z->l - m2;
+ }
+ { int m4 = z->l - z->c; (void)m4;
+ z->ket = z->c;
+ if (in_grouping_b(z, g_AEI, 97, 228, 0)) goto lab1;
+ z->bra = z->c;
+ if (in_grouping_b(z, g_C, 98, 122, 0)) goto lab1;
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ lab1:
+ z->c = z->l - m4;
+ }
+ { int m5 = z->l - z->c; (void)m5;
+ z->ket = z->c;
+ if (z->c <= z->lb || z->p[z->c - 1] != 'j') goto lab2;
+ z->c--;
+ z->bra = z->c;
+ { int m6 = z->l - z->c; (void)m6;
+ if (z->c <= z->lb || z->p[z->c - 1] != 'o') goto lab4;
+ z->c--;
+ goto lab3;
+ lab4:
+ z->c = z->l - m6;
+ if (z->c <= z->lb || z->p[z->c - 1] != 'u') goto lab2;
+ z->c--;
+ }
+ lab3:
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ lab2:
+ z->c = z->l - m5;
+ }
+ { int m7 = z->l - z->c; (void)m7;
+ z->ket = z->c;
+ if (z->c <= z->lb || z->p[z->c - 1] != 'o') goto lab5;
+ z->c--;
+ z->bra = z->c;
+ if (z->c <= z->lb || z->p[z->c - 1] != 'j') goto lab5;
+ z->c--;
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ lab5:
+ z->c = z->l - m7;
+ }
+ z->lb = mlimit1;
+ }
+ if (in_grouping_b(z, g_V1, 97, 246, 1) < 0) return 0;
+ z->ket = z->c;
+ if (in_grouping_b(z, g_C, 98, 122, 0)) return 0;
+ z->bra = z->c;
+ z->S[0] = slice_to(z, z->S[0]);
+ if (z->S[0] == 0) return -1;
+ if (!(eq_v_b(z, z->S[0]))) return 0;
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ return 1;
+}
+
+extern int finnish_ISO_8859_1_stem(struct SN_env * z) {
+ { int c1 = z->c;
+ { int ret = r_mark_regions(z);
+ if (ret < 0) return ret;
+ }
+ z->c = c1;
+ }
+ z->I[2] = 0;
+ z->lb = z->c; z->c = z->l;
+
+ { int m2 = z->l - z->c; (void)m2;
+ { int ret = r_particle_etc(z);
+ if (ret < 0) return ret;
+ }
+ z->c = z->l - m2;
+ }
+ { int m3 = z->l - z->c; (void)m3;
+ { int ret = r_possessive(z);
+ if (ret < 0) return ret;
+ }
+ z->c = z->l - m3;
+ }
+ { int m4 = z->l - z->c; (void)m4;
+ { int ret = r_case_ending(z);
+ if (ret < 0) return ret;
+ }
+ z->c = z->l - m4;
+ }
+ { int m5 = z->l - z->c; (void)m5;
+ { int ret = r_other_endings(z);
+ if (ret < 0) return ret;
+ }
+ z->c = z->l - m5;
+ }
+
+ if (!(z->I[2])) goto lab1;
+ { int m6 = z->l - z->c; (void)m6;
+ { int ret = r_i_plural(z);
+ if (ret < 0) return ret;
+ }
+ z->c = z->l - m6;
+ }
+ goto lab0;
+lab1:
+ { int m7 = z->l - z->c; (void)m7;
+ { int ret = r_t_plural(z);
+ if (ret < 0) return ret;
+ }
+ z->c = z->l - m7;
+ }
+lab0:
+ { int m8 = z->l - z->c; (void)m8;
+ { int ret = r_tidy(z);
+ if (ret < 0) return ret;
+ }
+ z->c = z->l - m8;
+ }
+ z->c = z->lb;
+ return 1;
+}
+
+extern struct SN_env * finnish_ISO_8859_1_create_env(void) { return SN_create_env(1, 3); }
+
+extern void finnish_ISO_8859_1_close_env(struct SN_env * z) { SN_close_env(z, 1); }
+
diff --git a/src/backend/snowball/libstemmer/stem_ISO_8859_1_french.c b/src/backend/snowball/libstemmer/stem_ISO_8859_1_french.c
new file mode 100644
index 0000000..1951f0d
--- /dev/null
+++ b/src/backend/snowball/libstemmer/stem_ISO_8859_1_french.c
@@ -0,0 +1,1252 @@
+/* Generated by Snowball 2.2.0 - https://snowballstem.org/ */
+
+#include "header.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+extern int french_ISO_8859_1_stem(struct SN_env * z);
+#ifdef __cplusplus
+}
+#endif
+static int r_un_accent(struct SN_env * z);
+static int r_un_double(struct SN_env * z);
+static int r_residual_suffix(struct SN_env * z);
+static int r_verb_suffix(struct SN_env * z);
+static int r_i_verb_suffix(struct SN_env * z);
+static int r_standard_suffix(struct SN_env * z);
+static int r_R2(struct SN_env * z);
+static int r_R1(struct SN_env * z);
+static int r_RV(struct SN_env * z);
+static int r_mark_regions(struct SN_env * z);
+static int r_postlude(struct SN_env * z);
+static int r_prelude(struct SN_env * z);
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+extern struct SN_env * french_ISO_8859_1_create_env(void);
+extern void french_ISO_8859_1_close_env(struct SN_env * z);
+
+
+#ifdef __cplusplus
+}
+#endif
+static const symbol s_0_0[3] = { 'c', 'o', 'l' };
+static const symbol s_0_1[3] = { 'p', 'a', 'r' };
+static const symbol s_0_2[3] = { 't', 'a', 'p' };
+
+static const struct among a_0[3] =
+{
+{ 3, s_0_0, -1, -1, 0},
+{ 3, s_0_1, -1, -1, 0},
+{ 3, s_0_2, -1, -1, 0}
+};
+
+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[7] =
+{
+{ 0, 0, -1, 7, 0},
+{ 1, s_1_1, 0, 6, 0},
+{ 2, s_1_2, 1, 4, 0},
+{ 2, s_1_3, 1, 5, 0},
+{ 1, s_1_4, 0, 1, 0},
+{ 1, s_1_5, 0, 2, 0},
+{ 1, s_1_6, 0, 3, 0}
+};
+
+static const symbol s_2_0[3] = { 'i', 'q', 'U' };
+static const symbol s_2_1[3] = { 'a', 'b', 'l' };
+static const symbol s_2_2[3] = { 'I', 0xE8, 'r' };
+static const symbol s_2_3[3] = { 'i', 0xE8, 'r' };
+static const symbol s_2_4[3] = { 'e', 'u', 's' };
+static const symbol s_2_5[2] = { 'i', 'v' };
+
+static const struct among a_2[6] =
+{
+{ 3, s_2_0, -1, 3, 0},
+{ 3, s_2_1, -1, 3, 0},
+{ 3, s_2_2, -1, 4, 0},
+{ 3, s_2_3, -1, 4, 0},
+{ 3, s_2_4, -1, 2, 0},
+{ 2, s_2_5, -1, 1, 0}
+};
+
+static const symbol s_3_0[2] = { 'i', 'c' };
+static const symbol s_3_1[4] = { 'a', 'b', 'i', 'l' };
+static const symbol s_3_2[2] = { 'i', 'v' };
+
+static const struct among a_3[3] =
+{
+{ 2, s_3_0, -1, 2, 0},
+{ 4, s_3_1, -1, 1, 0},
+{ 2, s_3_2, -1, 3, 0}
+};
+
+static const symbol s_4_0[4] = { 'i', 'q', 'U', 'e' };
+static const symbol s_4_1[6] = { 'a', 't', 'r', 'i', 'c', 'e' };
+static const symbol s_4_2[4] = { 'a', 'n', 'c', 'e' };
+static const symbol s_4_3[4] = { 'e', 'n', 'c', 'e' };
+static const symbol s_4_4[5] = { 'l', 'o', 'g', 'i', 'e' };
+static const symbol s_4_5[4] = { 'a', 'b', 'l', 'e' };
+static const symbol s_4_6[4] = { 'i', 's', 'm', 'e' };
+static const symbol s_4_7[4] = { 'e', 'u', 's', 'e' };
+static const symbol s_4_8[4] = { 'i', 's', 't', 'e' };
+static const symbol s_4_9[3] = { 'i', 'v', 'e' };
+static const symbol s_4_10[2] = { 'i', 'f' };
+static const symbol s_4_11[5] = { 'u', 's', 'i', 'o', 'n' };
+static const symbol s_4_12[5] = { 'a', 't', 'i', 'o', 'n' };
+static const symbol s_4_13[5] = { 'u', 't', 'i', 'o', 'n' };
+static const symbol s_4_14[5] = { 'a', 't', 'e', 'u', 'r' };
+static const symbol s_4_15[5] = { 'i', 'q', 'U', 'e', 's' };
+static const symbol s_4_16[7] = { 'a', 't', 'r', 'i', 'c', 'e', 's' };
+static const symbol s_4_17[5] = { 'a', 'n', 'c', 'e', 's' };
+static const symbol s_4_18[5] = { 'e', 'n', 'c', 'e', 's' };
+static const symbol s_4_19[6] = { 'l', 'o', 'g', 'i', 'e', 's' };
+static const symbol s_4_20[5] = { 'a', 'b', 'l', 'e', 's' };
+static const symbol s_4_21[5] = { 'i', 's', 'm', 'e', 's' };
+static const symbol s_4_22[5] = { 'e', 'u', 's', 'e', 's' };
+static const symbol s_4_23[5] = { 'i', 's', 't', 'e', 's' };
+static const symbol s_4_24[4] = { 'i', 'v', 'e', 's' };
+static const symbol s_4_25[3] = { 'i', 'f', 's' };
+static const symbol s_4_26[6] = { 'u', 's', 'i', 'o', 'n', 's' };
+static const symbol s_4_27[6] = { 'a', 't', 'i', 'o', 'n', 's' };
+static const symbol s_4_28[6] = { 'u', 't', 'i', 'o', 'n', 's' };
+static const symbol s_4_29[6] = { 'a', 't', 'e', 'u', 'r', 's' };
+static const symbol s_4_30[5] = { 'm', 'e', 'n', 't', 's' };
+static const symbol s_4_31[6] = { 'e', 'm', 'e', 'n', 't', 's' };
+static const symbol s_4_32[9] = { 'i', 's', 's', 'e', 'm', 'e', 'n', 't', 's' };
+static const symbol s_4_33[4] = { 'i', 't', 0xE9, 's' };
+static const symbol s_4_34[4] = { 'm', 'e', 'n', 't' };
+static const symbol s_4_35[5] = { 'e', 'm', 'e', 'n', 't' };
+static const symbol s_4_36[8] = { 'i', 's', 's', 'e', 'm', 'e', 'n', 't' };
+static const symbol s_4_37[6] = { 'a', 'm', 'm', 'e', 'n', 't' };
+static const symbol s_4_38[6] = { 'e', 'm', 'm', 'e', 'n', 't' };
+static const symbol s_4_39[3] = { 'a', 'u', 'x' };
+static const symbol s_4_40[4] = { 'e', 'a', 'u', 'x' };
+static const symbol s_4_41[3] = { 'e', 'u', 'x' };
+static const symbol s_4_42[3] = { 'i', 't', 0xE9 };
+
+static const struct among a_4[43] =
+{
+{ 4, s_4_0, -1, 1, 0},
+{ 6, s_4_1, -1, 2, 0},
+{ 4, s_4_2, -1, 1, 0},
+{ 4, s_4_3, -1, 5, 0},
+{ 5, s_4_4, -1, 3, 0},
+{ 4, s_4_5, -1, 1, 0},
+{ 4, s_4_6, -1, 1, 0},
+{ 4, s_4_7, -1, 11, 0},
+{ 4, s_4_8, -1, 1, 0},
+{ 3, s_4_9, -1, 8, 0},
+{ 2, s_4_10, -1, 8, 0},
+{ 5, s_4_11, -1, 4, 0},
+{ 5, s_4_12, -1, 2, 0},
+{ 5, s_4_13, -1, 4, 0},
+{ 5, s_4_14, -1, 2, 0},
+{ 5, s_4_15, -1, 1, 0},
+{ 7, s_4_16, -1, 2, 0},
+{ 5, s_4_17, -1, 1, 0},
+{ 5, s_4_18, -1, 5, 0},
+{ 6, s_4_19, -1, 3, 0},
+{ 5, s_4_20, -1, 1, 0},
+{ 5, s_4_21, -1, 1, 0},
+{ 5, s_4_22, -1, 11, 0},
+{ 5, s_4_23, -1, 1, 0},
+{ 4, s_4_24, -1, 8, 0},
+{ 3, s_4_25, -1, 8, 0},
+{ 6, s_4_26, -1, 4, 0},
+{ 6, s_4_27, -1, 2, 0},
+{ 6, s_4_28, -1, 4, 0},
+{ 6, s_4_29, -1, 2, 0},
+{ 5, s_4_30, -1, 15, 0},
+{ 6, s_4_31, 30, 6, 0},
+{ 9, s_4_32, 31, 12, 0},
+{ 4, s_4_33, -1, 7, 0},
+{ 4, s_4_34, -1, 15, 0},
+{ 5, s_4_35, 34, 6, 0},
+{ 8, s_4_36, 35, 12, 0},
+{ 6, s_4_37, 34, 13, 0},
+{ 6, s_4_38, 34, 14, 0},
+{ 3, s_4_39, -1, 10, 0},
+{ 4, s_4_40, 39, 9, 0},
+{ 3, s_4_41, -1, 1, 0},
+{ 3, s_4_42, -1, 7, 0}
+};
+
+static const symbol s_5_0[3] = { 'i', 'r', 'a' };
+static const symbol s_5_1[2] = { 'i', 'e' };
+static const symbol s_5_2[4] = { 'i', 's', 's', 'e' };
+static const symbol s_5_3[7] = { 'i', 's', 's', 'a', 'n', 't', 'e' };
+static const symbol s_5_4[1] = { 'i' };
+static const symbol s_5_5[4] = { 'i', 'r', 'a', 'i' };
+static const symbol s_5_6[2] = { 'i', 'r' };
+static const symbol s_5_7[4] = { 'i', 'r', 'a', 's' };
+static const symbol s_5_8[3] = { 'i', 'e', 's' };
+static const symbol s_5_9[4] = { 0xEE, 'm', 'e', 's' };
+static const symbol s_5_10[5] = { 'i', 's', 's', 'e', 's' };
+static const symbol s_5_11[8] = { 'i', 's', 's', 'a', 'n', 't', 'e', 's' };
+static const symbol s_5_12[4] = { 0xEE, 't', 'e', 's' };
+static const symbol s_5_13[2] = { 'i', 's' };
+static const symbol s_5_14[5] = { 'i', 'r', 'a', 'i', 's' };
+static const symbol s_5_15[6] = { 'i', 's', 's', 'a', 'i', 's' };
+static const symbol s_5_16[6] = { 'i', 'r', 'i', 'o', 'n', 's' };
+static const symbol s_5_17[7] = { 'i', 's', 's', 'i', 'o', 'n', 's' };
+static const symbol s_5_18[5] = { 'i', 'r', 'o', 'n', 's' };
+static const symbol s_5_19[6] = { 'i', 's', 's', 'o', 'n', 's' };
+static const symbol s_5_20[7] = { 'i', 's', 's', 'a', 'n', 't', 's' };
+static const symbol s_5_21[2] = { 'i', 't' };
+static const symbol s_5_22[5] = { 'i', 'r', 'a', 'i', 't' };
+static const symbol s_5_23[6] = { 'i', 's', 's', 'a', 'i', 't' };
+static const symbol s_5_24[6] = { 'i', 's', 's', 'a', 'n', 't' };
+static const symbol s_5_25[7] = { 'i', 'r', 'a', 'I', 'e', 'n', 't' };
+static const symbol s_5_26[8] = { 'i', 's', 's', 'a', 'I', 'e', 'n', 't' };
+static const symbol s_5_27[5] = { 'i', 'r', 'e', 'n', 't' };
+static const symbol s_5_28[6] = { 'i', 's', 's', 'e', 'n', 't' };
+static const symbol s_5_29[5] = { 'i', 'r', 'o', 'n', 't' };
+static const symbol s_5_30[2] = { 0xEE, 't' };
+static const symbol s_5_31[5] = { 'i', 'r', 'i', 'e', 'z' };
+static const symbol s_5_32[6] = { 'i', 's', 's', 'i', 'e', 'z' };
+static const symbol s_5_33[4] = { 'i', 'r', 'e', 'z' };
+static const symbol s_5_34[5] = { 'i', 's', 's', 'e', 'z' };
+
+static const struct among a_5[35] =
+{
+{ 3, s_5_0, -1, 1, 0},
+{ 2, s_5_1, -1, 1, 0},
+{ 4, s_5_2, -1, 1, 0},
+{ 7, s_5_3, -1, 1, 0},
+{ 1, s_5_4, -1, 1, 0},
+{ 4, s_5_5, 4, 1, 0},
+{ 2, s_5_6, -1, 1, 0},
+{ 4, s_5_7, -1, 1, 0},
+{ 3, s_5_8, -1, 1, 0},
+{ 4, s_5_9, -1, 1, 0},
+{ 5, s_5_10, -1, 1, 0},
+{ 8, s_5_11, -1, 1, 0},
+{ 4, s_5_12, -1, 1, 0},
+{ 2, s_5_13, -1, 1, 0},
+{ 5, s_5_14, 13, 1, 0},
+{ 6, s_5_15, 13, 1, 0},
+{ 6, s_5_16, -1, 1, 0},
+{ 7, s_5_17, -1, 1, 0},
+{ 5, s_5_18, -1, 1, 0},
+{ 6, s_5_19, -1, 1, 0},
+{ 7, s_5_20, -1, 1, 0},
+{ 2, s_5_21, -1, 1, 0},
+{ 5, s_5_22, 21, 1, 0},
+{ 6, s_5_23, 21, 1, 0},
+{ 6, s_5_24, -1, 1, 0},
+{ 7, s_5_25, -1, 1, 0},
+{ 8, s_5_26, -1, 1, 0},
+{ 5, s_5_27, -1, 1, 0},
+{ 6, s_5_28, -1, 1, 0},
+{ 5, s_5_29, -1, 1, 0},
+{ 2, s_5_30, -1, 1, 0},
+{ 5, s_5_31, -1, 1, 0},
+{ 6, s_5_32, -1, 1, 0},
+{ 4, s_5_33, -1, 1, 0},
+{ 5, s_5_34, -1, 1, 0}
+};
+
+static const symbol s_6_0[1] = { 'a' };
+static const symbol s_6_1[3] = { 'e', 'r', 'a' };
+static const symbol s_6_2[4] = { 'a', 's', 's', 'e' };
+static const symbol s_6_3[4] = { 'a', 'n', 't', 'e' };
+static const symbol s_6_4[2] = { 0xE9, 'e' };
+static const symbol s_6_5[2] = { 'a', 'i' };
+static const symbol s_6_6[4] = { 'e', 'r', 'a', 'i' };
+static const symbol s_6_7[2] = { 'e', 'r' };
+static const symbol s_6_8[2] = { 'a', 's' };
+static const symbol s_6_9[4] = { 'e', 'r', 'a', 's' };
+static const symbol s_6_10[4] = { 0xE2, 'm', 'e', 's' };
+static const symbol s_6_11[5] = { 'a', 's', 's', 'e', 's' };
+static const symbol s_6_12[5] = { 'a', 'n', 't', 'e', 's' };
+static const symbol s_6_13[4] = { 0xE2, 't', 'e', 's' };
+static const symbol s_6_14[3] = { 0xE9, 'e', 's' };
+static const symbol s_6_15[3] = { 'a', 'i', 's' };
+static const symbol s_6_16[5] = { 'e', 'r', 'a', 'i', 's' };
+static const symbol s_6_17[4] = { 'i', 'o', 'n', 's' };
+static const symbol s_6_18[6] = { 'e', 'r', 'i', 'o', 'n', 's' };
+static const symbol s_6_19[7] = { 'a', 's', 's', 'i', 'o', 'n', 's' };
+static const symbol s_6_20[5] = { 'e', 'r', 'o', 'n', 's' };
+static const symbol s_6_21[4] = { 'a', 'n', 't', 's' };
+static const symbol s_6_22[2] = { 0xE9, 's' };
+static const symbol s_6_23[3] = { 'a', 'i', 't' };
+static const symbol s_6_24[5] = { 'e', 'r', 'a', 'i', 't' };
+static const symbol s_6_25[3] = { 'a', 'n', 't' };
+static const symbol s_6_26[5] = { 'a', 'I', 'e', 'n', 't' };
+static const symbol s_6_27[7] = { 'e', 'r', 'a', 'I', 'e', 'n', 't' };
+static const symbol s_6_28[5] = { 0xE8, 'r', 'e', 'n', 't' };
+static const symbol s_6_29[6] = { 'a', 's', 's', 'e', 'n', 't' };
+static const symbol s_6_30[5] = { 'e', 'r', 'o', 'n', 't' };
+static const symbol s_6_31[2] = { 0xE2, 't' };
+static const symbol s_6_32[2] = { 'e', 'z' };
+static const symbol s_6_33[3] = { 'i', 'e', 'z' };
+static const symbol s_6_34[5] = { 'e', 'r', 'i', 'e', 'z' };
+static const symbol s_6_35[6] = { 'a', 's', 's', 'i', 'e', 'z' };
+static const symbol s_6_36[4] = { 'e', 'r', 'e', 'z' };
+static const symbol s_6_37[1] = { 0xE9 };
+
+static const struct among a_6[38] =
+{
+{ 1, s_6_0, -1, 3, 0},
+{ 3, s_6_1, 0, 2, 0},
+{ 4, s_6_2, -1, 3, 0},
+{ 4, s_6_3, -1, 3, 0},
+{ 2, s_6_4, -1, 2, 0},
+{ 2, s_6_5, -1, 3, 0},
+{ 4, s_6_6, 5, 2, 0},
+{ 2, s_6_7, -1, 2, 0},
+{ 2, s_6_8, -1, 3, 0},
+{ 4, s_6_9, 8, 2, 0},
+{ 4, s_6_10, -1, 3, 0},
+{ 5, s_6_11, -1, 3, 0},
+{ 5, s_6_12, -1, 3, 0},
+{ 4, s_6_13, -1, 3, 0},
+{ 3, s_6_14, -1, 2, 0},
+{ 3, s_6_15, -1, 3, 0},
+{ 5, s_6_16, 15, 2, 0},
+{ 4, s_6_17, -1, 1, 0},
+{ 6, s_6_18, 17, 2, 0},
+{ 7, s_6_19, 17, 3, 0},
+{ 5, s_6_20, -1, 2, 0},
+{ 4, s_6_21, -1, 3, 0},
+{ 2, s_6_22, -1, 2, 0},
+{ 3, s_6_23, -1, 3, 0},
+{ 5, s_6_24, 23, 2, 0},
+{ 3, s_6_25, -1, 3, 0},
+{ 5, s_6_26, -1, 3, 0},
+{ 7, s_6_27, 26, 2, 0},
+{ 5, s_6_28, -1, 2, 0},
+{ 6, s_6_29, -1, 3, 0},
+{ 5, s_6_30, -1, 2, 0},
+{ 2, s_6_31, -1, 3, 0},
+{ 2, s_6_32, -1, 2, 0},
+{ 3, s_6_33, 32, 2, 0},
+{ 5, s_6_34, 33, 2, 0},
+{ 6, s_6_35, 33, 3, 0},
+{ 4, s_6_36, 32, 2, 0},
+{ 1, s_6_37, -1, 2, 0}
+};
+
+static const symbol s_7_0[1] = { 'e' };
+static const symbol s_7_1[4] = { 'I', 0xE8, 'r', 'e' };
+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 struct among a_7[6] =
+{
+{ 1, s_7_0, -1, 3, 0},
+{ 4, s_7_1, 0, 2, 0},
+{ 4, s_7_2, 0, 2, 0},
+{ 3, s_7_3, -1, 1, 0},
+{ 3, s_7_4, -1, 2, 0},
+{ 3, s_7_5, -1, 2, 0}
+};
+
+static const symbol s_8_0[3] = { 'e', 'l', 'l' };
+static const symbol s_8_1[4] = { 'e', 'i', 'l', 'l' };
+static const symbol s_8_2[3] = { 'e', 'n', 'n' };
+static const symbol s_8_3[3] = { 'o', 'n', 'n' };
+static const symbol s_8_4[3] = { 'e', 't', 't' };
+
+static const struct among a_8[5] =
+{
+{ 3, s_8_0, -1, -1, 0},
+{ 4, s_8_1, -1, -1, 0},
+{ 3, s_8_2, -1, -1, 0},
+{ 3, s_8_3, -1, -1, 0},
+{ 3, s_8_4, -1, -1, 0}
+};
+
+static const unsigned char g_v[] = { 17, 65, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 130, 103, 8, 5 };
+
+static const unsigned char g_keep_with_s[] = { 1, 65, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128 };
+
+static const symbol s_0[] = { 'U' };
+static const symbol s_1[] = { 'I' };
+static const symbol s_2[] = { 'Y' };
+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) {
+ while(1) {
+ int c1 = z->c;
+ while(1) {
+ int c2 = z->c;
+ { int c3 = z->c;
+ if (in_grouping(z, g_v, 97, 251, 0)) goto lab3;
+ z->bra = z->c;
+ { int c4 = z->c;
+ if (z->c == z->l || z->p[z->c] != 'u') goto lab5;
+ z->c++;
+ z->ket = z->c;
+ if (in_grouping(z, g_v, 97, 251, 0)) goto lab5;
+ { int ret = slice_from_s(z, 1, s_0);
+ if (ret < 0) return ret;
+ }
+ goto lab4;
+ lab5:
+ z->c = c4;
+ if (z->c == z->l || z->p[z->c] != 'i') goto lab6;
+ z->c++;
+ z->ket = z->c;
+ if (in_grouping(z, g_v, 97, 251, 0)) goto lab6;
+ { int ret = slice_from_s(z, 1, s_1);
+ if (ret < 0) return ret;
+ }
+ goto lab4;
+ lab6:
+ z->c = c4;
+ if (z->c == z->l || z->p[z->c] != 'y') goto lab3;
+ z->c++;
+ z->ket = z->c;
+ { int ret = slice_from_s(z, 1, s_2);
+ if (ret < 0) return ret;
+ }
+ }
+ lab4:
+ goto lab2;
+ lab3:
+ z->c = c3;
+ z->bra = z->c;
+ if (z->c == z->l || z->p[z->c] != 0xEB) goto lab7;
+ z->c++;
+ z->ket = z->c;
+ { int ret = slice_from_s(z, 2, s_3);
+ if (ret < 0) return ret;
+ }
+ goto lab2;
+ lab7:
+ z->c = c3;
+ z->bra = z->c;
+ if (z->c == z->l || z->p[z->c] != 0xEF) goto lab8;
+ z->c++;
+ z->ket = z->c;
+ { int ret = slice_from_s(z, 2, s_4);
+ if (ret < 0) return ret;
+ }
+ goto lab2;
+ lab8:
+ z->c = c3;
+ z->bra = z->c;
+ if (z->c == z->l || z->p[z->c] != 'y') goto lab9;
+ z->c++;
+ z->ket = z->c;
+ if (in_grouping(z, g_v, 97, 251, 0)) goto lab9;
+ { int ret = slice_from_s(z, 1, s_5);
+ if (ret < 0) return ret;
+ }
+ goto lab2;
+ lab9:
+ z->c = c3;
+ if (z->c == z->l || z->p[z->c] != 'q') goto lab1;
+ z->c++;
+ z->bra = z->c;
+ if (z->c == z->l || z->p[z->c] != 'u') goto lab1;
+ z->c++;
+ z->ket = z->c;
+ { int ret = slice_from_s(z, 1, s_6);
+ if (ret < 0) return ret;
+ }
+ }
+ lab2:
+ z->c = c2;
+ break;
+ lab1:
+ z->c = c2;
+ if (z->c >= z->l) goto lab0;
+ z->c++;
+ }
+ continue;
+ lab0:
+ z->c = c1;
+ break;
+ }
+ return 1;
+}
+
+static int r_mark_regions(struct SN_env * z) {
+ z->I[2] = z->l;
+ z->I[1] = z->l;
+ z->I[0] = z->l;
+ { int c1 = z->c;
+ { int c2 = z->c;
+ if (in_grouping(z, g_v, 97, 251, 0)) goto lab2;
+ if (in_grouping(z, g_v, 97, 251, 0)) goto lab2;
+ if (z->c >= z->l) goto lab2;
+ z->c++;
+ 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;
+ if (!(find_among(z, a_0, 3))) goto lab3;
+ goto lab1;
+ lab3:
+ z->c = c2;
+ if (z->c >= z->l) goto lab0;
+ z->c++;
+ {
+ int ret = out_grouping(z, g_v, 97, 251, 1);
+ if (ret < 0) goto lab0;
+ z->c += ret;
+ }
+ }
+ lab1:
+ z->I[2] = z->c;
+ lab0:
+ z->c = c1;
+ }
+ { int c3 = z->c;
+ {
+ int ret = out_grouping(z, g_v, 97, 251, 1);
+ if (ret < 0) goto lab4;
+ z->c += ret;
+ }
+ {
+ int ret = in_grouping(z, g_v, 97, 251, 1);
+ if (ret < 0) goto lab4;
+ z->c += ret;
+ }
+ z->I[1] = z->c;
+ {
+ int ret = out_grouping(z, g_v, 97, 251, 1);
+ if (ret < 0) goto lab4;
+ z->c += ret;
+ }
+ {
+ int ret = in_grouping(z, g_v, 97, 251, 1);
+ if (ret < 0) goto lab4;
+ z->c += ret;
+ }
+ z->I[0] = z->c;
+ lab4:
+ z->c = c3;
+ }
+ return 1;
+}
+
+static int r_postlude(struct SN_env * z) {
+ int among_var;
+ while(1) {
+ int c1 = z->c;
+ z->bra = z->c;
+ if (z->c >= z->l || z->p[z->c + 0] >> 5 != 2 || !((35652352 >> (z->p[z->c + 0] & 0x1f)) & 1)) among_var = 7; else
+ among_var = find_among(z, a_1, 7);
+ if (!(among_var)) goto lab0;
+ z->ket = z->c;
+ switch (among_var) {
+ case 1:
+ { int ret = slice_from_s(z, 1, s_7);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 2:
+ { int ret = slice_from_s(z, 1, s_8);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 3:
+ { int ret = slice_from_s(z, 1, s_9);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 4:
+ { int ret = slice_from_s(z, 1, s_10);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 5:
+ { int ret = slice_from_s(z, 1, s_11);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 6:
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 7:
+ if (z->c >= z->l) goto lab0;
+ z->c++;
+ break;
+ }
+ continue;
+ lab0:
+ z->c = c1;
+ break;
+ }
+ return 1;
+}
+
+static int r_RV(struct SN_env * z) {
+ if (!(z->I[2] <= z->c)) return 0;
+ return 1;
+}
+
+static int r_R1(struct SN_env * z) {
+ if (!(z->I[1] <= z->c)) return 0;
+ return 1;
+}
+
+static int r_R2(struct SN_env * z) {
+ if (!(z->I[0] <= z->c)) return 0;
+ return 1;
+}
+
+static int r_standard_suffix(struct SN_env * z) {
+ int among_var;
+ z->ket = z->c;
+ among_var = find_among_b(z, a_4, 43);
+ if (!(among_var)) return 0;
+ z->bra = z->c;
+ switch (among_var) {
+ case 1:
+ { int ret = r_R2(z);
+ if (ret <= 0) return ret;
+ }
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 2:
+ { int ret = r_R2(z);
+ if (ret <= 0) return ret;
+ }
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ { int m1 = z->l - z->c; (void)m1;
+ z->ket = z->c;
+ if (!(eq_s_b(z, 2, s_12))) { z->c = z->l - m1; goto lab0; }
+ z->bra = z->c;
+ { int m2 = z->l - z->c; (void)m2;
+ { int ret = r_R2(z);
+ if (ret == 0) goto lab2;
+ if (ret < 0) return ret;
+ }
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ goto lab1;
+ lab2:
+ z->c = z->l - m2;
+ { int ret = slice_from_s(z, 3, s_13);
+ if (ret < 0) return ret;
+ }
+ }
+ lab1:
+ lab0:
+ ;
+ }
+ break;
+ case 3:
+ { int ret = r_R2(z);
+ if (ret <= 0) return ret;
+ }
+ { int ret = slice_from_s(z, 3, s_14);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 4:
+ { int ret = r_R2(z);
+ if (ret <= 0) return ret;
+ }
+ { int ret = slice_from_s(z, 1, s_15);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 5:
+ { int ret = r_R2(z);
+ if (ret <= 0) return ret;
+ }
+ { int ret = slice_from_s(z, 3, s_16);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 6:
+ { int ret = r_RV(z);
+ if (ret <= 0) return ret;
+ }
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ { int m3 = z->l - z->c; (void)m3;
+ z->ket = z->c;
+ among_var = find_among_b(z, a_2, 6);
+ if (!(among_var)) { z->c = z->l - m3; goto lab3; }
+ z->bra = z->c;
+ switch (among_var) {
+ case 1:
+ { int ret = r_R2(z);
+ if (ret == 0) { z->c = z->l - m3; goto lab3; }
+ if (ret < 0) return ret;
+ }
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ z->ket = z->c;
+ if (!(eq_s_b(z, 2, s_17))) { z->c = z->l - m3; goto lab3; }
+ z->bra = z->c;
+ { int ret = r_R2(z);
+ if (ret == 0) { z->c = z->l - m3; goto lab3; }
+ if (ret < 0) return ret;
+ }
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 2:
+ { int m4 = z->l - z->c; (void)m4;
+ { int ret = r_R2(z);
+ if (ret == 0) goto lab5;
+ if (ret < 0) return ret;
+ }
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ goto lab4;
+ lab5:
+ z->c = z->l - m4;
+ { int ret = r_R1(z);
+ if (ret == 0) { z->c = z->l - m3; goto lab3; }
+ if (ret < 0) return ret;
+ }
+ { int ret = slice_from_s(z, 3, s_18);
+ if (ret < 0) return ret;
+ }
+ }
+ lab4:
+ break;
+ case 3:
+ { int ret = r_R2(z);
+ if (ret == 0) { z->c = z->l - m3; goto lab3; }
+ if (ret < 0) return ret;
+ }
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 4:
+ { int ret = r_RV(z);
+ if (ret == 0) { z->c = z->l - m3; goto lab3; }
+ if (ret < 0) return ret;
+ }
+ { int ret = slice_from_s(z, 1, s_19);
+ if (ret < 0) return ret;
+ }
+ break;
+ }
+ lab3:
+ ;
+ }
+ break;
+ case 7:
+ { int ret = r_R2(z);
+ if (ret <= 0) return ret;
+ }
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ { int m5 = z->l - z->c; (void)m5;
+ z->ket = z->c;
+ 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; }
+ among_var = find_among_b(z, a_3, 3);
+ if (!(among_var)) { z->c = z->l - m5; goto lab6; }
+ z->bra = z->c;
+ switch (among_var) {
+ case 1:
+ { int m6 = z->l - z->c; (void)m6;
+ { int ret = r_R2(z);
+ if (ret == 0) goto lab8;
+ if (ret < 0) return ret;
+ }
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ goto lab7;
+ lab8:
+ z->c = z->l - m6;
+ { int ret = slice_from_s(z, 3, s_20);
+ if (ret < 0) return ret;
+ }
+ }
+ lab7:
+ break;
+ case 2:
+ { int m7 = z->l - z->c; (void)m7;
+ { int ret = r_R2(z);
+ if (ret == 0) goto lab10;
+ if (ret < 0) return ret;
+ }
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ goto lab9;
+ lab10:
+ z->c = z->l - m7;
+ { int ret = slice_from_s(z, 3, s_21);
+ if (ret < 0) return ret;
+ }
+ }
+ lab9:
+ break;
+ case 3:
+ { int ret = r_R2(z);
+ if (ret == 0) { z->c = z->l - m5; goto lab6; }
+ if (ret < 0) return ret;
+ }
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ break;
+ }
+ lab6:
+ ;
+ }
+ break;
+ case 8:
+ { int ret = r_R2(z);
+ if (ret <= 0) return ret;
+ }
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ { int m8 = z->l - z->c; (void)m8;
+ z->ket = z->c;
+ if (!(eq_s_b(z, 2, s_22))) { z->c = z->l - m8; goto lab11; }
+ z->bra = z->c;
+ { int ret = r_R2(z);
+ if (ret == 0) { z->c = z->l - m8; goto lab11; }
+ if (ret < 0) return ret;
+ }
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ z->ket = z->c;
+ if (!(eq_s_b(z, 2, s_23))) { z->c = z->l - m8; goto lab11; }
+ z->bra = z->c;
+ { int m9 = z->l - z->c; (void)m9;
+ { int ret = r_R2(z);
+ if (ret == 0) goto lab13;
+ if (ret < 0) return ret;
+ }
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ goto lab12;
+ lab13:
+ z->c = z->l - m9;
+ { int ret = slice_from_s(z, 3, s_24);
+ if (ret < 0) return ret;
+ }
+ }
+ lab12:
+ lab11:
+ ;
+ }
+ break;
+ case 9:
+ { int ret = slice_from_s(z, 3, s_25);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 10:
+ { int ret = r_R1(z);
+ if (ret <= 0) return ret;
+ }
+ { int ret = slice_from_s(z, 2, s_26);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 11:
+ { int m10 = z->l - z->c; (void)m10;
+ { int ret = r_R2(z);
+ if (ret == 0) goto lab15;
+ if (ret < 0) return ret;
+ }
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ goto lab14;
+ lab15:
+ z->c = z->l - m10;
+ { int ret = r_R1(z);
+ if (ret <= 0) return ret;
+ }
+ { int ret = slice_from_s(z, 3, s_27);
+ if (ret < 0) return ret;
+ }
+ }
+ lab14:
+ break;
+ case 12:
+ { int ret = r_R1(z);
+ if (ret <= 0) return ret;
+ }
+ if (out_grouping_b(z, g_v, 97, 251, 0)) return 0;
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 13:
+ { int ret = r_RV(z);
+ if (ret <= 0) return ret;
+ }
+ { int ret = slice_from_s(z, 3, s_28);
+ if (ret < 0) return ret;
+ }
+ return 0;
+ break;
+ case 14:
+ { int ret = r_RV(z);
+ if (ret <= 0) return ret;
+ }
+ { int ret = slice_from_s(z, 3, s_29);
+ if (ret < 0) return ret;
+ }
+ return 0;
+ break;
+ case 15:
+ { int m_test11 = z->l - z->c;
+ if (in_grouping_b(z, g_v, 97, 251, 0)) return 0;
+ { int ret = r_RV(z);
+ if (ret <= 0) return ret;
+ }
+ z->c = z->l - m_test11;
+ }
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ return 0;
+ break;
+ }
+ return 1;
+}
+
+static int r_i_verb_suffix(struct SN_env * z) {
+
+ { int mlimit1;
+ if (z->c < z->I[2]) return 0;
+ mlimit1 = z->lb; z->lb = z->I[2];
+ z->ket = z->c;
+ 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; }
+ if (!(find_among_b(z, a_5, 35))) { z->lb = mlimit1; return 0; }
+ z->bra = z->c;
+ { int m2 = z->l - z->c; (void)m2;
+ if (z->c <= z->lb || z->p[z->c - 1] != 'H') goto lab0;
+ 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; }
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ z->lb = mlimit1;
+ }
+ return 1;
+}
+
+static int r_verb_suffix(struct SN_env * z) {
+ int among_var;
+
+ { int mlimit1;
+ if (z->c < z->I[2]) return 0;
+ mlimit1 = z->lb; z->lb = z->I[2];
+ z->ket = z->c;
+ among_var = find_among_b(z, a_6, 38);
+ if (!(among_var)) { z->lb = mlimit1; return 0; }
+ z->bra = z->c;
+ switch (among_var) {
+ case 1:
+ { int ret = r_R2(z);
+ if (ret == 0) { z->lb = mlimit1; return 0; }
+ if (ret < 0) return ret;
+ }
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 2:
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 3:
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ { int m2 = z->l - z->c; (void)m2;
+ z->ket = z->c;
+ if (z->c <= z->lb || z->p[z->c - 1] != 'e') { z->c = z->l - m2; goto lab0; }
+ z->c--;
+ z->bra = z->c;
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ lab0:
+ ;
+ }
+ break;
+ }
+ z->lb = mlimit1;
+ }
+ return 1;
+}
+
+static int r_residual_suffix(struct SN_env * z) {
+ int among_var;
+ { int m1 = z->l - z->c; (void)m1;
+ z->ket = z->c;
+ if (z->c <= z->lb || z->p[z->c - 1] != 's') { z->c = z->l - m1; goto lab0; }
+ z->c--;
+ z->bra = z->c;
+ { int m_test2 = z->l - z->c;
+ { int m3 = z->l - z->c; (void)m3;
+ if (!(eq_s_b(z, 2, s_30))) goto lab2;
+ 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; }
+ }
+ lab1:
+ z->c = z->l - m_test2;
+ }
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ lab0:
+ ;
+ }
+
+ { int mlimit4;
+ if (z->c < z->I[2]) return 0;
+ mlimit4 = z->lb; z->lb = z->I[2];
+ z->ket = z->c;
+ 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; }
+ among_var = find_among_b(z, a_7, 6);
+ if (!(among_var)) { z->lb = mlimit4; return 0; }
+ z->bra = z->c;
+ switch (among_var) {
+ case 1:
+ { int ret = r_R2(z);
+ if (ret == 0) { z->lb = mlimit4; return 0; }
+ if (ret < 0) return ret;
+ }
+ { int m5 = z->l - z->c; (void)m5;
+ if (z->c <= z->lb || z->p[z->c - 1] != 's') goto lab4;
+ z->c--;
+ goto lab3;
+ lab4:
+ z->c = z->l - m5;
+ if (z->c <= z->lb || z->p[z->c - 1] != 't') { z->lb = mlimit4; return 0; }
+ z->c--;
+ }
+ lab3:
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 2:
+ { int ret = slice_from_s(z, 1, s_31);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 3:
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ break;
+ }
+ z->lb = mlimit4;
+ }
+ return 1;
+}
+
+static int r_un_double(struct SN_env * z) {
+ { int m_test1 = z->l - z->c;
+ if (z->c - 2 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1069056 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
+ if (!(find_among_b(z, a_8, 5))) return 0;
+ z->c = z->l - m_test1;
+ }
+ z->ket = z->c;
+ if (z->c <= z->lb) return 0;
+ z->c--;
+ z->bra = z->c;
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ return 1;
+}
+
+static int r_un_accent(struct SN_env * z) {
+ { int i = 1;
+ while(1) {
+ if (out_grouping_b(z, g_v, 97, 251, 0)) goto lab0;
+ i--;
+ continue;
+ lab0:
+ break;
+ }
+ if (i > 0) return 0;
+ }
+ z->ket = z->c;
+ { int m1 = z->l - z->c; (void)m1;
+ if (z->c <= z->lb || z->p[z->c - 1] != 0xE9) goto lab2;
+ z->c--;
+ goto lab1;
+ lab2:
+ z->c = z->l - m1;
+ if (z->c <= z->lb || z->p[z->c - 1] != 0xE8) return 0;
+ z->c--;
+ }
+lab1:
+ z->bra = z->c;
+ { int ret = slice_from_s(z, 1, s_32);
+ if (ret < 0) return ret;
+ }
+ return 1;
+}
+
+extern int french_ISO_8859_1_stem(struct SN_env * z) {
+ { int c1 = z->c;
+ { int ret = r_prelude(z);
+ if (ret < 0) return ret;
+ }
+ z->c = c1;
+ }
+
+ { int ret = r_mark_regions(z);
+ if (ret < 0) return ret;
+ }
+ z->lb = z->c; z->c = z->l;
+
+ { int m2 = z->l - z->c; (void)m2;
+ { int m3 = z->l - z->c; (void)m3;
+ { int m4 = z->l - z->c; (void)m4;
+ { int m5 = z->l - z->c; (void)m5;
+ { int ret = r_standard_suffix(z);
+ if (ret == 0) goto lab4;
+ if (ret < 0) return ret;
+ }
+ goto lab3;
+ lab4:
+ z->c = z->l - m5;
+ { int ret = r_i_verb_suffix(z);
+ if (ret == 0) goto lab5;
+ if (ret < 0) return ret;
+ }
+ goto lab3;
+ lab5:
+ z->c = z->l - m5;
+ { int ret = r_verb_suffix(z);
+ if (ret == 0) goto lab2;
+ if (ret < 0) return ret;
+ }
+ }
+ lab3:
+ z->c = z->l - m4;
+ { int m6 = z->l - z->c; (void)m6;
+ z->ket = z->c;
+ { int m7 = z->l - z->c; (void)m7;
+ if (z->c <= z->lb || z->p[z->c - 1] != 'Y') goto lab8;
+ z->c--;
+ z->bra = z->c;
+ { int ret = slice_from_s(z, 1, s_33);
+ if (ret < 0) return ret;
+ }
+ goto lab7;
+ lab8:
+ z->c = z->l - m7;
+ if (z->c <= z->lb || z->p[z->c - 1] != 0xE7) { z->c = z->l - m6; goto lab6; }
+ z->c--;
+ z->bra = z->c;
+ { int ret = slice_from_s(z, 1, s_34);
+ if (ret < 0) return ret;
+ }
+ }
+ lab7:
+ lab6:
+ ;
+ }
+ }
+ goto lab1;
+ lab2:
+ z->c = z->l - m3;
+ { int ret = r_residual_suffix(z);
+ if (ret == 0) goto lab0;
+ if (ret < 0) return ret;
+ }
+ }
+ lab1:
+ lab0:
+ z->c = z->l - m2;
+ }
+ { int m8 = z->l - z->c; (void)m8;
+ { int ret = r_un_double(z);
+ if (ret < 0) return ret;
+ }
+ z->c = z->l - m8;
+ }
+ { int m9 = z->l - z->c; (void)m9;
+ { int ret = r_un_accent(z);
+ if (ret < 0) return ret;
+ }
+ z->c = z->l - m9;
+ }
+ z->c = z->lb;
+ { int c10 = z->c;
+ { int ret = r_postlude(z);
+ if (ret < 0) return ret;
+ }
+ z->c = c10;
+ }
+ return 1;
+}
+
+extern struct SN_env * french_ISO_8859_1_create_env(void) { return SN_create_env(0, 3); }
+
+extern void french_ISO_8859_1_close_env(struct SN_env * z) { SN_close_env(z, 0); }
+
diff --git a/src/backend/snowball/libstemmer/stem_ISO_8859_1_german.c b/src/backend/snowball/libstemmer/stem_ISO_8859_1_german.c
new file mode 100644
index 0000000..c5cbd6f
--- /dev/null
+++ b/src/backend/snowball/libstemmer/stem_ISO_8859_1_german.c
@@ -0,0 +1,490 @@
+/* Generated by Snowball 2.2.0 - https://snowballstem.org/ */
+
+#include "header.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+extern int german_ISO_8859_1_stem(struct SN_env * z);
+#ifdef __cplusplus
+}
+#endif
+static int r_standard_suffix(struct SN_env * z);
+static int r_R2(struct SN_env * z);
+static int r_R1(struct SN_env * z);
+static int r_mark_regions(struct SN_env * z);
+static int r_postlude(struct SN_env * z);
+static int r_prelude(struct SN_env * z);
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+extern struct SN_env * german_ISO_8859_1_create_env(void);
+extern void german_ISO_8859_1_close_env(struct SN_env * z);
+
+
+#ifdef __cplusplus
+}
+#endif
+static const symbol s_0_1[1] = { 'U' };
+static const symbol s_0_2[1] = { 'Y' };
+static const symbol s_0_3[1] = { 0xE4 };
+static const symbol s_0_4[1] = { 0xF6 };
+static const symbol s_0_5[1] = { 0xFC };
+
+static const struct among a_0[6] =
+{
+{ 0, 0, -1, 5, 0},
+{ 1, s_0_1, 0, 2, 0},
+{ 1, s_0_2, 0, 1, 0},
+{ 1, s_0_3, 0, 3, 0},
+{ 1, s_0_4, 0, 4, 0},
+{ 1, s_0_5, 0, 2, 0}
+};
+
+static const symbol s_1_0[1] = { 'e' };
+static const symbol s_1_1[2] = { 'e', 'm' };
+static const symbol s_1_2[2] = { 'e', 'n' };
+static const symbol s_1_3[3] = { 'e', 'r', 'n' };
+static const symbol s_1_4[2] = { 'e', 'r' };
+static const symbol s_1_5[1] = { 's' };
+static const symbol s_1_6[2] = { 'e', 's' };
+
+static const struct among a_1[7] =
+{
+{ 1, s_1_0, -1, 2, 0},
+{ 2, s_1_1, -1, 1, 0},
+{ 2, s_1_2, -1, 2, 0},
+{ 3, s_1_3, -1, 1, 0},
+{ 2, s_1_4, -1, 1, 0},
+{ 1, s_1_5, -1, 3, 0},
+{ 2, s_1_6, 5, 2, 0}
+};
+
+static const symbol s_2_0[2] = { 'e', 'n' };
+static const symbol s_2_1[2] = { 'e', 'r' };
+static const symbol s_2_2[2] = { 's', 't' };
+static const symbol s_2_3[3] = { 'e', 's', 't' };
+
+static const struct among a_2[4] =
+{
+{ 2, s_2_0, -1, 1, 0},
+{ 2, s_2_1, -1, 1, 0},
+{ 2, s_2_2, -1, 2, 0},
+{ 3, s_2_3, 2, 1, 0}
+};
+
+static const symbol s_3_0[2] = { 'i', 'g' };
+static const symbol s_3_1[4] = { 'l', 'i', 'c', 'h' };
+
+static const struct among a_3[2] =
+{
+{ 2, s_3_0, -1, 1, 0},
+{ 4, s_3_1, -1, 1, 0}
+};
+
+static const symbol s_4_0[3] = { 'e', 'n', 'd' };
+static const symbol s_4_1[2] = { 'i', 'g' };
+static const symbol s_4_2[3] = { 'u', 'n', 'g' };
+static const symbol s_4_3[4] = { 'l', 'i', 'c', 'h' };
+static const symbol s_4_4[4] = { 'i', 's', 'c', 'h' };
+static const symbol s_4_5[2] = { 'i', 'k' };
+static const symbol s_4_6[4] = { 'h', 'e', 'i', 't' };
+static const symbol s_4_7[4] = { 'k', 'e', 'i', 't' };
+
+static const struct among a_4[8] =
+{
+{ 3, s_4_0, -1, 1, 0},
+{ 2, s_4_1, -1, 2, 0},
+{ 3, s_4_2, -1, 1, 0},
+{ 4, s_4_3, -1, 3, 0},
+{ 4, s_4_4, -1, 2, 0},
+{ 2, s_4_5, -1, 2, 0},
+{ 4, s_4_6, -1, 3, 0},
+{ 4, s_4_7, -1, 4, 0}
+};
+
+static const unsigned char g_v[] = { 17, 65, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 32, 8 };
+
+static const unsigned char g_s_ending[] = { 117, 30, 5 };
+
+static const unsigned char g_st_ending[] = { 117, 30, 4 };
+
+static const symbol s_0[] = { 's', 's' };
+static const symbol s_1[] = { 'U' };
+static const symbol s_2[] = { 'Y' };
+static const symbol s_3[] = { 'y' };
+static const symbol s_4[] = { 'u' };
+static const symbol s_5[] = { 'a' };
+static const symbol s_6[] = { 'o' };
+static const symbol s_7[] = { 'n', 'i', 's' };
+static const symbol s_8[] = { 'i', 'g' };
+static const symbol s_9[] = { 'e', 'r' };
+static const symbol s_10[] = { 'e', 'n' };
+
+static int r_prelude(struct SN_env * z) {
+ { int c_test1 = z->c;
+ while(1) {
+ int c2 = z->c;
+ { int c3 = z->c;
+ z->bra = z->c;
+ if (z->c == z->l || z->p[z->c] != 0xDF) goto lab2;
+ z->c++;
+ z->ket = z->c;
+ { int ret = slice_from_s(z, 2, s_0);
+ if (ret < 0) return ret;
+ }
+ goto lab1;
+ lab2:
+ z->c = c3;
+ if (z->c >= z->l) goto lab0;
+ z->c++;
+ }
+ lab1:
+ continue;
+ lab0:
+ z->c = c2;
+ break;
+ }
+ z->c = c_test1;
+ }
+ while(1) {
+ int c4 = z->c;
+ while(1) {
+ int c5 = z->c;
+ if (in_grouping(z, g_v, 97, 252, 0)) goto lab4;
+ z->bra = z->c;
+ { int c6 = z->c;
+ if (z->c == z->l || z->p[z->c] != 'u') goto lab6;
+ z->c++;
+ z->ket = z->c;
+ if (in_grouping(z, g_v, 97, 252, 0)) goto lab6;
+ { int ret = slice_from_s(z, 1, s_1);
+ if (ret < 0) return ret;
+ }
+ goto lab5;
+ lab6:
+ z->c = c6;
+ if (z->c == z->l || z->p[z->c] != 'y') goto lab4;
+ z->c++;
+ z->ket = z->c;
+ if (in_grouping(z, g_v, 97, 252, 0)) goto lab4;
+ { int ret = slice_from_s(z, 1, s_2);
+ if (ret < 0) return ret;
+ }
+ }
+ lab5:
+ z->c = c5;
+ break;
+ lab4:
+ z->c = c5;
+ if (z->c >= z->l) goto lab3;
+ z->c++;
+ }
+ continue;
+ lab3:
+ z->c = c4;
+ break;
+ }
+ return 1;
+}
+
+static int r_mark_regions(struct SN_env * z) {
+ z->I[2] = z->l;
+ z->I[1] = z->l;
+ { int c_test1 = z->c;
+z->c = z->c + 3;
+ if (z->c > z->l) return 0;
+ z->I[0] = z->c;
+ z->c = c_test1;
+ }
+ {
+ int ret = out_grouping(z, g_v, 97, 252, 1);
+ if (ret < 0) return 0;
+ z->c += ret;
+ }
+ {
+ int ret = in_grouping(z, g_v, 97, 252, 1);
+ if (ret < 0) return 0;
+ z->c += ret;
+ }
+ z->I[2] = z->c;
+
+ if (!(z->I[2] < z->I[0])) goto lab0;
+ z->I[2] = z->I[0];
+lab0:
+ {
+ int ret = out_grouping(z, g_v, 97, 252, 1);
+ if (ret < 0) return 0;
+ z->c += ret;
+ }
+ {
+ int ret = in_grouping(z, g_v, 97, 252, 1);
+ if (ret < 0) return 0;
+ z->c += ret;
+ }
+ z->I[1] = z->c;
+ return 1;
+}
+
+static int r_postlude(struct SN_env * z) {
+ int among_var;
+ while(1) {
+ int c1 = z->c;
+ z->bra = z->c;
+ among_var = find_among(z, a_0, 6);
+ if (!(among_var)) goto lab0;
+ z->ket = z->c;
+ switch (among_var) {
+ case 1:
+ { int ret = slice_from_s(z, 1, s_3);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 2:
+ { int ret = slice_from_s(z, 1, s_4);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 3:
+ { int ret = slice_from_s(z, 1, s_5);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 4:
+ { int ret = slice_from_s(z, 1, s_6);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 5:
+ if (z->c >= z->l) goto lab0;
+ z->c++;
+ break;
+ }
+ continue;
+ lab0:
+ z->c = c1;
+ break;
+ }
+ return 1;
+}
+
+static int r_R1(struct SN_env * z) {
+ if (!(z->I[2] <= z->c)) return 0;
+ return 1;
+}
+
+static int r_R2(struct SN_env * z) {
+ if (!(z->I[1] <= z->c)) return 0;
+ return 1;
+}
+
+static int r_standard_suffix(struct SN_env * z) {
+ int among_var;
+ { int m1 = z->l - z->c; (void)m1;
+ z->ket = z->c;
+ if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((811040 >> (z->p[z->c - 1] & 0x1f)) & 1)) goto lab0;
+ among_var = find_among_b(z, a_1, 7);
+ if (!(among_var)) goto lab0;
+ z->bra = z->c;
+ { int ret = r_R1(z);
+ if (ret == 0) goto lab0;
+ if (ret < 0) return ret;
+ }
+ switch (among_var) {
+ case 1:
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 2:
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ { int m2 = z->l - z->c; (void)m2;
+ z->ket = z->c;
+ if (z->c <= z->lb || z->p[z->c - 1] != 's') { z->c = z->l - m2; goto lab1; }
+ z->c--;
+ z->bra = z->c;
+ if (!(eq_s_b(z, 3, s_7))) { z->c = z->l - m2; goto lab1; }
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ lab1:
+ ;
+ }
+ break;
+ case 3:
+ if (in_grouping_b(z, g_s_ending, 98, 116, 0)) goto lab0;
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ break;
+ }
+ lab0:
+ z->c = z->l - m1;
+ }
+ { int m3 = z->l - z->c; (void)m3;
+ z->ket = z->c;
+ if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1327104 >> (z->p[z->c - 1] & 0x1f)) & 1)) goto lab2;
+ among_var = find_among_b(z, a_2, 4);
+ if (!(among_var)) goto lab2;
+ z->bra = z->c;
+ { int ret = r_R1(z);
+ if (ret == 0) goto lab2;
+ if (ret < 0) return ret;
+ }
+ switch (among_var) {
+ case 1:
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 2:
+ if (in_grouping_b(z, g_st_ending, 98, 116, 0)) goto lab2;
+z->c = z->c - 3;
+ if (z->c < z->lb) goto lab2;
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ break;
+ }
+ lab2:
+ z->c = z->l - m3;
+ }
+ { int m4 = z->l - z->c; (void)m4;
+ z->ket = z->c;
+ if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1051024 >> (z->p[z->c - 1] & 0x1f)) & 1)) goto lab3;
+ among_var = find_among_b(z, a_4, 8);
+ if (!(among_var)) goto lab3;
+ z->bra = z->c;
+ { int ret = r_R2(z);
+ if (ret == 0) goto lab3;
+ if (ret < 0) return ret;
+ }
+ switch (among_var) {
+ case 1:
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ { int m5 = z->l - z->c; (void)m5;
+ z->ket = z->c;
+ if (!(eq_s_b(z, 2, s_8))) { z->c = z->l - m5; goto lab4; }
+ z->bra = z->c;
+ { int m6 = z->l - z->c; (void)m6;
+ if (z->c <= z->lb || z->p[z->c - 1] != 'e') goto lab5;
+ z->c--;
+ { z->c = z->l - m5; goto lab4; }
+ lab5:
+ z->c = z->l - m6;
+ }
+ { int ret = r_R2(z);
+ if (ret == 0) { z->c = z->l - m5; goto lab4; }
+ if (ret < 0) return ret;
+ }
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ lab4:
+ ;
+ }
+ break;
+ case 2:
+ { int m7 = z->l - z->c; (void)m7;
+ if (z->c <= z->lb || z->p[z->c - 1] != 'e') goto lab6;
+ z->c--;
+ goto lab3;
+ lab6:
+ z->c = z->l - m7;
+ }
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 3:
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ { int m8 = z->l - z->c; (void)m8;
+ z->ket = z->c;
+ { int m9 = z->l - z->c; (void)m9;
+ if (!(eq_s_b(z, 2, s_9))) goto lab9;
+ goto lab8;
+ lab9:
+ z->c = z->l - m9;
+ if (!(eq_s_b(z, 2, s_10))) { z->c = z->l - m8; goto lab7; }
+ }
+ lab8:
+ z->bra = z->c;
+ { int ret = r_R1(z);
+ if (ret == 0) { z->c = z->l - m8; goto lab7; }
+ if (ret < 0) return ret;
+ }
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ lab7:
+ ;
+ }
+ break;
+ case 4:
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ { int m10 = z->l - z->c; (void)m10;
+ z->ket = z->c;
+ if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 103 && z->p[z->c - 1] != 104)) { z->c = z->l - m10; goto lab10; }
+ if (!(find_among_b(z, a_3, 2))) { z->c = z->l - m10; goto lab10; }
+ z->bra = z->c;
+ { int ret = r_R2(z);
+ if (ret == 0) { z->c = z->l - m10; goto lab10; }
+ if (ret < 0) return ret;
+ }
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ lab10:
+ ;
+ }
+ break;
+ }
+ lab3:
+ z->c = z->l - m4;
+ }
+ return 1;
+}
+
+extern int german_ISO_8859_1_stem(struct SN_env * z) {
+ { int c1 = z->c;
+ { int ret = r_prelude(z);
+ if (ret < 0) return ret;
+ }
+ z->c = c1;
+ }
+ { int c2 = z->c;
+ { int ret = r_mark_regions(z);
+ if (ret < 0) return ret;
+ }
+ z->c = c2;
+ }
+ z->lb = z->c; z->c = z->l;
+
+
+ { int ret = r_standard_suffix(z);
+ if (ret < 0) return ret;
+ }
+ z->c = z->lb;
+ { int c3 = z->c;
+ { int ret = r_postlude(z);
+ if (ret < 0) return ret;
+ }
+ z->c = c3;
+ }
+ return 1;
+}
+
+extern struct SN_env * german_ISO_8859_1_create_env(void) { return SN_create_env(0, 3); }
+
+extern void german_ISO_8859_1_close_env(struct SN_env * z) { SN_close_env(z, 0); }
+
diff --git a/src/backend/snowball/libstemmer/stem_ISO_8859_1_indonesian.c b/src/backend/snowball/libstemmer/stem_ISO_8859_1_indonesian.c
new file mode 100644
index 0000000..f653ee4
--- /dev/null
+++ b/src/backend/snowball/libstemmer/stem_ISO_8859_1_indonesian.c
@@ -0,0 +1,407 @@
+/* Generated by Snowball 2.2.0 - https://snowballstem.org/ */
+
+#include "header.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+extern int indonesian_ISO_8859_1_stem(struct SN_env * z);
+#ifdef __cplusplus
+}
+#endif
+static int r_VOWEL(struct SN_env * z);
+static int r_SUFFIX_I_OK(struct SN_env * z);
+static int r_SUFFIX_AN_OK(struct SN_env * z);
+static int r_SUFFIX_KAN_OK(struct SN_env * z);
+static int r_KER(struct SN_env * z);
+static int r_remove_suffix(struct SN_env * z);
+static int r_remove_second_order_prefix(struct SN_env * z);
+static int r_remove_first_order_prefix(struct SN_env * z);
+static int r_remove_possessive_pronoun(struct SN_env * z);
+static int r_remove_particle(struct SN_env * z);
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+extern struct SN_env * indonesian_ISO_8859_1_create_env(void);
+extern void indonesian_ISO_8859_1_close_env(struct SN_env * z);
+
+
+#ifdef __cplusplus
+}
+#endif
+static const symbol s_0_0[3] = { 'k', 'a', 'h' };
+static const symbol s_0_1[3] = { 'l', 'a', 'h' };
+static const symbol s_0_2[3] = { 'p', 'u', 'n' };
+
+static const struct among a_0[3] =
+{
+{ 3, s_0_0, -1, 1, 0},
+{ 3, s_0_1, -1, 1, 0},
+{ 3, s_0_2, -1, 1, 0}
+};
+
+static const symbol s_1_0[3] = { 'n', 'y', 'a' };
+static const symbol s_1_1[2] = { 'k', 'u' };
+static const symbol s_1_2[2] = { 'm', 'u' };
+
+static const struct among a_1[3] =
+{
+{ 3, s_1_0, -1, 1, 0},
+{ 2, s_1_1, -1, 1, 0},
+{ 2, s_1_2, -1, 1, 0}
+};
+
+static const symbol s_2_0[1] = { 'i' };
+static const symbol s_2_1[2] = { 'a', 'n' };
+static const symbol s_2_2[3] = { 'k', 'a', 'n' };
+
+static const struct among a_2[3] =
+{
+{ 1, s_2_0, -1, 1, r_SUFFIX_I_OK},
+{ 2, s_2_1, -1, 1, r_SUFFIX_AN_OK},
+{ 3, s_2_2, 1, 1, r_SUFFIX_KAN_OK}
+};
+
+static const symbol s_3_0[2] = { 'd', 'i' };
+static const symbol s_3_1[2] = { 'k', 'e' };
+static const symbol s_3_2[2] = { 'm', 'e' };
+static const symbol s_3_3[3] = { 'm', 'e', 'm' };
+static const symbol s_3_4[3] = { 'm', 'e', 'n' };
+static const symbol s_3_5[4] = { 'm', 'e', 'n', 'g' };
+static const symbol s_3_6[4] = { 'm', 'e', 'n', 'y' };
+static const symbol s_3_7[3] = { 'p', 'e', 'm' };
+static const symbol s_3_8[3] = { 'p', 'e', 'n' };
+static const symbol s_3_9[4] = { 'p', 'e', 'n', 'g' };
+static const symbol s_3_10[4] = { 'p', 'e', 'n', 'y' };
+static const symbol s_3_11[3] = { 't', 'e', 'r' };
+
+static const struct among a_3[12] =
+{
+{ 2, s_3_0, -1, 1, 0},
+{ 2, s_3_1, -1, 2, 0},
+{ 2, s_3_2, -1, 1, 0},
+{ 3, s_3_3, 2, 5, 0},
+{ 3, s_3_4, 2, 1, 0},
+{ 4, s_3_5, 4, 1, 0},
+{ 4, s_3_6, 4, 3, r_VOWEL},
+{ 3, s_3_7, -1, 6, 0},
+{ 3, s_3_8, -1, 2, 0},
+{ 4, s_3_9, 8, 2, 0},
+{ 4, s_3_10, 8, 4, r_VOWEL},
+{ 3, s_3_11, -1, 1, 0}
+};
+
+static const symbol s_4_0[2] = { 'b', 'e' };
+static const symbol s_4_1[7] = { 'b', 'e', 'l', 'a', 'j', 'a', 'r' };
+static const symbol s_4_2[3] = { 'b', 'e', 'r' };
+static const symbol s_4_3[2] = { 'p', 'e' };
+static const symbol s_4_4[7] = { 'p', 'e', 'l', 'a', 'j', 'a', 'r' };
+static const symbol s_4_5[3] = { 'p', 'e', 'r' };
+
+static const struct among a_4[6] =
+{
+{ 2, s_4_0, -1, 3, r_KER},
+{ 7, s_4_1, 0, 4, 0},
+{ 3, s_4_2, 0, 3, 0},
+{ 2, s_4_3, -1, 1, 0},
+{ 7, s_4_4, 3, 2, 0},
+{ 3, s_4_5, 3, 1, 0}
+};
+
+static const unsigned char g_vowel[] = { 17, 65, 16 };
+
+static const symbol s_0[] = { 'e', 'r' };
+static const symbol s_1[] = { 's' };
+static const symbol s_2[] = { 's' };
+static const symbol s_3[] = { 'p' };
+static const symbol s_4[] = { 'p' };
+static const symbol s_5[] = { 'a', 'j', 'a', 'r' };
+static const symbol s_6[] = { 'a', 'j', 'a', 'r' };
+
+static int r_remove_particle(struct SN_env * z) {
+ z->ket = z->c;
+ if (z->c - 2 <= z->lb || (z->p[z->c - 1] != 104 && z->p[z->c - 1] != 110)) return 0;
+ if (!(find_among_b(z, a_0, 3))) return 0;
+ z->bra = z->c;
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ z->I[1] -= 1;
+ return 1;
+}
+
+static int r_remove_possessive_pronoun(struct SN_env * z) {
+ z->ket = z->c;
+ if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 97 && z->p[z->c - 1] != 117)) return 0;
+ if (!(find_among_b(z, a_1, 3))) return 0;
+ z->bra = z->c;
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ z->I[1] -= 1;
+ return 1;
+}
+
+static int r_SUFFIX_KAN_OK(struct SN_env * z) {
+
+ if (!(z->I[0] != 3)) return 0;
+ if (!(z->I[0] != 2)) return 0;
+ return 1;
+}
+
+static int r_SUFFIX_AN_OK(struct SN_env * z) {
+ if (!(z->I[0] != 1)) return 0;
+ return 1;
+}
+
+static int r_SUFFIX_I_OK(struct SN_env * z) {
+ if (!(z->I[0] <= 2)) return 0;
+ { int m1 = z->l - z->c; (void)m1;
+ if (z->c <= z->lb || z->p[z->c - 1] != 's') goto lab0;
+ z->c--;
+ return 0;
+ lab0:
+ z->c = z->l - m1;
+ }
+ return 1;
+}
+
+static int r_remove_suffix(struct SN_env * z) {
+ z->ket = z->c;
+ if (z->c <= z->lb || (z->p[z->c - 1] != 105 && z->p[z->c - 1] != 110)) return 0;
+ if (!(find_among_b(z, a_2, 3))) return 0;
+ z->bra = z->c;
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ z->I[1] -= 1;
+ return 1;
+}
+
+static int r_VOWEL(struct SN_env * z) {
+ if (in_grouping(z, g_vowel, 97, 117, 0)) return 0;
+ return 1;
+}
+
+static int r_KER(struct SN_env * z) {
+ if (out_grouping(z, g_vowel, 97, 117, 0)) return 0;
+ if (!(eq_s(z, 2, s_0))) return 0;
+ return 1;
+}
+
+static int r_remove_first_order_prefix(struct SN_env * z) {
+ int among_var;
+ z->bra = z->c;
+ if (z->c + 1 >= z->l || (z->p[z->c + 1] != 105 && z->p[z->c + 1] != 101)) return 0;
+ among_var = find_among(z, a_3, 12);
+ if (!(among_var)) return 0;
+ z->ket = z->c;
+ switch (among_var) {
+ case 1:
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ z->I[0] = 1;
+ z->I[1] -= 1;
+ break;
+ case 2:
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ z->I[0] = 3;
+ z->I[1] -= 1;
+ break;
+ case 3:
+ z->I[0] = 1;
+ { int ret = slice_from_s(z, 1, s_1);
+ if (ret < 0) return ret;
+ }
+ z->I[1] -= 1;
+ break;
+ case 4:
+ z->I[0] = 3;
+ { int ret = slice_from_s(z, 1, s_2);
+ if (ret < 0) return ret;
+ }
+ z->I[1] -= 1;
+ break;
+ case 5:
+ z->I[0] = 1;
+ z->I[1] -= 1;
+ { int c1 = z->c;
+ { int c2 = z->c;
+ if (in_grouping(z, g_vowel, 97, 117, 0)) goto lab1;
+ z->c = c2;
+ { int ret = slice_from_s(z, 1, s_3);
+ if (ret < 0) return ret;
+ }
+ }
+ goto lab0;
+ lab1:
+ z->c = c1;
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ }
+ lab0:
+ break;
+ case 6:
+ z->I[0] = 3;
+ z->I[1] -= 1;
+ { int c3 = z->c;
+ { int c4 = z->c;
+ if (in_grouping(z, g_vowel, 97, 117, 0)) goto lab3;
+ z->c = c4;
+ { int ret = slice_from_s(z, 1, s_4);
+ if (ret < 0) return ret;
+ }
+ }
+ goto lab2;
+ lab3:
+ z->c = c3;
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ }
+ lab2:
+ break;
+ }
+ return 1;
+}
+
+static int r_remove_second_order_prefix(struct SN_env * z) {
+ int among_var;
+ z->bra = z->c;
+ if (z->c + 1 >= z->l || z->p[z->c + 1] != 101) return 0;
+ among_var = find_among(z, a_4, 6);
+ if (!(among_var)) return 0;
+ z->ket = z->c;
+ switch (among_var) {
+ case 1:
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ z->I[0] = 2;
+ z->I[1] -= 1;
+ break;
+ case 2:
+ { int ret = slice_from_s(z, 4, s_5);
+ if (ret < 0) return ret;
+ }
+ z->I[1] -= 1;
+ break;
+ case 3:
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ z->I[0] = 4;
+ z->I[1] -= 1;
+ break;
+ case 4:
+ { int ret = slice_from_s(z, 4, s_6);
+ if (ret < 0) return ret;
+ }
+ z->I[0] = 4;
+ z->I[1] -= 1;
+ break;
+ }
+ return 1;
+}
+
+extern int indonesian_ISO_8859_1_stem(struct SN_env * z) {
+ z->I[1] = 0;
+ { int c1 = z->c;
+ while(1) {
+ int c2 = z->c;
+ {
+ int ret = out_grouping(z, g_vowel, 97, 117, 1);
+ if (ret < 0) goto lab1;
+ z->c += ret;
+ }
+ z->I[1] += 1;
+ continue;
+ lab1:
+ z->c = c2;
+ break;
+ }
+ z->c = c1;
+ }
+ if (!(z->I[1] > 2)) return 0;
+ z->I[0] = 0;
+ z->lb = z->c; z->c = z->l;
+
+ { int m3 = z->l - z->c; (void)m3;
+ { int ret = r_remove_particle(z);
+ if (ret < 0) return ret;
+ }
+ z->c = z->l - m3;
+ }
+ if (!(z->I[1] > 2)) return 0;
+ { int m4 = z->l - z->c; (void)m4;
+ { int ret = r_remove_possessive_pronoun(z);
+ if (ret < 0) return ret;
+ }
+ z->c = z->l - m4;
+ }
+ z->c = z->lb;
+ if (!(z->I[1] > 2)) return 0;
+ { int c5 = z->c;
+ { int c_test6 = z->c;
+ { int ret = r_remove_first_order_prefix(z);
+ if (ret == 0) goto lab3;
+ if (ret < 0) return ret;
+ }
+ { int c7 = z->c;
+ { int c_test8 = z->c;
+ if (!(z->I[1] > 2)) goto lab4;
+ z->lb = z->c; z->c = z->l;
+
+ { int ret = r_remove_suffix(z);
+ if (ret == 0) goto lab4;
+ if (ret < 0) return ret;
+ }
+ z->c = z->lb;
+ z->c = c_test8;
+ }
+ if (!(z->I[1] > 2)) goto lab4;
+ { int ret = r_remove_second_order_prefix(z);
+ if (ret == 0) goto lab4;
+ if (ret < 0) return ret;
+ }
+ lab4:
+ z->c = c7;
+ }
+ z->c = c_test6;
+ }
+ goto lab2;
+ lab3:
+ z->c = c5;
+ { int c9 = z->c;
+ { int ret = r_remove_second_order_prefix(z);
+ if (ret < 0) return ret;
+ }
+ z->c = c9;
+ }
+ { int c10 = z->c;
+ if (!(z->I[1] > 2)) goto lab5;
+ z->lb = z->c; z->c = z->l;
+
+ { int ret = r_remove_suffix(z);
+ if (ret == 0) goto lab5;
+ if (ret < 0) return ret;
+ }
+ z->c = z->lb;
+ lab5:
+ z->c = c10;
+ }
+ }
+lab2:
+ return 1;
+}
+
+extern struct SN_env * indonesian_ISO_8859_1_create_env(void) { return SN_create_env(0, 2); }
+
+extern void indonesian_ISO_8859_1_close_env(struct SN_env * z) { SN_close_env(z, 0); }
+
diff --git a/src/backend/snowball/libstemmer/stem_ISO_8859_1_irish.c b/src/backend/snowball/libstemmer/stem_ISO_8859_1_irish.c
new file mode 100644
index 0000000..c93d321
--- /dev/null
+++ b/src/backend/snowball/libstemmer/stem_ISO_8859_1_irish.c
@@ -0,0 +1,470 @@
+/* Generated by Snowball 2.2.0 - https://snowballstem.org/ */
+
+#include "header.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+extern int irish_ISO_8859_1_stem(struct SN_env * z);
+#ifdef __cplusplus
+}
+#endif
+static int r_verb_sfx(struct SN_env * z);
+static int r_deriv(struct SN_env * z);
+static int r_noun_sfx(struct SN_env * z);
+static int r_mark_regions(struct SN_env * z);
+static int r_initial_morph(struct SN_env * z);
+static int r_RV(struct SN_env * z);
+static int r_R2(struct SN_env * z);
+static int r_R1(struct SN_env * z);
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+extern struct SN_env * irish_ISO_8859_1_create_env(void);
+extern void irish_ISO_8859_1_close_env(struct SN_env * z);
+
+
+#ifdef __cplusplus
+}
+#endif
+static const symbol s_0_0[2] = { 'b', '\'' };
+static const symbol s_0_1[2] = { 'b', 'h' };
+static const symbol s_0_2[3] = { 'b', 'h', 'f' };
+static const symbol s_0_3[2] = { 'b', 'p' };
+static const symbol s_0_4[2] = { 'c', 'h' };
+static const symbol s_0_5[2] = { 'd', '\'' };
+static const symbol s_0_6[4] = { 'd', '\'', 'f', 'h' };
+static const symbol s_0_7[2] = { 'd', 'h' };
+static const symbol s_0_8[2] = { 'd', 't' };
+static const symbol s_0_9[2] = { 'f', 'h' };
+static const symbol s_0_10[2] = { 'g', 'c' };
+static const symbol s_0_11[2] = { 'g', 'h' };
+static const symbol s_0_12[2] = { 'h', '-' };
+static const symbol s_0_13[2] = { 'm', '\'' };
+static const symbol s_0_14[2] = { 'm', 'b' };
+static const symbol s_0_15[2] = { 'm', 'h' };
+static const symbol s_0_16[2] = { 'n', '-' };
+static const symbol s_0_17[2] = { 'n', 'd' };
+static const symbol s_0_18[2] = { 'n', 'g' };
+static const symbol s_0_19[2] = { 'p', 'h' };
+static const symbol s_0_20[2] = { 's', 'h' };
+static const symbol s_0_21[2] = { 't', '-' };
+static const symbol s_0_22[2] = { 't', 'h' };
+static const symbol s_0_23[2] = { 't', 's' };
+
+static const struct among a_0[24] =
+{
+{ 2, s_0_0, -1, 1, 0},
+{ 2, s_0_1, -1, 4, 0},
+{ 3, s_0_2, 1, 2, 0},
+{ 2, s_0_3, -1, 8, 0},
+{ 2, s_0_4, -1, 5, 0},
+{ 2, s_0_5, -1, 1, 0},
+{ 4, s_0_6, 5, 2, 0},
+{ 2, s_0_7, -1, 6, 0},
+{ 2, s_0_8, -1, 9, 0},
+{ 2, s_0_9, -1, 2, 0},
+{ 2, s_0_10, -1, 5, 0},
+{ 2, s_0_11, -1, 7, 0},
+{ 2, s_0_12, -1, 1, 0},
+{ 2, s_0_13, -1, 1, 0},
+{ 2, s_0_14, -1, 4, 0},
+{ 2, s_0_15, -1, 10, 0},
+{ 2, s_0_16, -1, 1, 0},
+{ 2, s_0_17, -1, 6, 0},
+{ 2, s_0_18, -1, 7, 0},
+{ 2, s_0_19, -1, 8, 0},
+{ 2, s_0_20, -1, 3, 0},
+{ 2, s_0_21, -1, 1, 0},
+{ 2, s_0_22, -1, 9, 0},
+{ 2, s_0_23, -1, 3, 0}
+};
+
+static const symbol s_1_0[6] = { 0xED, 'o', 'c', 'h', 't', 'a' };
+static const symbol s_1_1[7] = { 'a', 0xED, 'o', 'c', 'h', 't', 'a' };
+static const symbol s_1_2[3] = { 'i', 'r', 'e' };
+static const symbol s_1_3[4] = { 'a', 'i', 'r', 'e' };
+static const symbol s_1_4[3] = { 'a', 'b', 'h' };
+static const symbol s_1_5[4] = { 'e', 'a', 'b', 'h' };
+static const symbol s_1_6[3] = { 'i', 'b', 'h' };
+static const symbol s_1_7[4] = { 'a', 'i', 'b', 'h' };
+static const symbol s_1_8[3] = { 'a', 'm', 'h' };
+static const symbol s_1_9[4] = { 'e', 'a', 'm', 'h' };
+static const symbol s_1_10[3] = { 'i', 'm', 'h' };
+static const symbol s_1_11[4] = { 'a', 'i', 'm', 'h' };
+static const symbol s_1_12[5] = { 0xED, 'o', 'c', 'h', 't' };
+static const symbol s_1_13[6] = { 'a', 0xED, 'o', 'c', 'h', 't' };
+static const symbol s_1_14[3] = { 'i', 'r', 0xED };
+static const symbol s_1_15[4] = { 'a', 'i', 'r', 0xED };
+
+static const struct among a_1[16] =
+{
+{ 6, s_1_0, -1, 1, 0},
+{ 7, s_1_1, 0, 1, 0},
+{ 3, s_1_2, -1, 2, 0},
+{ 4, s_1_3, 2, 2, 0},
+{ 3, s_1_4, -1, 1, 0},
+{ 4, s_1_5, 4, 1, 0},
+{ 3, s_1_6, -1, 1, 0},
+{ 4, s_1_7, 6, 1, 0},
+{ 3, s_1_8, -1, 1, 0},
+{ 4, s_1_9, 8, 1, 0},
+{ 3, s_1_10, -1, 1, 0},
+{ 4, s_1_11, 10, 1, 0},
+{ 5, s_1_12, -1, 1, 0},
+{ 6, s_1_13, 12, 1, 0},
+{ 3, s_1_14, -1, 2, 0},
+{ 4, s_1_15, 14, 2, 0}
+};
+
+static const symbol s_2_0[8] = { 0xF3, 'i', 'd', 'e', 'a', 'c', 'h', 'a' };
+static const symbol s_2_1[7] = { 'p', 'a', 't', 'a', 'c', 'h', 'a' };
+static const symbol s_2_2[5] = { 'a', 'c', 'h', 't', 'a' };
+static const symbol s_2_3[8] = { 'a', 'r', 'c', 'a', 'c', 'h', 't', 'a' };
+static const symbol s_2_4[6] = { 'e', 'a', 'c', 'h', 't', 'a' };
+static const symbol s_2_5[11] = { 'g', 'r', 'a', 'f', 'a', 0xED, 'o', 'c', 'h', 't', 'a' };
+static const symbol s_2_6[5] = { 'p', 'a', 'i', 't', 'e' };
+static const symbol s_2_7[3] = { 'a', 'c', 'h' };
+static const symbol s_2_8[4] = { 'e', 'a', 'c', 'h' };
+static const symbol s_2_9[7] = { 0xF3, 'i', 'd', 'e', 'a', 'c', 'h' };
+static const symbol s_2_10[7] = { 'g', 'i', 'n', 'e', 'a', 'c', 'h' };
+static const symbol s_2_11[6] = { 'p', 'a', 't', 'a', 'c', 'h' };
+static const symbol s_2_12[9] = { 'g', 'r', 'a', 'f', 'a', 0xED, 'o', 'c', 'h' };
+static const symbol s_2_13[7] = { 'p', 'a', 't', 'a', 'i', 'g', 'h' };
+static const symbol s_2_14[6] = { 0xF3, 'i', 'd', 'i', 'g', 'h' };
+static const symbol s_2_15[7] = { 'a', 'c', 'h', 't', 0xFA, 'i', 'l' };
+static const symbol s_2_16[8] = { 'e', 'a', 'c', 'h', 't', 0xFA, 'i', 'l' };
+static const symbol s_2_17[6] = { 'g', 'i', 'n', 'e', 'a', 's' };
+static const symbol s_2_18[5] = { 'g', 'i', 'n', 'i', 's' };
+static const symbol s_2_19[4] = { 'a', 'c', 'h', 't' };
+static const symbol s_2_20[7] = { 'a', 'r', 'c', 'a', 'c', 'h', 't' };
+static const symbol s_2_21[5] = { 'e', 'a', 'c', 'h', 't' };
+static const symbol s_2_22[10] = { 'g', 'r', 'a', 'f', 'a', 0xED, 'o', 'c', 'h', 't' };
+static const symbol s_2_23[9] = { 'a', 'r', 'c', 'a', 'c', 'h', 't', 'a', 0xED };
+static const symbol s_2_24[12] = { 'g', 'r', 'a', 'f', 'a', 0xED, 'o', 'c', 'h', 't', 'a', 0xED };
+
+static const struct among a_2[25] =
+{
+{ 8, s_2_0, -1, 6, 0},
+{ 7, s_2_1, -1, 5, 0},
+{ 5, s_2_2, -1, 1, 0},
+{ 8, s_2_3, 2, 2, 0},
+{ 6, s_2_4, 2, 1, 0},
+{ 11, s_2_5, -1, 4, 0},
+{ 5, s_2_6, -1, 5, 0},
+{ 3, s_2_7, -1, 1, 0},
+{ 4, s_2_8, 7, 1, 0},
+{ 7, s_2_9, 8, 6, 0},
+{ 7, s_2_10, 8, 3, 0},
+{ 6, s_2_11, 7, 5, 0},
+{ 9, s_2_12, -1, 4, 0},
+{ 7, s_2_13, -1, 5, 0},
+{ 6, s_2_14, -1, 6, 0},
+{ 7, s_2_15, -1, 1, 0},
+{ 8, s_2_16, 15, 1, 0},
+{ 6, s_2_17, -1, 3, 0},
+{ 5, s_2_18, -1, 3, 0},
+{ 4, s_2_19, -1, 1, 0},
+{ 7, s_2_20, 19, 2, 0},
+{ 5, s_2_21, 19, 1, 0},
+{ 10, s_2_22, -1, 4, 0},
+{ 9, s_2_23, -1, 2, 0},
+{ 12, s_2_24, -1, 4, 0}
+};
+
+static const symbol s_3_0[4] = { 'i', 'm', 'i', 'd' };
+static const symbol s_3_1[5] = { 'a', 'i', 'm', 'i', 'd' };
+static const symbol s_3_2[4] = { 0xED, 'm', 'i', 'd' };
+static const symbol s_3_3[5] = { 'a', 0xED, 'm', 'i', 'd' };
+static const symbol s_3_4[3] = { 'a', 'd', 'h' };
+static const symbol s_3_5[4] = { 'e', 'a', 'd', 'h' };
+static const symbol s_3_6[5] = { 'f', 'a', 'i', 'd', 'h' };
+static const symbol s_3_7[4] = { 'f', 'i', 'd', 'h' };
+static const symbol s_3_8[3] = { 0xE1, 'i', 'l' };
+static const symbol s_3_9[3] = { 'a', 'i', 'n' };
+static const symbol s_3_10[4] = { 't', 'e', 'a', 'r' };
+static const symbol s_3_11[3] = { 't', 'a', 'r' };
+
+static const struct among a_3[12] =
+{
+{ 4, s_3_0, -1, 1, 0},
+{ 5, s_3_1, 0, 1, 0},
+{ 4, s_3_2, -1, 1, 0},
+{ 5, s_3_3, 2, 1, 0},
+{ 3, s_3_4, -1, 2, 0},
+{ 4, s_3_5, 4, 2, 0},
+{ 5, s_3_6, -1, 1, 0},
+{ 4, s_3_7, -1, 1, 0},
+{ 3, s_3_8, -1, 2, 0},
+{ 3, s_3_9, -1, 2, 0},
+{ 4, s_3_10, -1, 2, 0},
+{ 3, s_3_11, -1, 2, 0}
+};
+
+static const unsigned char g_v[] = { 17, 65, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 17, 4, 2 };
+
+static const symbol s_0[] = { 'f' };
+static const symbol s_1[] = { 's' };
+static const symbol s_2[] = { 'b' };
+static const symbol s_3[] = { 'c' };
+static const symbol s_4[] = { 'd' };
+static const symbol s_5[] = { 'g' };
+static const symbol s_6[] = { 'p' };
+static const symbol s_7[] = { 't' };
+static const symbol s_8[] = { 'm' };
+static const symbol s_9[] = { 'a', 'r', 'c' };
+static const symbol s_10[] = { 'g', 'i', 'n' };
+static const symbol s_11[] = { 'g', 'r', 'a', 'f' };
+static const symbol s_12[] = { 'p', 'a', 'i', 't', 'e' };
+static const symbol s_13[] = { 0xF3, 'i', 'd' };
+
+static int r_mark_regions(struct SN_env * z) {
+ z->I[2] = z->l;
+ z->I[1] = z->l;
+ z->I[0] = z->l;
+ { int c1 = z->c;
+ {
+ int ret = out_grouping(z, g_v, 97, 250, 1);
+ if (ret < 0) goto lab0;
+ z->c += ret;
+ }
+ z->I[2] = z->c;
+ {
+ int ret = in_grouping(z, g_v, 97, 250, 1);
+ if (ret < 0) goto lab0;
+ z->c += ret;
+ }
+ z->I[1] = z->c;
+ {
+ int ret = out_grouping(z, g_v, 97, 250, 1);
+ if (ret < 0) goto lab0;
+ z->c += ret;
+ }
+ {
+ int ret = in_grouping(z, g_v, 97, 250, 1);
+ if (ret < 0) goto lab0;
+ z->c += ret;
+ }
+ z->I[0] = z->c;
+ lab0:
+ z->c = c1;
+ }
+ return 1;
+}
+
+static int r_initial_morph(struct SN_env * z) {
+ int among_var;
+ z->bra = z->c;
+ among_var = find_among(z, a_0, 24);
+ if (!(among_var)) return 0;
+ z->ket = z->c;
+ switch (among_var) {
+ case 1:
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 2:
+ { int ret = slice_from_s(z, 1, s_0);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 3:
+ { int ret = slice_from_s(z, 1, s_1);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 4:
+ { int ret = slice_from_s(z, 1, s_2);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 5:
+ { int ret = slice_from_s(z, 1, s_3);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 6:
+ { int ret = slice_from_s(z, 1, s_4);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 7:
+ { int ret = slice_from_s(z, 1, s_5);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 8:
+ { int ret = slice_from_s(z, 1, s_6);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 9:
+ { int ret = slice_from_s(z, 1, s_7);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 10:
+ { int ret = slice_from_s(z, 1, s_8);
+ if (ret < 0) return ret;
+ }
+ break;
+ }
+ return 1;
+}
+
+static int r_RV(struct SN_env * z) {
+ if (!(z->I[2] <= z->c)) return 0;
+ return 1;
+}
+
+static int r_R1(struct SN_env * z) {
+ if (!(z->I[1] <= z->c)) return 0;
+ return 1;
+}
+
+static int r_R2(struct SN_env * z) {
+ if (!(z->I[0] <= z->c)) return 0;
+ return 1;
+}
+
+static int r_noun_sfx(struct SN_env * z) {
+ int among_var;
+ z->ket = z->c;
+ among_var = find_among_b(z, a_1, 16);
+ if (!(among_var)) return 0;
+ z->bra = z->c;
+ switch (among_var) {
+ case 1:
+ { int ret = r_R1(z);
+ if (ret <= 0) return ret;
+ }
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 2:
+ { int ret = r_R2(z);
+ if (ret <= 0) return ret;
+ }
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ break;
+ }
+ return 1;
+}
+
+static int r_deriv(struct SN_env * z) {
+ int among_var;
+ z->ket = z->c;
+ among_var = find_among_b(z, a_2, 25);
+ if (!(among_var)) return 0;
+ z->bra = z->c;
+ switch (among_var) {
+ case 1:
+ { int ret = r_R2(z);
+ if (ret <= 0) return ret;
+ }
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 2:
+ { int ret = slice_from_s(z, 3, s_9);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 3:
+ { int ret = slice_from_s(z, 3, s_10);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 4:
+ { int ret = slice_from_s(z, 4, s_11);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 5:
+ { int ret = slice_from_s(z, 5, s_12);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 6:
+ { int ret = slice_from_s(z, 3, s_13);
+ if (ret < 0) return ret;
+ }
+ break;
+ }
+ return 1;
+}
+
+static int r_verb_sfx(struct SN_env * z) {
+ int among_var;
+ z->ket = z->c;
+ if (z->c - 2 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((282896 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
+ among_var = find_among_b(z, a_3, 12);
+ if (!(among_var)) return 0;
+ z->bra = z->c;
+ switch (among_var) {
+ case 1:
+ { int ret = r_RV(z);
+ if (ret <= 0) return ret;
+ }
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 2:
+ { int ret = r_R1(z);
+ if (ret <= 0) return ret;
+ }
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ break;
+ }
+ return 1;
+}
+
+extern int irish_ISO_8859_1_stem(struct SN_env * z) {
+ { int c1 = z->c;
+ { int ret = r_initial_morph(z);
+ if (ret < 0) return ret;
+ }
+ z->c = c1;
+ }
+
+ { int ret = r_mark_regions(z);
+ if (ret < 0) return ret;
+ }
+ z->lb = z->c; z->c = z->l;
+
+ { int m2 = z->l - z->c; (void)m2;
+ { int ret = r_noun_sfx(z);
+ if (ret < 0) return ret;
+ }
+ z->c = z->l - m2;
+ }
+ { int m3 = z->l - z->c; (void)m3;
+ { int ret = r_deriv(z);
+ if (ret < 0) return ret;
+ }
+ z->c = z->l - m3;
+ }
+ { int m4 = z->l - z->c; (void)m4;
+ { int ret = r_verb_sfx(z);
+ if (ret < 0) return ret;
+ }
+ z->c = z->l - m4;
+ }
+ z->c = z->lb;
+ return 1;
+}
+
+extern struct SN_env * irish_ISO_8859_1_create_env(void) { return SN_create_env(0, 3); }
+
+extern void irish_ISO_8859_1_close_env(struct SN_env * z) { SN_close_env(z, 0); }
+
diff --git a/src/backend/snowball/libstemmer/stem_ISO_8859_1_italian.c b/src/backend/snowball/libstemmer/stem_ISO_8859_1_italian.c
new file mode 100644
index 0000000..7e9f650
--- /dev/null
+++ b/src/backend/snowball/libstemmer/stem_ISO_8859_1_italian.c
@@ -0,0 +1,1022 @@
+/* Generated by Snowball 2.2.0 - https://snowballstem.org/ */
+
+#include "header.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+extern int italian_ISO_8859_1_stem(struct SN_env * z);
+#ifdef __cplusplus
+}
+#endif
+static int r_vowel_suffix(struct SN_env * z);
+static int r_verb_suffix(struct SN_env * z);
+static int r_standard_suffix(struct SN_env * z);
+static int r_attached_pronoun(struct SN_env * z);
+static int r_R2(struct SN_env * z);
+static int r_R1(struct SN_env * z);
+static int r_RV(struct SN_env * z);
+static int r_mark_regions(struct SN_env * z);
+static int r_postlude(struct SN_env * z);
+static int r_prelude(struct SN_env * z);
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+extern struct SN_env * italian_ISO_8859_1_create_env(void);
+extern void italian_ISO_8859_1_close_env(struct SN_env * z);
+
+
+#ifdef __cplusplus
+}
+#endif
+static const symbol s_0_1[2] = { 'q', 'u' };
+static const symbol s_0_2[1] = { 0xE1 };
+static const symbol s_0_3[1] = { 0xE9 };
+static const symbol s_0_4[1] = { 0xED };
+static const symbol s_0_5[1] = { 0xF3 };
+static const symbol s_0_6[1] = { 0xFA };
+
+static const struct among a_0[7] =
+{
+{ 0, 0, -1, 7, 0},
+{ 2, s_0_1, 0, 6, 0},
+{ 1, s_0_2, 0, 1, 0},
+{ 1, s_0_3, 0, 2, 0},
+{ 1, s_0_4, 0, 3, 0},
+{ 1, s_0_5, 0, 4, 0},
+{ 1, s_0_6, 0, 5, 0}
+};
+
+static const symbol s_1_1[1] = { 'I' };
+static const symbol s_1_2[1] = { 'U' };
+
+static const struct among a_1[3] =
+{
+{ 0, 0, -1, 3, 0},
+{ 1, s_1_1, 0, 1, 0},
+{ 1, s_1_2, 0, 2, 0}
+};
+
+static const symbol s_2_0[2] = { 'l', 'a' };
+static const symbol s_2_1[4] = { 'c', 'e', 'l', 'a' };
+static const symbol s_2_2[6] = { 'g', 'l', 'i', 'e', 'l', 'a' };
+static const symbol s_2_3[4] = { 'm', 'e', 'l', 'a' };
+static const symbol s_2_4[4] = { 't', 'e', 'l', 'a' };
+static const symbol s_2_5[4] = { 'v', 'e', 'l', 'a' };
+static const symbol s_2_6[2] = { 'l', 'e' };
+static const symbol s_2_7[4] = { 'c', 'e', 'l', 'e' };
+static const symbol s_2_8[6] = { 'g', 'l', 'i', 'e', 'l', 'e' };
+static const symbol s_2_9[4] = { 'm', 'e', 'l', 'e' };
+static const symbol s_2_10[4] = { 't', 'e', 'l', 'e' };
+static const symbol s_2_11[4] = { 'v', 'e', 'l', 'e' };
+static const symbol s_2_12[2] = { 'n', 'e' };
+static const symbol s_2_13[4] = { 'c', 'e', 'n', 'e' };
+static const symbol s_2_14[6] = { 'g', 'l', 'i', 'e', 'n', 'e' };
+static const symbol s_2_15[4] = { 'm', 'e', 'n', 'e' };
+static const symbol s_2_16[4] = { 's', 'e', 'n', 'e' };
+static const symbol s_2_17[4] = { 't', 'e', 'n', 'e' };
+static const symbol s_2_18[4] = { 'v', 'e', 'n', 'e' };
+static const symbol s_2_19[2] = { 'c', 'i' };
+static const symbol s_2_20[2] = { 'l', 'i' };
+static const symbol s_2_21[4] = { 'c', 'e', 'l', 'i' };
+static const symbol s_2_22[6] = { 'g', 'l', 'i', 'e', 'l', 'i' };
+static const symbol s_2_23[4] = { 'm', 'e', 'l', 'i' };
+static const symbol s_2_24[4] = { 't', 'e', 'l', 'i' };
+static const symbol s_2_25[4] = { 'v', 'e', 'l', 'i' };
+static const symbol s_2_26[3] = { 'g', 'l', 'i' };
+static const symbol s_2_27[2] = { 'm', 'i' };
+static const symbol s_2_28[2] = { 's', 'i' };
+static const symbol s_2_29[2] = { 't', 'i' };
+static const symbol s_2_30[2] = { 'v', 'i' };
+static const symbol s_2_31[2] = { 'l', 'o' };
+static const symbol s_2_32[4] = { 'c', 'e', 'l', 'o' };
+static const symbol s_2_33[6] = { 'g', 'l', 'i', 'e', 'l', 'o' };
+static const symbol s_2_34[4] = { 'm', 'e', 'l', 'o' };
+static const symbol s_2_35[4] = { 't', 'e', 'l', 'o' };
+static const symbol s_2_36[4] = { 'v', 'e', 'l', 'o' };
+
+static const struct among a_2[37] =
+{
+{ 2, s_2_0, -1, -1, 0},
+{ 4, s_2_1, 0, -1, 0},
+{ 6, s_2_2, 0, -1, 0},
+{ 4, s_2_3, 0, -1, 0},
+{ 4, s_2_4, 0, -1, 0},
+{ 4, s_2_5, 0, -1, 0},
+{ 2, s_2_6, -1, -1, 0},
+{ 4, s_2_7, 6, -1, 0},
+{ 6, s_2_8, 6, -1, 0},
+{ 4, s_2_9, 6, -1, 0},
+{ 4, s_2_10, 6, -1, 0},
+{ 4, s_2_11, 6, -1, 0},
+{ 2, s_2_12, -1, -1, 0},
+{ 4, s_2_13, 12, -1, 0},
+{ 6, s_2_14, 12, -1, 0},
+{ 4, s_2_15, 12, -1, 0},
+{ 4, s_2_16, 12, -1, 0},
+{ 4, s_2_17, 12, -1, 0},
+{ 4, s_2_18, 12, -1, 0},
+{ 2, s_2_19, -1, -1, 0},
+{ 2, s_2_20, -1, -1, 0},
+{ 4, s_2_21, 20, -1, 0},
+{ 6, s_2_22, 20, -1, 0},
+{ 4, s_2_23, 20, -1, 0},
+{ 4, s_2_24, 20, -1, 0},
+{ 4, s_2_25, 20, -1, 0},
+{ 3, s_2_26, 20, -1, 0},
+{ 2, s_2_27, -1, -1, 0},
+{ 2, s_2_28, -1, -1, 0},
+{ 2, s_2_29, -1, -1, 0},
+{ 2, s_2_30, -1, -1, 0},
+{ 2, s_2_31, -1, -1, 0},
+{ 4, s_2_32, 31, -1, 0},
+{ 6, s_2_33, 31, -1, 0},
+{ 4, s_2_34, 31, -1, 0},
+{ 4, s_2_35, 31, -1, 0},
+{ 4, s_2_36, 31, -1, 0}
+};
+
+static const symbol s_3_0[4] = { 'a', 'n', 'd', 'o' };
+static const symbol s_3_1[4] = { 'e', 'n', 'd', 'o' };
+static const symbol s_3_2[2] = { 'a', 'r' };
+static const symbol s_3_3[2] = { 'e', 'r' };
+static const symbol s_3_4[2] = { 'i', 'r' };
+
+static const struct among a_3[5] =
+{
+{ 4, s_3_0, -1, 1, 0},
+{ 4, s_3_1, -1, 1, 0},
+{ 2, s_3_2, -1, 2, 0},
+{ 2, s_3_3, -1, 2, 0},
+{ 2, s_3_4, -1, 2, 0}
+};
+
+static const symbol s_4_0[2] = { 'i', 'c' };
+static const symbol s_4_1[4] = { 'a', 'b', 'i', 'l' };
+static const symbol s_4_2[2] = { 'o', 's' };
+static const symbol s_4_3[2] = { 'i', 'v' };
+
+static const struct among a_4[4] =
+{
+{ 2, s_4_0, -1, -1, 0},
+{ 4, s_4_1, -1, -1, 0},
+{ 2, s_4_2, -1, -1, 0},
+{ 2, s_4_3, -1, 1, 0}
+};
+
+static const symbol s_5_0[2] = { 'i', 'c' };
+static const symbol s_5_1[4] = { 'a', 'b', 'i', 'l' };
+static const symbol s_5_2[2] = { 'i', 'v' };
+
+static const struct among a_5[3] =
+{
+{ 2, s_5_0, -1, 1, 0},
+{ 4, s_5_1, -1, 1, 0},
+{ 2, s_5_2, -1, 1, 0}
+};
+
+static const symbol s_6_0[3] = { 'i', 'c', 'a' };
+static const symbol s_6_1[5] = { 'l', 'o', 'g', 'i', 'a' };
+static const symbol s_6_2[3] = { 'o', 's', 'a' };
+static const symbol s_6_3[4] = { 'i', 's', 't', 'a' };
+static const symbol s_6_4[3] = { 'i', 'v', 'a' };
+static const symbol s_6_5[4] = { 'a', 'n', 'z', 'a' };
+static const symbol s_6_6[4] = { 'e', 'n', 'z', 'a' };
+static const symbol s_6_7[3] = { 'i', 'c', 'e' };
+static const symbol s_6_8[6] = { 'a', 't', 'r', 'i', 'c', 'e' };
+static const symbol s_6_9[4] = { 'i', 'c', 'h', 'e' };
+static const symbol s_6_10[5] = { 'l', 'o', 'g', 'i', 'e' };
+static const symbol s_6_11[5] = { 'a', 'b', 'i', 'l', 'e' };
+static const symbol s_6_12[5] = { 'i', 'b', 'i', 'l', 'e' };
+static const symbol s_6_13[6] = { 'u', 's', 'i', 'o', 'n', 'e' };
+static const symbol s_6_14[6] = { 'a', 'z', 'i', 'o', 'n', 'e' };
+static const symbol s_6_15[6] = { 'u', 'z', 'i', 'o', 'n', 'e' };
+static const symbol s_6_16[5] = { 'a', 't', 'o', 'r', 'e' };
+static const symbol s_6_17[3] = { 'o', 's', 'e' };
+static const symbol s_6_18[4] = { 'a', 'n', 't', 'e' };
+static const symbol s_6_19[5] = { 'm', 'e', 'n', 't', 'e' };
+static const symbol s_6_20[6] = { 'a', 'm', 'e', 'n', 't', 'e' };
+static const symbol s_6_21[4] = { 'i', 's', 't', 'e' };
+static const symbol s_6_22[3] = { 'i', 'v', 'e' };
+static const symbol s_6_23[4] = { 'a', 'n', 'z', 'e' };
+static const symbol s_6_24[4] = { 'e', 'n', 'z', 'e' };
+static const symbol s_6_25[3] = { 'i', 'c', 'i' };
+static const symbol s_6_26[6] = { 'a', 't', 'r', 'i', 'c', 'i' };
+static const symbol s_6_27[4] = { 'i', 'c', 'h', 'i' };
+static const symbol s_6_28[5] = { 'a', 'b', 'i', 'l', 'i' };
+static const symbol s_6_29[5] = { 'i', 'b', 'i', 'l', 'i' };
+static const symbol s_6_30[4] = { 'i', 's', 'm', 'i' };
+static const symbol s_6_31[6] = { 'u', 's', 'i', 'o', 'n', 'i' };
+static const symbol s_6_32[6] = { 'a', 'z', 'i', 'o', 'n', 'i' };
+static const symbol s_6_33[6] = { 'u', 'z', 'i', 'o', 'n', 'i' };
+static const symbol s_6_34[5] = { 'a', 't', 'o', 'r', 'i' };
+static const symbol s_6_35[3] = { 'o', 's', 'i' };
+static const symbol s_6_36[4] = { 'a', 'n', 't', 'i' };
+static const symbol s_6_37[6] = { 'a', 'm', 'e', 'n', 't', 'i' };
+static const symbol s_6_38[6] = { 'i', 'm', 'e', 'n', 't', 'i' };
+static const symbol s_6_39[4] = { 'i', 's', 't', 'i' };
+static const symbol s_6_40[3] = { 'i', 'v', 'i' };
+static const symbol s_6_41[3] = { 'i', 'c', 'o' };
+static const symbol s_6_42[4] = { 'i', 's', 'm', 'o' };
+static const symbol s_6_43[3] = { 'o', 's', 'o' };
+static const symbol s_6_44[6] = { 'a', 'm', 'e', 'n', 't', 'o' };
+static const symbol s_6_45[6] = { 'i', 'm', 'e', 'n', 't', 'o' };
+static const symbol s_6_46[3] = { 'i', 'v', 'o' };
+static const symbol s_6_47[3] = { 'i', 't', 0xE0 };
+static const symbol s_6_48[4] = { 'i', 's', 't', 0xE0 };
+static const symbol s_6_49[4] = { 'i', 's', 't', 0xE8 };
+static const symbol s_6_50[4] = { 'i', 's', 't', 0xEC };
+
+static const struct among a_6[51] =
+{
+{ 3, s_6_0, -1, 1, 0},
+{ 5, s_6_1, -1, 3, 0},
+{ 3, s_6_2, -1, 1, 0},
+{ 4, s_6_3, -1, 1, 0},
+{ 3, s_6_4, -1, 9, 0},
+{ 4, s_6_5, -1, 1, 0},
+{ 4, s_6_6, -1, 5, 0},
+{ 3, s_6_7, -1, 1, 0},
+{ 6, s_6_8, 7, 1, 0},
+{ 4, s_6_9, -1, 1, 0},
+{ 5, s_6_10, -1, 3, 0},
+{ 5, s_6_11, -1, 1, 0},
+{ 5, s_6_12, -1, 1, 0},
+{ 6, s_6_13, -1, 4, 0},
+{ 6, s_6_14, -1, 2, 0},
+{ 6, s_6_15, -1, 4, 0},
+{ 5, s_6_16, -1, 2, 0},
+{ 3, s_6_17, -1, 1, 0},
+{ 4, s_6_18, -1, 1, 0},
+{ 5, s_6_19, -1, 1, 0},
+{ 6, s_6_20, 19, 7, 0},
+{ 4, s_6_21, -1, 1, 0},
+{ 3, s_6_22, -1, 9, 0},
+{ 4, s_6_23, -1, 1, 0},
+{ 4, s_6_24, -1, 5, 0},
+{ 3, s_6_25, -1, 1, 0},
+{ 6, s_6_26, 25, 1, 0},
+{ 4, s_6_27, -1, 1, 0},
+{ 5, s_6_28, -1, 1, 0},
+{ 5, s_6_29, -1, 1, 0},
+{ 4, s_6_30, -1, 1, 0},
+{ 6, s_6_31, -1, 4, 0},
+{ 6, s_6_32, -1, 2, 0},
+{ 6, s_6_33, -1, 4, 0},
+{ 5, s_6_34, -1, 2, 0},
+{ 3, s_6_35, -1, 1, 0},
+{ 4, s_6_36, -1, 1, 0},
+{ 6, s_6_37, -1, 6, 0},
+{ 6, s_6_38, -1, 6, 0},
+{ 4, s_6_39, -1, 1, 0},
+{ 3, s_6_40, -1, 9, 0},
+{ 3, s_6_41, -1, 1, 0},
+{ 4, s_6_42, -1, 1, 0},
+{ 3, s_6_43, -1, 1, 0},
+{ 6, s_6_44, -1, 6, 0},
+{ 6, s_6_45, -1, 6, 0},
+{ 3, s_6_46, -1, 9, 0},
+{ 3, s_6_47, -1, 8, 0},
+{ 4, s_6_48, -1, 1, 0},
+{ 4, s_6_49, -1, 1, 0},
+{ 4, s_6_50, -1, 1, 0}
+};
+
+static const symbol s_7_0[4] = { 'i', 's', 'c', 'a' };
+static const symbol s_7_1[4] = { 'e', 'n', 'd', 'a' };
+static const symbol s_7_2[3] = { 'a', 't', 'a' };
+static const symbol s_7_3[3] = { 'i', 't', 'a' };
+static const symbol s_7_4[3] = { 'u', 't', 'a' };
+static const symbol s_7_5[3] = { 'a', 'v', 'a' };
+static const symbol s_7_6[3] = { 'e', 'v', 'a' };
+static const symbol s_7_7[3] = { 'i', 'v', 'a' };
+static const symbol s_7_8[6] = { 'e', 'r', 'e', 'b', 'b', 'e' };
+static const symbol s_7_9[6] = { 'i', 'r', 'e', 'b', 'b', 'e' };
+static const symbol s_7_10[4] = { 'i', 's', 'c', 'e' };
+static const symbol s_7_11[4] = { 'e', 'n', 'd', 'e' };
+static const symbol s_7_12[3] = { 'a', 'r', 'e' };
+static const symbol s_7_13[3] = { 'e', 'r', 'e' };
+static const symbol s_7_14[3] = { 'i', 'r', 'e' };
+static const symbol s_7_15[4] = { 'a', 's', 's', 'e' };
+static const symbol s_7_16[3] = { 'a', 't', 'e' };
+static const symbol s_7_17[5] = { 'a', 'v', 'a', 't', 'e' };
+static const symbol s_7_18[5] = { 'e', 'v', 'a', 't', 'e' };
+static const symbol s_7_19[5] = { 'i', 'v', 'a', 't', 'e' };
+static const symbol s_7_20[3] = { 'e', 't', 'e' };
+static const symbol s_7_21[5] = { 'e', 'r', 'e', 't', 'e' };
+static const symbol s_7_22[5] = { 'i', 'r', 'e', 't', 'e' };
+static const symbol s_7_23[3] = { 'i', 't', 'e' };
+static const symbol s_7_24[6] = { 'e', 'r', 'e', 's', 't', 'e' };
+static const symbol s_7_25[6] = { 'i', 'r', 'e', 's', 't', 'e' };
+static const symbol s_7_26[3] = { 'u', 't', 'e' };
+static const symbol s_7_27[4] = { 'e', 'r', 'a', 'i' };
+static const symbol s_7_28[4] = { 'i', 'r', 'a', 'i' };
+static const symbol s_7_29[4] = { 'i', 's', 'c', 'i' };
+static const symbol s_7_30[4] = { 'e', 'n', 'd', 'i' };
+static const symbol s_7_31[4] = { 'e', 'r', 'e', 'i' };
+static const symbol s_7_32[4] = { 'i', 'r', 'e', 'i' };
+static const symbol s_7_33[4] = { 'a', 's', 's', 'i' };
+static const symbol s_7_34[3] = { 'a', 't', 'i' };
+static const symbol s_7_35[3] = { 'i', 't', 'i' };
+static const symbol s_7_36[6] = { 'e', 'r', 'e', 's', 't', 'i' };
+static const symbol s_7_37[6] = { 'i', 'r', 'e', 's', 't', 'i' };
+static const symbol s_7_38[3] = { 'u', 't', 'i' };
+static const symbol s_7_39[3] = { 'a', 'v', 'i' };
+static const symbol s_7_40[3] = { 'e', 'v', 'i' };
+static const symbol s_7_41[3] = { 'i', 'v', 'i' };
+static const symbol s_7_42[4] = { 'i', 's', 'c', 'o' };
+static const symbol s_7_43[4] = { 'a', 'n', 'd', 'o' };
+static const symbol s_7_44[4] = { 'e', 'n', 'd', 'o' };
+static const symbol s_7_45[4] = { 'Y', 'a', 'm', 'o' };
+static const symbol s_7_46[4] = { 'i', 'a', 'm', 'o' };
+static const symbol s_7_47[5] = { 'a', 'v', 'a', 'm', 'o' };
+static const symbol s_7_48[5] = { 'e', 'v', 'a', 'm', 'o' };
+static const symbol s_7_49[5] = { 'i', 'v', 'a', 'm', 'o' };
+static const symbol s_7_50[5] = { 'e', 'r', 'e', 'm', 'o' };
+static const symbol s_7_51[5] = { 'i', 'r', 'e', 'm', 'o' };
+static const symbol s_7_52[6] = { 'a', 's', 's', 'i', 'm', 'o' };
+static const symbol s_7_53[4] = { 'a', 'm', 'm', 'o' };
+static const symbol s_7_54[4] = { 'e', 'm', 'm', 'o' };
+static const symbol s_7_55[6] = { 'e', 'r', 'e', 'm', 'm', 'o' };
+static const symbol s_7_56[6] = { 'i', 'r', 'e', 'm', 'm', 'o' };
+static const symbol s_7_57[4] = { 'i', 'm', 'm', 'o' };
+static const symbol s_7_58[3] = { 'a', 'n', 'o' };
+static const symbol s_7_59[6] = { 'i', 's', 'c', 'a', 'n', 'o' };
+static const symbol s_7_60[5] = { 'a', 'v', 'a', 'n', 'o' };
+static const symbol s_7_61[5] = { 'e', 'v', 'a', 'n', 'o' };
+static const symbol s_7_62[5] = { 'i', 'v', 'a', 'n', 'o' };
+static const symbol s_7_63[6] = { 'e', 'r', 'a', 'n', 'n', 'o' };
+static const symbol s_7_64[6] = { 'i', 'r', 'a', 'n', 'n', 'o' };
+static const symbol s_7_65[3] = { 'o', 'n', 'o' };
+static const symbol s_7_66[6] = { 'i', 's', 'c', 'o', 'n', 'o' };
+static const symbol s_7_67[5] = { 'a', 'r', 'o', 'n', 'o' };
+static const symbol s_7_68[5] = { 'e', 'r', 'o', 'n', 'o' };
+static const symbol s_7_69[5] = { 'i', 'r', 'o', 'n', 'o' };
+static const symbol s_7_70[8] = { 'e', 'r', 'e', 'b', 'b', 'e', 'r', 'o' };
+static const symbol s_7_71[8] = { 'i', 'r', 'e', 'b', 'b', 'e', 'r', 'o' };
+static const symbol s_7_72[6] = { 'a', 's', 's', 'e', 'r', 'o' };
+static const symbol s_7_73[6] = { 'e', 's', 's', 'e', 'r', 'o' };
+static const symbol s_7_74[6] = { 'i', 's', 's', 'e', 'r', 'o' };
+static const symbol s_7_75[3] = { 'a', 't', 'o' };
+static const symbol s_7_76[3] = { 'i', 't', 'o' };
+static const symbol s_7_77[3] = { 'u', 't', 'o' };
+static const symbol s_7_78[3] = { 'a', 'v', 'o' };
+static const symbol s_7_79[3] = { 'e', 'v', 'o' };
+static const symbol s_7_80[3] = { 'i', 'v', 'o' };
+static const symbol s_7_81[2] = { 'a', 'r' };
+static const symbol s_7_82[2] = { 'i', 'r' };
+static const symbol s_7_83[3] = { 'e', 'r', 0xE0 };
+static const symbol s_7_84[3] = { 'i', 'r', 0xE0 };
+static const symbol s_7_85[3] = { 'e', 'r', 0xF2 };
+static const symbol s_7_86[3] = { 'i', 'r', 0xF2 };
+
+static const struct among a_7[87] =
+{
+{ 4, s_7_0, -1, 1, 0},
+{ 4, s_7_1, -1, 1, 0},
+{ 3, s_7_2, -1, 1, 0},
+{ 3, s_7_3, -1, 1, 0},
+{ 3, s_7_4, -1, 1, 0},
+{ 3, s_7_5, -1, 1, 0},
+{ 3, s_7_6, -1, 1, 0},
+{ 3, s_7_7, -1, 1, 0},
+{ 6, s_7_8, -1, 1, 0},
+{ 6, s_7_9, -1, 1, 0},
+{ 4, s_7_10, -1, 1, 0},
+{ 4, s_7_11, -1, 1, 0},
+{ 3, s_7_12, -1, 1, 0},
+{ 3, s_7_13, -1, 1, 0},
+{ 3, s_7_14, -1, 1, 0},
+{ 4, s_7_15, -1, 1, 0},
+{ 3, s_7_16, -1, 1, 0},
+{ 5, s_7_17, 16, 1, 0},
+{ 5, s_7_18, 16, 1, 0},
+{ 5, s_7_19, 16, 1, 0},
+{ 3, s_7_20, -1, 1, 0},
+{ 5, s_7_21, 20, 1, 0},
+{ 5, s_7_22, 20, 1, 0},
+{ 3, s_7_23, -1, 1, 0},
+{ 6, s_7_24, -1, 1, 0},
+{ 6, s_7_25, -1, 1, 0},
+{ 3, s_7_26, -1, 1, 0},
+{ 4, s_7_27, -1, 1, 0},
+{ 4, s_7_28, -1, 1, 0},
+{ 4, s_7_29, -1, 1, 0},
+{ 4, s_7_30, -1, 1, 0},
+{ 4, s_7_31, -1, 1, 0},
+{ 4, s_7_32, -1, 1, 0},
+{ 4, s_7_33, -1, 1, 0},
+{ 3, s_7_34, -1, 1, 0},
+{ 3, s_7_35, -1, 1, 0},
+{ 6, s_7_36, -1, 1, 0},
+{ 6, s_7_37, -1, 1, 0},
+{ 3, s_7_38, -1, 1, 0},
+{ 3, s_7_39, -1, 1, 0},
+{ 3, s_7_40, -1, 1, 0},
+{ 3, s_7_41, -1, 1, 0},
+{ 4, s_7_42, -1, 1, 0},
+{ 4, s_7_43, -1, 1, 0},
+{ 4, s_7_44, -1, 1, 0},
+{ 4, s_7_45, -1, 1, 0},
+{ 4, s_7_46, -1, 1, 0},
+{ 5, s_7_47, -1, 1, 0},
+{ 5, s_7_48, -1, 1, 0},
+{ 5, s_7_49, -1, 1, 0},
+{ 5, s_7_50, -1, 1, 0},
+{ 5, s_7_51, -1, 1, 0},
+{ 6, s_7_52, -1, 1, 0},
+{ 4, s_7_53, -1, 1, 0},
+{ 4, s_7_54, -1, 1, 0},
+{ 6, s_7_55, 54, 1, 0},
+{ 6, s_7_56, 54, 1, 0},
+{ 4, s_7_57, -1, 1, 0},
+{ 3, s_7_58, -1, 1, 0},
+{ 6, s_7_59, 58, 1, 0},
+{ 5, s_7_60, 58, 1, 0},
+{ 5, s_7_61, 58, 1, 0},
+{ 5, s_7_62, 58, 1, 0},
+{ 6, s_7_63, -1, 1, 0},
+{ 6, s_7_64, -1, 1, 0},
+{ 3, s_7_65, -1, 1, 0},
+{ 6, s_7_66, 65, 1, 0},
+{ 5, s_7_67, 65, 1, 0},
+{ 5, s_7_68, 65, 1, 0},
+{ 5, s_7_69, 65, 1, 0},
+{ 8, s_7_70, -1, 1, 0},
+{ 8, s_7_71, -1, 1, 0},
+{ 6, s_7_72, -1, 1, 0},
+{ 6, s_7_73, -1, 1, 0},
+{ 6, s_7_74, -1, 1, 0},
+{ 3, s_7_75, -1, 1, 0},
+{ 3, s_7_76, -1, 1, 0},
+{ 3, s_7_77, -1, 1, 0},
+{ 3, s_7_78, -1, 1, 0},
+{ 3, s_7_79, -1, 1, 0},
+{ 3, s_7_80, -1, 1, 0},
+{ 2, s_7_81, -1, 1, 0},
+{ 2, s_7_82, -1, 1, 0},
+{ 3, s_7_83, -1, 1, 0},
+{ 3, s_7_84, -1, 1, 0},
+{ 3, s_7_85, -1, 1, 0},
+{ 3, s_7_86, -1, 1, 0}
+};
+
+static const unsigned char g_v[] = { 17, 65, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 128, 8, 2, 1 };
+
+static const unsigned char g_AEIO[] = { 17, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 128, 8, 2 };
+
+static const unsigned char g_CG[] = { 17 };
+
+static const symbol s_0[] = { 0xE0 };
+static const symbol s_1[] = { 0xE8 };
+static const symbol s_2[] = { 0xEC };
+static const symbol s_3[] = { 0xF2 };
+static const symbol s_4[] = { 0xF9 };
+static const symbol s_5[] = { 'q', 'U' };
+static const symbol s_6[] = { 'U' };
+static const symbol s_7[] = { 'I' };
+static const symbol s_8[] = { 'i' };
+static const symbol s_9[] = { 'u' };
+static const symbol s_10[] = { 'e' };
+static const symbol s_11[] = { 'i', 'c' };
+static const symbol s_12[] = { 'l', 'o', 'g' };
+static const symbol s_13[] = { 'u' };
+static const symbol s_14[] = { 'e', 'n', 't', 'e' };
+static const symbol s_15[] = { 'a', 't' };
+static const symbol s_16[] = { 'a', 't' };
+static const symbol s_17[] = { 'i', 'c' };
+
+static int r_prelude(struct SN_env * z) {
+ int among_var;
+ { int c_test1 = z->c;
+ while(1) {
+ int c2 = z->c;
+ z->bra = z->c;
+ among_var = find_among(z, a_0, 7);
+ if (!(among_var)) goto lab0;
+ z->ket = z->c;
+ switch (among_var) {
+ case 1:
+ { int ret = slice_from_s(z, 1, s_0);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 2:
+ { int ret = slice_from_s(z, 1, s_1);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 3:
+ { int ret = slice_from_s(z, 1, s_2);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 4:
+ { int ret = slice_from_s(z, 1, s_3);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 5:
+ { int ret = slice_from_s(z, 1, s_4);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 6:
+ { int ret = slice_from_s(z, 2, s_5);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 7:
+ if (z->c >= z->l) goto lab0;
+ z->c++;
+ break;
+ }
+ continue;
+ lab0:
+ z->c = c2;
+ break;
+ }
+ z->c = c_test1;
+ }
+ while(1) {
+ int c3 = z->c;
+ while(1) {
+ int c4 = z->c;
+ if (in_grouping(z, g_v, 97, 249, 0)) goto lab2;
+ z->bra = z->c;
+ { int c5 = z->c;
+ if (z->c == z->l || z->p[z->c] != 'u') goto lab4;
+ z->c++;
+ z->ket = z->c;
+ if (in_grouping(z, g_v, 97, 249, 0)) goto lab4;
+ { int ret = slice_from_s(z, 1, s_6);
+ if (ret < 0) return ret;
+ }
+ goto lab3;
+ lab4:
+ z->c = c5;
+ if (z->c == z->l || z->p[z->c] != 'i') goto lab2;
+ z->c++;
+ z->ket = z->c;
+ if (in_grouping(z, g_v, 97, 249, 0)) goto lab2;
+ { int ret = slice_from_s(z, 1, s_7);
+ if (ret < 0) return ret;
+ }
+ }
+ lab3:
+ z->c = c4;
+ break;
+ lab2:
+ z->c = c4;
+ if (z->c >= z->l) goto lab1;
+ z->c++;
+ }
+ continue;
+ lab1:
+ z->c = c3;
+ break;
+ }
+ return 1;
+}
+
+static int r_mark_regions(struct SN_env * z) {
+ z->I[2] = z->l;
+ z->I[1] = z->l;
+ z->I[0] = z->l;
+ { int c1 = z->c;
+ { int c2 = z->c;
+ if (in_grouping(z, g_v, 97, 249, 0)) goto lab2;
+ { int c3 = z->c;
+ if (out_grouping(z, g_v, 97, 249, 0)) goto lab4;
+ {
+ int ret = out_grouping(z, g_v, 97, 249, 1);
+ if (ret < 0) goto lab4;
+ z->c += ret;
+ }
+ goto lab3;
+ lab4:
+ z->c = c3;
+ if (in_grouping(z, g_v, 97, 249, 0)) goto lab2;
+ {
+ int ret = in_grouping(z, g_v, 97, 249, 1);
+ if (ret < 0) goto lab2;
+ z->c += ret;
+ }
+ }
+ lab3:
+ goto lab1;
+ lab2:
+ z->c = c2;
+ if (out_grouping(z, g_v, 97, 249, 0)) goto lab0;
+ { int c4 = z->c;
+ if (out_grouping(z, g_v, 97, 249, 0)) goto lab6;
+ {
+ int ret = out_grouping(z, g_v, 97, 249, 1);
+ if (ret < 0) goto lab6;
+ z->c += ret;
+ }
+ goto lab5;
+ lab6:
+ z->c = c4;
+ if (in_grouping(z, g_v, 97, 249, 0)) goto lab0;
+ if (z->c >= z->l) goto lab0;
+ z->c++;
+ }
+ lab5:
+ ;
+ }
+ lab1:
+ z->I[2] = z->c;
+ lab0:
+ z->c = c1;
+ }
+ { int c5 = z->c;
+ {
+ int ret = out_grouping(z, g_v, 97, 249, 1);
+ if (ret < 0) goto lab7;
+ z->c += ret;
+ }
+ {
+ int ret = in_grouping(z, g_v, 97, 249, 1);
+ if (ret < 0) goto lab7;
+ z->c += ret;
+ }
+ z->I[1] = z->c;
+ {
+ int ret = out_grouping(z, g_v, 97, 249, 1);
+ if (ret < 0) goto lab7;
+ z->c += ret;
+ }
+ {
+ int ret = in_grouping(z, g_v, 97, 249, 1);
+ if (ret < 0) goto lab7;
+ z->c += ret;
+ }
+ z->I[0] = z->c;
+ lab7:
+ z->c = c5;
+ }
+ return 1;
+}
+
+static int r_postlude(struct SN_env * z) {
+ int among_var;
+ while(1) {
+ int c1 = z->c;
+ z->bra = z->c;
+ if (z->c >= z->l || (z->p[z->c + 0] != 73 && z->p[z->c + 0] != 85)) among_var = 3; else
+ among_var = find_among(z, a_1, 3);
+ if (!(among_var)) goto lab0;
+ z->ket = z->c;
+ switch (among_var) {
+ case 1:
+ { int ret = slice_from_s(z, 1, s_8);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 2:
+ { int ret = slice_from_s(z, 1, s_9);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 3:
+ if (z->c >= z->l) goto lab0;
+ z->c++;
+ break;
+ }
+ continue;
+ lab0:
+ z->c = c1;
+ break;
+ }
+ return 1;
+}
+
+static int r_RV(struct SN_env * z) {
+ if (!(z->I[2] <= z->c)) return 0;
+ return 1;
+}
+
+static int r_R1(struct SN_env * z) {
+ if (!(z->I[1] <= z->c)) return 0;
+ return 1;
+}
+
+static int r_R2(struct SN_env * z) {
+ if (!(z->I[0] <= z->c)) return 0;
+ return 1;
+}
+
+static int r_attached_pronoun(struct SN_env * z) {
+ int among_var;
+ z->ket = z->c;
+ if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((33314 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
+ if (!(find_among_b(z, a_2, 37))) return 0;
+ z->bra = z->c;
+ if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 111 && z->p[z->c - 1] != 114)) return 0;
+ among_var = find_among_b(z, a_3, 5);
+ if (!(among_var)) return 0;
+ { int ret = r_RV(z);
+ if (ret <= 0) return ret;
+ }
+ switch (among_var) {
+ case 1:
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 2:
+ { int ret = slice_from_s(z, 1, s_10);
+ if (ret < 0) return ret;
+ }
+ break;
+ }
+ return 1;
+}
+
+static int r_standard_suffix(struct SN_env * z) {
+ int among_var;
+ z->ket = z->c;
+ among_var = find_among_b(z, a_6, 51);
+ if (!(among_var)) return 0;
+ z->bra = z->c;
+ switch (among_var) {
+ case 1:
+ { int ret = r_R2(z);
+ if (ret <= 0) return ret;
+ }
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 2:
+ { int ret = r_R2(z);
+ if (ret <= 0) return ret;
+ }
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ { int m1 = z->l - z->c; (void)m1;
+ z->ket = z->c;
+ if (!(eq_s_b(z, 2, s_11))) { z->c = z->l - m1; goto lab0; }
+ z->bra = z->c;
+ { int ret = r_R2(z);
+ if (ret == 0) { z->c = z->l - m1; goto lab0; }
+ if (ret < 0) return ret;
+ }
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ lab0:
+ ;
+ }
+ break;
+ case 3:
+ { int ret = r_R2(z);
+ if (ret <= 0) return ret;
+ }
+ { int ret = slice_from_s(z, 3, s_12);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 4:
+ { int ret = r_R2(z);
+ if (ret <= 0) return ret;
+ }
+ { int ret = slice_from_s(z, 1, s_13);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 5:
+ { int ret = r_R2(z);
+ if (ret <= 0) return ret;
+ }
+ { int ret = slice_from_s(z, 4, s_14);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 6:
+ { int ret = r_RV(z);
+ if (ret <= 0) return ret;
+ }
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 7:
+ { int ret = r_R1(z);
+ if (ret <= 0) return ret;
+ }
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ { int m2 = z->l - z->c; (void)m2;
+ z->ket = z->c;
+ if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((4722696 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->c = z->l - m2; goto lab1; }
+ among_var = find_among_b(z, a_4, 4);
+ if (!(among_var)) { z->c = z->l - m2; goto lab1; }
+ z->bra = z->c;
+ { int ret = r_R2(z);
+ if (ret == 0) { z->c = z->l - m2; goto lab1; }
+ if (ret < 0) return ret;
+ }
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ switch (among_var) {
+ case 1:
+ z->ket = z->c;
+ if (!(eq_s_b(z, 2, s_15))) { z->c = z->l - m2; goto lab1; }
+ z->bra = z->c;
+ { int ret = r_R2(z);
+ if (ret == 0) { z->c = z->l - m2; goto lab1; }
+ if (ret < 0) return ret;
+ }
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ break;
+ }
+ lab1:
+ ;
+ }
+ break;
+ case 8:
+ { int ret = r_R2(z);
+ if (ret <= 0) return ret;
+ }
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ { int m3 = z->l - z->c; (void)m3;
+ z->ket = z->c;
+ 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 - m3; goto lab2; }
+ if (!(find_among_b(z, a_5, 3))) { z->c = z->l - m3; goto lab2; }
+ z->bra = z->c;
+ { int ret = r_R2(z);
+ if (ret == 0) { z->c = z->l - m3; goto lab2; }
+ if (ret < 0) return ret;
+ }
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ lab2:
+ ;
+ }
+ break;
+ case 9:
+ { int ret = r_R2(z);
+ if (ret <= 0) return ret;
+ }
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ { int m4 = z->l - z->c; (void)m4;
+ z->ket = z->c;
+ if (!(eq_s_b(z, 2, s_16))) { z->c = z->l - m4; goto lab3; }
+ z->bra = z->c;
+ { int ret = r_R2(z);
+ if (ret == 0) { z->c = z->l - m4; goto lab3; }
+ if (ret < 0) return ret;
+ }
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ z->ket = z->c;
+ if (!(eq_s_b(z, 2, s_17))) { z->c = z->l - m4; goto lab3; }
+ z->bra = z->c;
+ { int ret = r_R2(z);
+ if (ret == 0) { z->c = z->l - m4; goto lab3; }
+ if (ret < 0) return ret;
+ }
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ lab3:
+ ;
+ }
+ break;
+ }
+ return 1;
+}
+
+static int r_verb_suffix(struct SN_env * z) {
+
+ { int mlimit1;
+ if (z->c < z->I[2]) return 0;
+ mlimit1 = z->lb; z->lb = z->I[2];
+ z->ket = z->c;
+ if (!(find_among_b(z, a_7, 87))) { z->lb = mlimit1; return 0; }
+ z->bra = z->c;
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ z->lb = mlimit1;
+ }
+ return 1;
+}
+
+static int r_vowel_suffix(struct SN_env * z) {
+ { int m1 = z->l - z->c; (void)m1;
+ z->ket = z->c;
+ if (in_grouping_b(z, g_AEIO, 97, 242, 0)) { z->c = z->l - m1; goto lab0; }
+ z->bra = z->c;
+ { int ret = r_RV(z);
+ if (ret == 0) { z->c = z->l - m1; goto lab0; }
+ if (ret < 0) return ret;
+ }
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ z->ket = z->c;
+ if (z->c <= z->lb || z->p[z->c - 1] != 'i') { z->c = z->l - m1; goto lab0; }
+ z->c--;
+ z->bra = z->c;
+ { int ret = r_RV(z);
+ if (ret == 0) { z->c = z->l - m1; goto lab0; }
+ if (ret < 0) return ret;
+ }
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ lab0:
+ ;
+ }
+ { int m2 = z->l - z->c; (void)m2;
+ z->ket = z->c;
+ if (z->c <= z->lb || z->p[z->c - 1] != 'h') { z->c = z->l - m2; goto lab1; }
+ z->c--;
+ z->bra = z->c;
+ if (in_grouping_b(z, g_CG, 99, 103, 0)) { z->c = z->l - m2; goto lab1; }
+ { int ret = r_RV(z);
+ if (ret == 0) { z->c = z->l - m2; goto lab1; }
+ if (ret < 0) return ret;
+ }
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ lab1:
+ ;
+ }
+ return 1;
+}
+
+extern int italian_ISO_8859_1_stem(struct SN_env * z) {
+ { int c1 = z->c;
+ { int ret = r_prelude(z);
+ if (ret < 0) return ret;
+ }
+ z->c = c1;
+ }
+
+ { int ret = r_mark_regions(z);
+ if (ret < 0) return ret;
+ }
+ z->lb = z->c; z->c = z->l;
+
+ { int m2 = z->l - z->c; (void)m2;
+ { int ret = r_attached_pronoun(z);
+ if (ret < 0) return ret;
+ }
+ z->c = z->l - m2;
+ }
+ { int m3 = z->l - z->c; (void)m3;
+ { int m4 = z->l - z->c; (void)m4;
+ { int ret = r_standard_suffix(z);
+ if (ret == 0) goto lab2;
+ if (ret < 0) return ret;
+ }
+ goto lab1;
+ lab2:
+ z->c = z->l - m4;
+ { int ret = r_verb_suffix(z);
+ if (ret == 0) goto lab0;
+ if (ret < 0) return ret;
+ }
+ }
+ lab1:
+ lab0:
+ z->c = z->l - m3;
+ }
+ { int m5 = z->l - z->c; (void)m5;
+ { int ret = r_vowel_suffix(z);
+ if (ret < 0) return ret;
+ }
+ z->c = z->l - m5;
+ }
+ z->c = z->lb;
+ { int c6 = z->c;
+ { int ret = r_postlude(z);
+ if (ret < 0) return ret;
+ }
+ z->c = c6;
+ }
+ return 1;
+}
+
+extern struct SN_env * italian_ISO_8859_1_create_env(void) { return SN_create_env(0, 3); }
+
+extern void italian_ISO_8859_1_close_env(struct SN_env * z) { SN_close_env(z, 0); }
+
diff --git a/src/backend/snowball/libstemmer/stem_ISO_8859_1_norwegian.c b/src/backend/snowball/libstemmer/stem_ISO_8859_1_norwegian.c
new file mode 100644
index 0000000..8200290
--- /dev/null
+++ b/src/backend/snowball/libstemmer/stem_ISO_8859_1_norwegian.c
@@ -0,0 +1,272 @@
+/* Generated by Snowball 2.2.0 - https://snowballstem.org/ */
+
+#include "header.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+extern int norwegian_ISO_8859_1_stem(struct SN_env * z);
+#ifdef __cplusplus
+}
+#endif
+static int r_other_suffix(struct SN_env * z);
+static int r_consonant_pair(struct SN_env * z);
+static int r_main_suffix(struct SN_env * z);
+static int r_mark_regions(struct SN_env * z);
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+extern struct SN_env * norwegian_ISO_8859_1_create_env(void);
+extern void norwegian_ISO_8859_1_close_env(struct SN_env * z);
+
+
+#ifdef __cplusplus
+}
+#endif
+static const symbol s_0_0[1] = { 'a' };
+static const symbol s_0_1[1] = { 'e' };
+static const symbol s_0_2[3] = { 'e', 'd', 'e' };
+static const symbol s_0_3[4] = { 'a', 'n', 'd', 'e' };
+static const symbol s_0_4[4] = { 'e', 'n', 'd', 'e' };
+static const symbol s_0_5[3] = { 'a', 'n', 'e' };
+static const symbol s_0_6[3] = { 'e', 'n', 'e' };
+static const symbol s_0_7[6] = { 'h', 'e', 't', 'e', 'n', 'e' };
+static const symbol s_0_8[4] = { 'e', 'r', 't', 'e' };
+static const symbol s_0_9[2] = { 'e', 'n' };
+static const symbol s_0_10[5] = { 'h', 'e', 't', 'e', 'n' };
+static const symbol s_0_11[2] = { 'a', 'r' };
+static const symbol s_0_12[2] = { 'e', 'r' };
+static const symbol s_0_13[5] = { 'h', 'e', 't', 'e', 'r' };
+static const symbol s_0_14[1] = { 's' };
+static const symbol s_0_15[2] = { 'a', 's' };
+static const symbol s_0_16[2] = { 'e', 's' };
+static const symbol s_0_17[4] = { 'e', 'd', 'e', 's' };
+static const symbol s_0_18[5] = { 'e', 'n', 'd', 'e', 's' };
+static const symbol s_0_19[4] = { 'e', 'n', 'e', 's' };
+static const symbol s_0_20[7] = { 'h', 'e', 't', 'e', 'n', 'e', 's' };
+static const symbol s_0_21[3] = { 'e', 'n', 's' };
+static const symbol s_0_22[6] = { 'h', 'e', 't', 'e', 'n', 's' };
+static const symbol s_0_23[3] = { 'e', 'r', 's' };
+static const symbol s_0_24[3] = { 'e', 't', 's' };
+static const symbol s_0_25[2] = { 'e', 't' };
+static const symbol s_0_26[3] = { 'h', 'e', 't' };
+static const symbol s_0_27[3] = { 'e', 'r', 't' };
+static const symbol s_0_28[3] = { 'a', 's', 't' };
+
+static const struct among a_0[29] =
+{
+{ 1, s_0_0, -1, 1, 0},
+{ 1, s_0_1, -1, 1, 0},
+{ 3, s_0_2, 1, 1, 0},
+{ 4, s_0_3, 1, 1, 0},
+{ 4, s_0_4, 1, 1, 0},
+{ 3, s_0_5, 1, 1, 0},
+{ 3, s_0_6, 1, 1, 0},
+{ 6, s_0_7, 6, 1, 0},
+{ 4, s_0_8, 1, 3, 0},
+{ 2, s_0_9, -1, 1, 0},
+{ 5, s_0_10, 9, 1, 0},
+{ 2, s_0_11, -1, 1, 0},
+{ 2, s_0_12, -1, 1, 0},
+{ 5, s_0_13, 12, 1, 0},
+{ 1, s_0_14, -1, 2, 0},
+{ 2, s_0_15, 14, 1, 0},
+{ 2, s_0_16, 14, 1, 0},
+{ 4, s_0_17, 16, 1, 0},
+{ 5, s_0_18, 16, 1, 0},
+{ 4, s_0_19, 16, 1, 0},
+{ 7, s_0_20, 19, 1, 0},
+{ 3, s_0_21, 14, 1, 0},
+{ 6, s_0_22, 21, 1, 0},
+{ 3, s_0_23, 14, 1, 0},
+{ 3, s_0_24, 14, 1, 0},
+{ 2, s_0_25, -1, 1, 0},
+{ 3, s_0_26, 25, 1, 0},
+{ 3, s_0_27, -1, 3, 0},
+{ 3, s_0_28, -1, 1, 0}
+};
+
+static const symbol s_1_0[2] = { 'd', 't' };
+static const symbol s_1_1[2] = { 'v', 't' };
+
+static const struct among a_1[2] =
+{
+{ 2, s_1_0, -1, -1, 0},
+{ 2, s_1_1, -1, -1, 0}
+};
+
+static const symbol s_2_0[3] = { 'l', 'e', 'g' };
+static const symbol s_2_1[4] = { 'e', 'l', 'e', 'g' };
+static const symbol s_2_2[2] = { 'i', 'g' };
+static const symbol s_2_3[3] = { 'e', 'i', 'g' };
+static const symbol s_2_4[3] = { 'l', 'i', 'g' };
+static const symbol s_2_5[4] = { 'e', 'l', 'i', 'g' };
+static const symbol s_2_6[3] = { 'e', 'l', 's' };
+static const symbol s_2_7[3] = { 'l', 'o', 'v' };
+static const symbol s_2_8[4] = { 'e', 'l', 'o', 'v' };
+static const symbol s_2_9[4] = { 's', 'l', 'o', 'v' };
+static const symbol s_2_10[7] = { 'h', 'e', 't', 's', 'l', 'o', 'v' };
+
+static const struct among a_2[11] =
+{
+{ 3, s_2_0, -1, 1, 0},
+{ 4, s_2_1, 0, 1, 0},
+{ 2, s_2_2, -1, 1, 0},
+{ 3, s_2_3, 2, 1, 0},
+{ 3, s_2_4, 2, 1, 0},
+{ 4, s_2_5, 4, 1, 0},
+{ 3, s_2_6, -1, 1, 0},
+{ 3, s_2_7, -1, 1, 0},
+{ 4, s_2_8, 7, 1, 0},
+{ 4, s_2_9, 7, 1, 0},
+{ 7, s_2_10, 9, 1, 0}
+};
+
+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[] = { 119, 125, 149, 1 };
+
+static const symbol s_0[] = { 'e', 'r' };
+
+static int r_mark_regions(struct SN_env * z) {
+ z->I[1] = z->l;
+ { int c_test1 = z->c;
+z->c = z->c + 3;
+ if (z->c > z->l) return 0;
+ z->I[0] = z->c;
+ z->c = c_test1;
+ }
+ if (out_grouping(z, g_v, 97, 248, 1) < 0) return 0;
+ {
+ int ret = in_grouping(z, g_v, 97, 248, 1);
+ if (ret < 0) return 0;
+ z->c += ret;
+ }
+ z->I[1] = z->c;
+
+ if (!(z->I[1] < z->I[0])) goto lab0;
+ z->I[1] = z->I[0];
+lab0:
+ return 1;
+}
+
+static int r_main_suffix(struct SN_env * z) {
+ int among_var;
+
+ { int mlimit1;
+ if (z->c < z->I[1]) return 0;
+ mlimit1 = z->lb; z->lb = z->I[1];
+ z->ket = z->c;
+ if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1851426 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->lb = mlimit1; return 0; }
+ among_var = find_among_b(z, a_0, 29);
+ if (!(among_var)) { z->lb = mlimit1; return 0; }
+ z->bra = z->c;
+ z->lb = mlimit1;
+ }
+ switch (among_var) {
+ case 1:
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 2:
+ { int m2 = z->l - z->c; (void)m2;
+ if (in_grouping_b(z, g_s_ending, 98, 122, 0)) goto lab1;
+ goto lab0;
+ lab1:
+ z->c = z->l - m2;
+ if (z->c <= z->lb || z->p[z->c - 1] != 'k') return 0;
+ z->c--;
+ if (out_grouping_b(z, g_v, 97, 248, 0)) return 0;
+ }
+ lab0:
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 3:
+ { int ret = slice_from_s(z, 2, s_0);
+ if (ret < 0) return ret;
+ }
+ break;
+ }
+ return 1;
+}
+
+static int r_consonant_pair(struct SN_env * z) {
+ { int m_test1 = z->l - z->c;
+
+ { int mlimit2;
+ if (z->c < z->I[1]) return 0;
+ mlimit2 = z->lb; z->lb = z->I[1];
+ z->ket = z->c;
+ if (z->c - 1 <= z->lb || z->p[z->c - 1] != 116) { z->lb = mlimit2; return 0; }
+ if (!(find_among_b(z, a_1, 2))) { z->lb = mlimit2; return 0; }
+ z->bra = z->c;
+ z->lb = mlimit2;
+ }
+ z->c = z->l - m_test1;
+ }
+ if (z->c <= z->lb) return 0;
+ z->c--;
+ z->bra = z->c;
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ return 1;
+}
+
+static int r_other_suffix(struct SN_env * z) {
+
+ { int mlimit1;
+ if (z->c < z->I[1]) return 0;
+ mlimit1 = z->lb; z->lb = z->I[1];
+ z->ket = z->c;
+ if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((4718720 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->lb = mlimit1; return 0; }
+ if (!(find_among_b(z, a_2, 11))) { z->lb = mlimit1; return 0; }
+ z->bra = z->c;
+ z->lb = mlimit1;
+ }
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ return 1;
+}
+
+extern int norwegian_ISO_8859_1_stem(struct SN_env * z) {
+ { int c1 = z->c;
+ { int ret = r_mark_regions(z);
+ if (ret < 0) return ret;
+ }
+ z->c = c1;
+ }
+ z->lb = z->c; z->c = z->l;
+
+ { int m2 = z->l - z->c; (void)m2;
+ { int ret = r_main_suffix(z);
+ if (ret < 0) return ret;
+ }
+ z->c = z->l - m2;
+ }
+ { int m3 = z->l - z->c; (void)m3;
+ { int ret = r_consonant_pair(z);
+ if (ret < 0) return ret;
+ }
+ z->c = z->l - m3;
+ }
+ { int m4 = z->l - z->c; (void)m4;
+ { int ret = r_other_suffix(z);
+ if (ret < 0) return ret;
+ }
+ z->c = z->l - m4;
+ }
+ z->c = z->lb;
+ return 1;
+}
+
+extern struct SN_env * norwegian_ISO_8859_1_create_env(void) { return SN_create_env(0, 2); }
+
+extern void norwegian_ISO_8859_1_close_env(struct SN_env * z) { SN_close_env(z, 0); }
+
diff --git a/src/backend/snowball/libstemmer/stem_ISO_8859_1_porter.c b/src/backend/snowball/libstemmer/stem_ISO_8859_1_porter.c
new file mode 100644
index 0000000..a782ce3
--- /dev/null
+++ b/src/backend/snowball/libstemmer/stem_ISO_8859_1_porter.c
@@ -0,0 +1,717 @@
+/* Generated by Snowball 2.2.0 - https://snowballstem.org/ */
+
+#include "header.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+extern int porter_ISO_8859_1_stem(struct SN_env * z);
+#ifdef __cplusplus
+}
+#endif
+static int r_Step_5b(struct SN_env * z);
+static int r_Step_5a(struct SN_env * z);
+static int r_Step_4(struct SN_env * z);
+static int r_Step_3(struct SN_env * z);
+static int r_Step_2(struct SN_env * z);
+static int r_Step_1c(struct SN_env * z);
+static int r_Step_1b(struct SN_env * z);
+static int r_Step_1a(struct SN_env * z);
+static int r_R2(struct SN_env * z);
+static int r_R1(struct SN_env * z);
+static int r_shortv(struct SN_env * z);
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+extern struct SN_env * porter_ISO_8859_1_create_env(void);
+extern void porter_ISO_8859_1_close_env(struct SN_env * z);
+
+
+#ifdef __cplusplus
+}
+#endif
+static const symbol s_0_0[1] = { 's' };
+static const symbol s_0_1[3] = { 'i', 'e', 's' };
+static const symbol s_0_2[4] = { 's', 's', 'e', 's' };
+static const symbol s_0_3[2] = { 's', 's' };
+
+static const struct among a_0[4] =
+{
+{ 1, s_0_0, -1, 3, 0},
+{ 3, s_0_1, 0, 2, 0},
+{ 4, s_0_2, 0, 1, 0},
+{ 2, s_0_3, 0, -1, 0}
+};
+
+static const symbol s_1_1[2] = { 'b', 'b' };
+static const symbol s_1_2[2] = { 'd', 'd' };
+static const symbol s_1_3[2] = { 'f', 'f' };
+static const symbol s_1_4[2] = { 'g', 'g' };
+static const symbol s_1_5[2] = { 'b', 'l' };
+static const symbol s_1_6[2] = { 'm', 'm' };
+static const symbol s_1_7[2] = { 'n', 'n' };
+static const symbol s_1_8[2] = { 'p', 'p' };
+static const symbol s_1_9[2] = { 'r', 'r' };
+static const symbol s_1_10[2] = { 'a', 't' };
+static const symbol s_1_11[2] = { 't', 't' };
+static const symbol s_1_12[2] = { 'i', 'z' };
+
+static const struct among a_1[13] =
+{
+{ 0, 0, -1, 3, 0},
+{ 2, s_1_1, 0, 2, 0},
+{ 2, s_1_2, 0, 2, 0},
+{ 2, s_1_3, 0, 2, 0},
+{ 2, s_1_4, 0, 2, 0},
+{ 2, s_1_5, 0, 1, 0},
+{ 2, s_1_6, 0, 2, 0},
+{ 2, s_1_7, 0, 2, 0},
+{ 2, s_1_8, 0, 2, 0},
+{ 2, s_1_9, 0, 2, 0},
+{ 2, s_1_10, 0, 1, 0},
+{ 2, s_1_11, 0, 2, 0},
+{ 2, s_1_12, 0, 1, 0}
+};
+
+static const symbol s_2_0[2] = { 'e', 'd' };
+static const symbol s_2_1[3] = { 'e', 'e', 'd' };
+static const symbol s_2_2[3] = { 'i', 'n', 'g' };
+
+static const struct among a_2[3] =
+{
+{ 2, s_2_0, -1, 2, 0},
+{ 3, s_2_1, 0, 1, 0},
+{ 3, s_2_2, -1, 2, 0}
+};
+
+static const symbol s_3_0[4] = { 'a', 'n', 'c', 'i' };
+static const symbol s_3_1[4] = { 'e', 'n', 'c', 'i' };
+static const symbol s_3_2[4] = { 'a', 'b', 'l', 'i' };
+static const symbol s_3_3[3] = { 'e', 'l', 'i' };
+static const symbol s_3_4[4] = { 'a', 'l', 'l', 'i' };
+static const symbol s_3_5[5] = { 'o', 'u', 's', 'l', 'i' };
+static const symbol s_3_6[5] = { 'e', 'n', 't', 'l', 'i' };
+static const symbol s_3_7[5] = { 'a', 'l', 'i', 't', 'i' };
+static const symbol s_3_8[6] = { 'b', 'i', 'l', 'i', 't', 'i' };
+static const symbol s_3_9[5] = { 'i', 'v', 'i', 't', 'i' };
+static const symbol s_3_10[6] = { 't', 'i', 'o', 'n', 'a', 'l' };
+static const symbol s_3_11[7] = { 'a', 't', 'i', 'o', 'n', 'a', 'l' };
+static const symbol s_3_12[5] = { 'a', 'l', 'i', 's', 'm' };
+static const symbol s_3_13[5] = { 'a', 't', 'i', 'o', 'n' };
+static const symbol s_3_14[7] = { 'i', 'z', 'a', 't', 'i', 'o', 'n' };
+static const symbol s_3_15[4] = { 'i', 'z', 'e', 'r' };
+static const symbol s_3_16[4] = { 'a', 't', 'o', 'r' };
+static const symbol s_3_17[7] = { 'i', 'v', 'e', 'n', 'e', 's', 's' };
+static const symbol s_3_18[7] = { 'f', 'u', 'l', 'n', 'e', 's', 's' };
+static const symbol s_3_19[7] = { 'o', 'u', 's', 'n', 'e', 's', 's' };
+
+static const struct among a_3[20] =
+{
+{ 4, s_3_0, -1, 3, 0},
+{ 4, s_3_1, -1, 2, 0},
+{ 4, s_3_2, -1, 4, 0},
+{ 3, s_3_3, -1, 6, 0},
+{ 4, s_3_4, -1, 9, 0},
+{ 5, s_3_5, -1, 11, 0},
+{ 5, s_3_6, -1, 5, 0},
+{ 5, s_3_7, -1, 9, 0},
+{ 6, s_3_8, -1, 13, 0},
+{ 5, s_3_9, -1, 12, 0},
+{ 6, s_3_10, -1, 1, 0},
+{ 7, s_3_11, 10, 8, 0},
+{ 5, s_3_12, -1, 9, 0},
+{ 5, s_3_13, -1, 8, 0},
+{ 7, s_3_14, 13, 7, 0},
+{ 4, s_3_15, -1, 7, 0},
+{ 4, s_3_16, -1, 8, 0},
+{ 7, s_3_17, -1, 12, 0},
+{ 7, s_3_18, -1, 10, 0},
+{ 7, s_3_19, -1, 11, 0}
+};
+
+static const symbol s_4_0[5] = { 'i', 'c', 'a', 't', 'e' };
+static const symbol s_4_1[5] = { 'a', 't', 'i', 'v', 'e' };
+static const symbol s_4_2[5] = { 'a', 'l', 'i', 'z', 'e' };
+static const symbol s_4_3[5] = { 'i', 'c', 'i', 't', 'i' };
+static const symbol s_4_4[4] = { 'i', 'c', 'a', 'l' };
+static const symbol s_4_5[3] = { 'f', 'u', 'l' };
+static const symbol s_4_6[4] = { 'n', 'e', 's', 's' };
+
+static const struct among a_4[7] =
+{
+{ 5, s_4_0, -1, 2, 0},
+{ 5, s_4_1, -1, 3, 0},
+{ 5, s_4_2, -1, 1, 0},
+{ 5, s_4_3, -1, 2, 0},
+{ 4, s_4_4, -1, 2, 0},
+{ 3, s_4_5, -1, 3, 0},
+{ 4, s_4_6, -1, 3, 0}
+};
+
+static const symbol s_5_0[2] = { 'i', 'c' };
+static const symbol s_5_1[4] = { 'a', 'n', 'c', 'e' };
+static const symbol s_5_2[4] = { 'e', 'n', 'c', 'e' };
+static const symbol s_5_3[4] = { 'a', 'b', 'l', 'e' };
+static const symbol s_5_4[4] = { 'i', 'b', 'l', 'e' };
+static const symbol s_5_5[3] = { 'a', 't', 'e' };
+static const symbol s_5_6[3] = { 'i', 'v', 'e' };
+static const symbol s_5_7[3] = { 'i', 'z', 'e' };
+static const symbol s_5_8[3] = { 'i', 't', 'i' };
+static const symbol s_5_9[2] = { 'a', 'l' };
+static const symbol s_5_10[3] = { 'i', 's', 'm' };
+static const symbol s_5_11[3] = { 'i', 'o', 'n' };
+static const symbol s_5_12[2] = { 'e', 'r' };
+static const symbol s_5_13[3] = { 'o', 'u', 's' };
+static const symbol s_5_14[3] = { 'a', 'n', 't' };
+static const symbol s_5_15[3] = { 'e', 'n', 't' };
+static const symbol s_5_16[4] = { 'm', 'e', 'n', 't' };
+static const symbol s_5_17[5] = { 'e', 'm', 'e', 'n', 't' };
+static const symbol s_5_18[2] = { 'o', 'u' };
+
+static const struct among a_5[19] =
+{
+{ 2, s_5_0, -1, 1, 0},
+{ 4, s_5_1, -1, 1, 0},
+{ 4, s_5_2, -1, 1, 0},
+{ 4, s_5_3, -1, 1, 0},
+{ 4, s_5_4, -1, 1, 0},
+{ 3, s_5_5, -1, 1, 0},
+{ 3, s_5_6, -1, 1, 0},
+{ 3, s_5_7, -1, 1, 0},
+{ 3, s_5_8, -1, 1, 0},
+{ 2, s_5_9, -1, 1, 0},
+{ 3, s_5_10, -1, 1, 0},
+{ 3, s_5_11, -1, 2, 0},
+{ 2, s_5_12, -1, 1, 0},
+{ 3, s_5_13, -1, 1, 0},
+{ 3, s_5_14, -1, 1, 0},
+{ 3, s_5_15, -1, 1, 0},
+{ 4, s_5_16, 15, 1, 0},
+{ 5, s_5_17, 16, 1, 0},
+{ 2, s_5_18, -1, 1, 0}
+};
+
+static const unsigned char g_v[] = { 17, 65, 16, 1 };
+
+static const unsigned char g_v_WXY[] = { 1, 17, 65, 208, 1 };
+
+static const symbol s_0[] = { 's', 's' };
+static const symbol s_1[] = { 'i' };
+static const symbol s_2[] = { 'e', 'e' };
+static const symbol s_3[] = { 'e' };
+static const symbol s_4[] = { 'e' };
+static const symbol s_5[] = { 'i' };
+static const symbol s_6[] = { 't', 'i', 'o', 'n' };
+static const symbol s_7[] = { 'e', 'n', 'c', 'e' };
+static const symbol s_8[] = { 'a', 'n', 'c', 'e' };
+static const symbol s_9[] = { 'a', 'b', 'l', 'e' };
+static const symbol s_10[] = { 'e', 'n', 't' };
+static const symbol s_11[] = { 'e' };
+static const symbol s_12[] = { 'i', 'z', 'e' };
+static const symbol s_13[] = { 'a', 't', 'e' };
+static const symbol s_14[] = { 'a', 'l' };
+static const symbol s_15[] = { 'f', 'u', 'l' };
+static const symbol s_16[] = { 'o', 'u', 's' };
+static const symbol s_17[] = { 'i', 'v', 'e' };
+static const symbol s_18[] = { 'b', 'l', 'e' };
+static const symbol s_19[] = { 'a', 'l' };
+static const symbol s_20[] = { 'i', 'c' };
+static const symbol s_21[] = { 'Y' };
+static const symbol s_22[] = { 'Y' };
+static const symbol s_23[] = { 'y' };
+
+static int r_shortv(struct SN_env * z) {
+ if (out_grouping_b(z, g_v_WXY, 89, 121, 0)) return 0;
+ if (in_grouping_b(z, g_v, 97, 121, 0)) return 0;
+ if (out_grouping_b(z, g_v, 97, 121, 0)) return 0;
+ return 1;
+}
+
+static int r_R1(struct SN_env * z) {
+ if (!(z->I[1] <= z->c)) return 0;
+ return 1;
+}
+
+static int r_R2(struct SN_env * z) {
+ if (!(z->I[0] <= z->c)) return 0;
+ return 1;
+}
+
+static int r_Step_1a(struct SN_env * z) {
+ int among_var;
+ z->ket = z->c;
+ if (z->c <= z->lb || z->p[z->c - 1] != 115) return 0;
+ among_var = find_among_b(z, a_0, 4);
+ if (!(among_var)) return 0;
+ z->bra = z->c;
+ switch (among_var) {
+ case 1:
+ { int ret = slice_from_s(z, 2, s_0);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 2:
+ { int ret = slice_from_s(z, 1, s_1);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 3:
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ break;
+ }
+ return 1;
+}
+
+static int r_Step_1b(struct SN_env * z) {
+ int among_var;
+ z->ket = z->c;
+ if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 100 && z->p[z->c - 1] != 103)) return 0;
+ among_var = find_among_b(z, a_2, 3);
+ if (!(among_var)) return 0;
+ z->bra = z->c;
+ switch (among_var) {
+ case 1:
+ { int ret = r_R1(z);
+ if (ret <= 0) return ret;
+ }
+ { int ret = slice_from_s(z, 2, s_2);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 2:
+ { int m_test1 = z->l - z->c;
+ {
+ int ret = out_grouping_b(z, g_v, 97, 121, 1);
+ if (ret < 0) return 0;
+ z->c -= ret;
+ }
+ z->c = z->l - m_test1;
+ }
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ { int m_test2 = z->l - z->c;
+ if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((68514004 >> (z->p[z->c - 1] & 0x1f)) & 1)) among_var = 3; else
+ among_var = find_among_b(z, a_1, 13);
+ if (!(among_var)) return 0;
+ z->c = z->l - m_test2;
+ }
+ switch (among_var) {
+ case 1:
+ { int ret;
+ { int saved_c = z->c;
+ ret = insert_s(z, z->c, z->c, 1, s_3);
+ z->c = saved_c;
+ }
+ if (ret < 0) return ret;
+ }
+ break;
+ case 2:
+ z->ket = z->c;
+ if (z->c <= z->lb) return 0;
+ z->c--;
+ z->bra = z->c;
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 3:
+ if (z->c != z->I[1]) return 0;
+ { int m_test3 = z->l - z->c;
+ { int ret = r_shortv(z);
+ if (ret <= 0) return ret;
+ }
+ z->c = z->l - m_test3;
+ }
+ { int ret;
+ { int saved_c = z->c;
+ ret = insert_s(z, z->c, z->c, 1, s_4);
+ z->c = saved_c;
+ }
+ if (ret < 0) return ret;
+ }
+ break;
+ }
+ break;
+ }
+ return 1;
+}
+
+static int r_Step_1c(struct SN_env * z) {
+ z->ket = z->c;
+ { int m1 = z->l - z->c; (void)m1;
+ if (z->c <= z->lb || z->p[z->c - 1] != 'y') goto lab1;
+ z->c--;
+ goto lab0;
+ lab1:
+ z->c = z->l - m1;
+ if (z->c <= z->lb || z->p[z->c - 1] != 'Y') return 0;
+ z->c--;
+ }
+lab0:
+ z->bra = z->c;
+ {
+ int ret = out_grouping_b(z, g_v, 97, 121, 1);
+ if (ret < 0) return 0;
+ z->c -= ret;
+ }
+ { int ret = slice_from_s(z, 1, s_5);
+ if (ret < 0) return ret;
+ }
+ return 1;
+}
+
+static int r_Step_2(struct SN_env * z) {
+ int among_var;
+ z->ket = z->c;
+ if (z->c - 2 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((815616 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
+ among_var = find_among_b(z, a_3, 20);
+ if (!(among_var)) return 0;
+ z->bra = z->c;
+ { int ret = r_R1(z);
+ if (ret <= 0) return ret;
+ }
+ switch (among_var) {
+ case 1:
+ { int ret = slice_from_s(z, 4, s_6);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 2:
+ { int ret = slice_from_s(z, 4, s_7);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 3:
+ { int ret = slice_from_s(z, 4, s_8);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 4:
+ { int ret = slice_from_s(z, 4, s_9);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 5:
+ { int ret = slice_from_s(z, 3, s_10);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 6:
+ { int ret = slice_from_s(z, 1, s_11);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 7:
+ { int ret = slice_from_s(z, 3, s_12);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 8:
+ { int ret = slice_from_s(z, 3, s_13);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 9:
+ { int ret = slice_from_s(z, 2, s_14);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 10:
+ { int ret = slice_from_s(z, 3, s_15);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 11:
+ { int ret = slice_from_s(z, 3, s_16);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 12:
+ { int ret = slice_from_s(z, 3, s_17);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 13:
+ { int ret = slice_from_s(z, 3, s_18);
+ if (ret < 0) return ret;
+ }
+ break;
+ }
+ return 1;
+}
+
+static int r_Step_3(struct SN_env * z) {
+ int among_var;
+ z->ket = z->c;
+ if (z->c - 2 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((528928 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
+ among_var = find_among_b(z, a_4, 7);
+ if (!(among_var)) return 0;
+ z->bra = z->c;
+ { int ret = r_R1(z);
+ if (ret <= 0) return ret;
+ }
+ switch (among_var) {
+ case 1:
+ { int ret = slice_from_s(z, 2, s_19);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 2:
+ { int ret = slice_from_s(z, 2, s_20);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 3:
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ break;
+ }
+ return 1;
+}
+
+static int r_Step_4(struct SN_env * z) {
+ int among_var;
+ z->ket = z->c;
+ if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((3961384 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
+ among_var = find_among_b(z, a_5, 19);
+ if (!(among_var)) return 0;
+ z->bra = z->c;
+ { int ret = r_R2(z);
+ if (ret <= 0) return ret;
+ }
+ switch (among_var) {
+ case 1:
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 2:
+ { int m1 = z->l - z->c; (void)m1;
+ if (z->c <= z->lb || z->p[z->c - 1] != 's') goto lab1;
+ z->c--;
+ goto lab0;
+ lab1:
+ z->c = z->l - m1;
+ if (z->c <= z->lb || z->p[z->c - 1] != 't') return 0;
+ z->c--;
+ }
+ lab0:
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ break;
+ }
+ return 1;
+}
+
+static int r_Step_5a(struct SN_env * z) {
+ z->ket = z->c;
+ if (z->c <= z->lb || z->p[z->c - 1] != 'e') return 0;
+ z->c--;
+ z->bra = z->c;
+ { int m1 = z->l - z->c; (void)m1;
+ { int ret = r_R2(z);
+ if (ret == 0) goto lab1;
+ if (ret < 0) return ret;
+ }
+ goto lab0;
+ lab1:
+ z->c = z->l - m1;
+ { int ret = r_R1(z);
+ if (ret <= 0) return ret;
+ }
+ { int m2 = z->l - z->c; (void)m2;
+ { int ret = r_shortv(z);
+ if (ret == 0) goto lab2;
+ if (ret < 0) return ret;
+ }
+ return 0;
+ lab2:
+ z->c = z->l - m2;
+ }
+ }
+lab0:
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ return 1;
+}
+
+static int r_Step_5b(struct SN_env * z) {
+ z->ket = z->c;
+ if (z->c <= z->lb || z->p[z->c - 1] != 'l') return 0;
+ z->c--;
+ z->bra = z->c;
+ { int ret = r_R2(z);
+ if (ret <= 0) return ret;
+ }
+ if (z->c <= z->lb || z->p[z->c - 1] != 'l') return 0;
+ z->c--;
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ return 1;
+}
+
+extern int porter_ISO_8859_1_stem(struct SN_env * z) {
+ z->I[2] = 0;
+ { int c1 = z->c;
+ z->bra = z->c;
+ if (z->c == z->l || z->p[z->c] != 'y') goto lab0;
+ z->c++;
+ z->ket = z->c;
+ { int ret = slice_from_s(z, 1, s_21);
+ if (ret < 0) return ret;
+ }
+ z->I[2] = 1;
+ lab0:
+ z->c = c1;
+ }
+ { int c2 = z->c;
+ while(1) {
+ int c3 = z->c;
+ while(1) {
+ int c4 = z->c;
+ if (in_grouping(z, g_v, 97, 121, 0)) goto lab3;
+ z->bra = z->c;
+ if (z->c == z->l || z->p[z->c] != 'y') goto lab3;
+ z->c++;
+ z->ket = z->c;
+ z->c = c4;
+ break;
+ lab3:
+ z->c = c4;
+ if (z->c >= z->l) goto lab2;
+ z->c++;
+ }
+ { int ret = slice_from_s(z, 1, s_22);
+ if (ret < 0) return ret;
+ }
+ z->I[2] = 1;
+ continue;
+ lab2:
+ z->c = c3;
+ break;
+ }
+ z->c = c2;
+ }
+ z->I[1] = z->l;
+ z->I[0] = z->l;
+ { int c5 = z->c;
+ {
+ int ret = out_grouping(z, g_v, 97, 121, 1);
+ if (ret < 0) goto lab4;
+ z->c += ret;
+ }
+ {
+ int ret = in_grouping(z, g_v, 97, 121, 1);
+ if (ret < 0) goto lab4;
+ z->c += ret;
+ }
+ z->I[1] = z->c;
+ {
+ int ret = out_grouping(z, g_v, 97, 121, 1);
+ if (ret < 0) goto lab4;
+ z->c += ret;
+ }
+ {
+ int ret = in_grouping(z, g_v, 97, 121, 1);
+ if (ret < 0) goto lab4;
+ z->c += ret;
+ }
+ z->I[0] = z->c;
+ lab4:
+ z->c = c5;
+ }
+ z->lb = z->c; z->c = z->l;
+
+ { int m6 = z->l - z->c; (void)m6;
+ { int ret = r_Step_1a(z);
+ if (ret < 0) return ret;
+ }
+ z->c = z->l - m6;
+ }
+ { int m7 = z->l - z->c; (void)m7;
+ { int ret = r_Step_1b(z);
+ if (ret < 0) return ret;
+ }
+ z->c = z->l - m7;
+ }
+ { int m8 = z->l - z->c; (void)m8;
+ { int ret = r_Step_1c(z);
+ if (ret < 0) return ret;
+ }
+ z->c = z->l - m8;
+ }
+ { int m9 = z->l - z->c; (void)m9;
+ { int ret = r_Step_2(z);
+ if (ret < 0) return ret;
+ }
+ z->c = z->l - m9;
+ }
+ { int m10 = z->l - z->c; (void)m10;
+ { int ret = r_Step_3(z);
+ if (ret < 0) return ret;
+ }
+ z->c = z->l - m10;
+ }
+ { int m11 = z->l - z->c; (void)m11;
+ { int ret = r_Step_4(z);
+ if (ret < 0) return ret;
+ }
+ z->c = z->l - m11;
+ }
+ { int m12 = z->l - z->c; (void)m12;
+ { int ret = r_Step_5a(z);
+ if (ret < 0) return ret;
+ }
+ z->c = z->l - m12;
+ }
+ { int m13 = z->l - z->c; (void)m13;
+ { int ret = r_Step_5b(z);
+ if (ret < 0) return ret;
+ }
+ z->c = z->l - m13;
+ }
+ z->c = z->lb;
+ { int c14 = z->c;
+ if (!(z->I[2])) goto lab5;
+ while(1) {
+ int c15 = z->c;
+ while(1) {
+ int c16 = z->c;
+ z->bra = z->c;
+ if (z->c == z->l || z->p[z->c] != 'Y') goto lab7;
+ z->c++;
+ z->ket = z->c;
+ z->c = c16;
+ break;
+ lab7:
+ z->c = c16;
+ if (z->c >= z->l) goto lab6;
+ z->c++;
+ }
+ { int ret = slice_from_s(z, 1, s_23);
+ if (ret < 0) return ret;
+ }
+ continue;
+ lab6:
+ z->c = c15;
+ break;
+ }
+ lab5:
+ z->c = c14;
+ }
+ return 1;
+}
+
+extern struct SN_env * porter_ISO_8859_1_create_env(void) { return SN_create_env(0, 3); }
+
+extern void porter_ISO_8859_1_close_env(struct SN_env * z) { SN_close_env(z, 0); }
+
diff --git a/src/backend/snowball/libstemmer/stem_ISO_8859_1_portuguese.c b/src/backend/snowball/libstemmer/stem_ISO_8859_1_portuguese.c
new file mode 100644
index 0000000..c27db66
--- /dev/null
+++ b/src/backend/snowball/libstemmer/stem_ISO_8859_1_portuguese.c
@@ -0,0 +1,961 @@
+/* Generated by Snowball 2.2.0 - https://snowballstem.org/ */
+
+#include "header.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+extern int portuguese_ISO_8859_1_stem(struct SN_env * z);
+#ifdef __cplusplus
+}
+#endif
+static int r_residual_form(struct SN_env * z);
+static int r_residual_suffix(struct SN_env * z);
+static int r_verb_suffix(struct SN_env * z);
+static int r_standard_suffix(struct SN_env * z);
+static int r_R2(struct SN_env * z);
+static int r_R1(struct SN_env * z);
+static int r_RV(struct SN_env * z);
+static int r_mark_regions(struct SN_env * z);
+static int r_postlude(struct SN_env * z);
+static int r_prelude(struct SN_env * z);
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+extern struct SN_env * portuguese_ISO_8859_1_create_env(void);
+extern void portuguese_ISO_8859_1_close_env(struct SN_env * z);
+
+
+#ifdef __cplusplus
+}
+#endif
+static const symbol s_0_1[1] = { 0xE3 };
+static const symbol s_0_2[1] = { 0xF5 };
+
+static const struct among a_0[3] =
+{
+{ 0, 0, -1, 3, 0},
+{ 1, s_0_1, 0, 1, 0},
+{ 1, s_0_2, 0, 2, 0}
+};
+
+static const symbol s_1_1[2] = { 'a', '~' };
+static const symbol s_1_2[2] = { 'o', '~' };
+
+static const struct among a_1[3] =
+{
+{ 0, 0, -1, 3, 0},
+{ 2, s_1_1, 0, 1, 0},
+{ 2, s_1_2, 0, 2, 0}
+};
+
+static const symbol s_2_0[2] = { 'i', 'c' };
+static const symbol s_2_1[2] = { 'a', 'd' };
+static const symbol s_2_2[2] = { 'o', 's' };
+static const symbol s_2_3[2] = { 'i', 'v' };
+
+static const struct among a_2[4] =
+{
+{ 2, s_2_0, -1, -1, 0},
+{ 2, s_2_1, -1, -1, 0},
+{ 2, s_2_2, -1, -1, 0},
+{ 2, s_2_3, -1, 1, 0}
+};
+
+static const symbol s_3_0[4] = { 'a', 'n', 't', 'e' };
+static const symbol s_3_1[4] = { 'a', 'v', 'e', 'l' };
+static const symbol s_3_2[4] = { 0xED, 'v', 'e', 'l' };
+
+static const struct among a_3[3] =
+{
+{ 4, s_3_0, -1, 1, 0},
+{ 4, s_3_1, -1, 1, 0},
+{ 4, s_3_2, -1, 1, 0}
+};
+
+static const symbol s_4_0[2] = { 'i', 'c' };
+static const symbol s_4_1[4] = { 'a', 'b', 'i', 'l' };
+static const symbol s_4_2[2] = { 'i', 'v' };
+
+static const struct among a_4[3] =
+{
+{ 2, s_4_0, -1, 1, 0},
+{ 4, s_4_1, -1, 1, 0},
+{ 2, s_4_2, -1, 1, 0}
+};
+
+static const symbol s_5_0[3] = { 'i', 'c', 'a' };
+static const symbol s_5_1[5] = { 0xE2, 'n', 'c', 'i', 'a' };
+static const symbol s_5_2[5] = { 0xEA, 'n', 'c', 'i', 'a' };
+static const symbol s_5_3[5] = { 'l', 'o', 'g', 'i', 'a' };
+static const symbol s_5_4[3] = { 'i', 'r', 'a' };
+static const symbol s_5_5[5] = { 'a', 'd', 'o', 'r', 'a' };
+static const symbol s_5_6[3] = { 'o', 's', 'a' };
+static const symbol s_5_7[4] = { 'i', 's', 't', 'a' };
+static const symbol s_5_8[3] = { 'i', 'v', 'a' };
+static const symbol s_5_9[3] = { 'e', 'z', 'a' };
+static const symbol s_5_10[5] = { 'i', 'd', 'a', 'd', 'e' };
+static const symbol s_5_11[4] = { 'a', 'n', 't', 'e' };
+static const symbol s_5_12[5] = { 'm', 'e', 'n', 't', 'e' };
+static const symbol s_5_13[6] = { 'a', 'm', 'e', 'n', 't', 'e' };
+static const symbol s_5_14[4] = { 0xE1, 'v', 'e', 'l' };
+static const symbol s_5_15[4] = { 0xED, 'v', 'e', 'l' };
+static const symbol s_5_16[3] = { 'i', 'c', 'o' };
+static const symbol s_5_17[4] = { 'i', 's', 'm', 'o' };
+static const symbol s_5_18[3] = { 'o', 's', 'o' };
+static const symbol s_5_19[6] = { 'a', 'm', 'e', 'n', 't', 'o' };
+static const symbol s_5_20[6] = { 'i', 'm', 'e', 'n', 't', 'o' };
+static const symbol s_5_21[3] = { 'i', 'v', 'o' };
+static const symbol s_5_22[5] = { 'a', 0xE7, 'a', '~', 'o' };
+static const symbol s_5_23[5] = { 'u', 0xE7, 'a', '~', 'o' };
+static const symbol s_5_24[4] = { 'a', 'd', 'o', 'r' };
+static const symbol s_5_25[4] = { 'i', 'c', 'a', 's' };
+static const symbol s_5_26[6] = { 0xEA, 'n', 'c', 'i', 'a', 's' };
+static const symbol s_5_27[6] = { 'l', 'o', 'g', 'i', 'a', 's' };
+static const symbol s_5_28[4] = { 'i', 'r', 'a', 's' };
+static const symbol s_5_29[6] = { 'a', 'd', 'o', 'r', 'a', 's' };
+static const symbol s_5_30[4] = { 'o', 's', 'a', 's' };
+static const symbol s_5_31[5] = { 'i', 's', 't', 'a', 's' };
+static const symbol s_5_32[4] = { 'i', 'v', 'a', 's' };
+static const symbol s_5_33[4] = { 'e', 'z', 'a', 's' };
+static const symbol s_5_34[6] = { 'i', 'd', 'a', 'd', 'e', 's' };
+static const symbol s_5_35[6] = { 'a', 'd', 'o', 'r', 'e', 's' };
+static const symbol s_5_36[5] = { 'a', 'n', 't', 'e', 's' };
+static const symbol s_5_37[6] = { 'a', 0xE7, 'o', '~', 'e', 's' };
+static const symbol s_5_38[6] = { 'u', 0xE7, 'o', '~', 'e', 's' };
+static const symbol s_5_39[4] = { 'i', 'c', 'o', 's' };
+static const symbol s_5_40[5] = { 'i', 's', 'm', 'o', 's' };
+static const symbol s_5_41[4] = { 'o', 's', 'o', 's' };
+static const symbol s_5_42[7] = { 'a', 'm', 'e', 'n', 't', 'o', 's' };
+static const symbol s_5_43[7] = { 'i', 'm', 'e', 'n', 't', 'o', 's' };
+static const symbol s_5_44[4] = { 'i', 'v', 'o', 's' };
+
+static const struct among a_5[45] =
+{
+{ 3, s_5_0, -1, 1, 0},
+{ 5, s_5_1, -1, 1, 0},
+{ 5, s_5_2, -1, 4, 0},
+{ 5, s_5_3, -1, 2, 0},
+{ 3, s_5_4, -1, 9, 0},
+{ 5, s_5_5, -1, 1, 0},
+{ 3, s_5_6, -1, 1, 0},
+{ 4, s_5_7, -1, 1, 0},
+{ 3, s_5_8, -1, 8, 0},
+{ 3, s_5_9, -1, 1, 0},
+{ 5, s_5_10, -1, 7, 0},
+{ 4, s_5_11, -1, 1, 0},
+{ 5, s_5_12, -1, 6, 0},
+{ 6, s_5_13, 12, 5, 0},
+{ 4, s_5_14, -1, 1, 0},
+{ 4, s_5_15, -1, 1, 0},
+{ 3, s_5_16, -1, 1, 0},
+{ 4, s_5_17, -1, 1, 0},
+{ 3, s_5_18, -1, 1, 0},
+{ 6, s_5_19, -1, 1, 0},
+{ 6, s_5_20, -1, 1, 0},
+{ 3, s_5_21, -1, 8, 0},
+{ 5, s_5_22, -1, 1, 0},
+{ 5, s_5_23, -1, 3, 0},
+{ 4, s_5_24, -1, 1, 0},
+{ 4, s_5_25, -1, 1, 0},
+{ 6, s_5_26, -1, 4, 0},
+{ 6, s_5_27, -1, 2, 0},
+{ 4, s_5_28, -1, 9, 0},
+{ 6, s_5_29, -1, 1, 0},
+{ 4, s_5_30, -1, 1, 0},
+{ 5, s_5_31, -1, 1, 0},
+{ 4, s_5_32, -1, 8, 0},
+{ 4, s_5_33, -1, 1, 0},
+{ 6, s_5_34, -1, 7, 0},
+{ 6, s_5_35, -1, 1, 0},
+{ 5, s_5_36, -1, 1, 0},
+{ 6, s_5_37, -1, 1, 0},
+{ 6, s_5_38, -1, 3, 0},
+{ 4, s_5_39, -1, 1, 0},
+{ 5, s_5_40, -1, 1, 0},
+{ 4, s_5_41, -1, 1, 0},
+{ 7, s_5_42, -1, 1, 0},
+{ 7, s_5_43, -1, 1, 0},
+{ 4, s_5_44, -1, 8, 0}
+};
+
+static const symbol s_6_0[3] = { 'a', 'd', 'a' };
+static const symbol s_6_1[3] = { 'i', 'd', 'a' };
+static const symbol s_6_2[2] = { 'i', 'a' };
+static const symbol s_6_3[4] = { 'a', 'r', 'i', 'a' };
+static const symbol s_6_4[4] = { 'e', 'r', 'i', 'a' };
+static const symbol s_6_5[4] = { 'i', 'r', 'i', 'a' };
+static const symbol s_6_6[3] = { 'a', 'r', 'a' };
+static const symbol s_6_7[3] = { 'e', 'r', 'a' };
+static const symbol s_6_8[3] = { 'i', 'r', 'a' };
+static const symbol s_6_9[3] = { 'a', 'v', 'a' };
+static const symbol s_6_10[4] = { 'a', 's', 's', 'e' };
+static const symbol s_6_11[4] = { 'e', 's', 's', 'e' };
+static const symbol s_6_12[4] = { 'i', 's', 's', 'e' };
+static const symbol s_6_13[4] = { 'a', 's', 't', 'e' };
+static const symbol s_6_14[4] = { 'e', 's', 't', 'e' };
+static const symbol s_6_15[4] = { 'i', 's', 't', 'e' };
+static const symbol s_6_16[2] = { 'e', 'i' };
+static const symbol s_6_17[4] = { 'a', 'r', 'e', 'i' };
+static const symbol s_6_18[4] = { 'e', 'r', 'e', 'i' };
+static const symbol s_6_19[4] = { 'i', 'r', 'e', 'i' };
+static const symbol s_6_20[2] = { 'a', 'm' };
+static const symbol s_6_21[3] = { 'i', 'a', 'm' };
+static const symbol s_6_22[5] = { 'a', 'r', 'i', 'a', 'm' };
+static const symbol s_6_23[5] = { 'e', 'r', 'i', 'a', 'm' };
+static const symbol s_6_24[5] = { 'i', 'r', 'i', 'a', 'm' };
+static const symbol s_6_25[4] = { 'a', 'r', 'a', 'm' };
+static const symbol s_6_26[4] = { 'e', 'r', 'a', 'm' };
+static const symbol s_6_27[4] = { 'i', 'r', 'a', 'm' };
+static const symbol s_6_28[4] = { 'a', 'v', 'a', 'm' };
+static const symbol s_6_29[2] = { 'e', 'm' };
+static const symbol s_6_30[4] = { 'a', 'r', 'e', 'm' };
+static const symbol s_6_31[4] = { 'e', 'r', 'e', 'm' };
+static const symbol s_6_32[4] = { 'i', 'r', 'e', 'm' };
+static const symbol s_6_33[5] = { 'a', 's', 's', 'e', 'm' };
+static const symbol s_6_34[5] = { 'e', 's', 's', 'e', 'm' };
+static const symbol s_6_35[5] = { 'i', 's', 's', 'e', 'm' };
+static const symbol s_6_36[3] = { 'a', 'd', 'o' };
+static const symbol s_6_37[3] = { 'i', 'd', 'o' };
+static const symbol s_6_38[4] = { 'a', 'n', 'd', 'o' };
+static const symbol s_6_39[4] = { 'e', 'n', 'd', 'o' };
+static const symbol s_6_40[4] = { 'i', 'n', 'd', 'o' };
+static const symbol s_6_41[5] = { 'a', 'r', 'a', '~', 'o' };
+static const symbol s_6_42[5] = { 'e', 'r', 'a', '~', 'o' };
+static const symbol s_6_43[5] = { 'i', 'r', 'a', '~', 'o' };
+static const symbol s_6_44[2] = { 'a', 'r' };
+static const symbol s_6_45[2] = { 'e', 'r' };
+static const symbol s_6_46[2] = { 'i', 'r' };
+static const symbol s_6_47[2] = { 'a', 's' };
+static const symbol s_6_48[4] = { 'a', 'd', 'a', 's' };
+static const symbol s_6_49[4] = { 'i', 'd', 'a', 's' };
+static const symbol s_6_50[3] = { 'i', 'a', 's' };
+static const symbol s_6_51[5] = { 'a', 'r', 'i', 'a', 's' };
+static const symbol s_6_52[5] = { 'e', 'r', 'i', 'a', 's' };
+static const symbol s_6_53[5] = { 'i', 'r', 'i', 'a', 's' };
+static const symbol s_6_54[4] = { 'a', 'r', 'a', 's' };
+static const symbol s_6_55[4] = { 'e', 'r', 'a', 's' };
+static const symbol s_6_56[4] = { 'i', 'r', 'a', 's' };
+static const symbol s_6_57[4] = { 'a', 'v', 'a', 's' };
+static const symbol s_6_58[2] = { 'e', 's' };
+static const symbol s_6_59[5] = { 'a', 'r', 'd', 'e', 's' };
+static const symbol s_6_60[5] = { 'e', 'r', 'd', 'e', 's' };
+static const symbol s_6_61[5] = { 'i', 'r', 'd', 'e', 's' };
+static const symbol s_6_62[4] = { 'a', 'r', 'e', 's' };
+static const symbol s_6_63[4] = { 'e', 'r', 'e', 's' };
+static const symbol s_6_64[4] = { 'i', 'r', 'e', 's' };
+static const symbol s_6_65[5] = { 'a', 's', 's', 'e', 's' };
+static const symbol s_6_66[5] = { 'e', 's', 's', 'e', 's' };
+static const symbol s_6_67[5] = { 'i', 's', 's', 'e', 's' };
+static const symbol s_6_68[5] = { 'a', 's', 't', 'e', 's' };
+static const symbol s_6_69[5] = { 'e', 's', 't', 'e', 's' };
+static const symbol s_6_70[5] = { 'i', 's', 't', 'e', 's' };
+static const symbol s_6_71[2] = { 'i', 's' };
+static const symbol s_6_72[3] = { 'a', 'i', 's' };
+static const symbol s_6_73[3] = { 'e', 'i', 's' };
+static const symbol s_6_74[5] = { 'a', 'r', 'e', 'i', 's' };
+static const symbol s_6_75[5] = { 'e', 'r', 'e', 'i', 's' };
+static const symbol s_6_76[5] = { 'i', 'r', 'e', 'i', 's' };
+static const symbol s_6_77[5] = { 0xE1, 'r', 'e', 'i', 's' };
+static const symbol s_6_78[5] = { 0xE9, 'r', 'e', 'i', 's' };
+static const symbol s_6_79[5] = { 0xED, 'r', 'e', 'i', 's' };
+static const symbol s_6_80[6] = { 0xE1, 's', 's', 'e', 'i', 's' };
+static const symbol s_6_81[6] = { 0xE9, 's', 's', 'e', 'i', 's' };
+static const symbol s_6_82[6] = { 0xED, 's', 's', 'e', 'i', 's' };
+static const symbol s_6_83[5] = { 0xE1, 'v', 'e', 'i', 's' };
+static const symbol s_6_84[4] = { 0xED, 'e', 'i', 's' };
+static const symbol s_6_85[6] = { 'a', 'r', 0xED, 'e', 'i', 's' };
+static const symbol s_6_86[6] = { 'e', 'r', 0xED, 'e', 'i', 's' };
+static const symbol s_6_87[6] = { 'i', 'r', 0xED, 'e', 'i', 's' };
+static const symbol s_6_88[4] = { 'a', 'd', 'o', 's' };
+static const symbol s_6_89[4] = { 'i', 'd', 'o', 's' };
+static const symbol s_6_90[4] = { 'a', 'm', 'o', 's' };
+static const symbol s_6_91[6] = { 0xE1, 'r', 'a', 'm', 'o', 's' };
+static const symbol s_6_92[6] = { 0xE9, 'r', 'a', 'm', 'o', 's' };
+static const symbol s_6_93[6] = { 0xED, 'r', 'a', 'm', 'o', 's' };
+static const symbol s_6_94[6] = { 0xE1, 'v', 'a', 'm', 'o', 's' };
+static const symbol s_6_95[5] = { 0xED, 'a', 'm', 'o', 's' };
+static const symbol s_6_96[7] = { 'a', 'r', 0xED, 'a', 'm', 'o', 's' };
+static const symbol s_6_97[7] = { 'e', 'r', 0xED, 'a', 'm', 'o', 's' };
+static const symbol s_6_98[7] = { 'i', 'r', 0xED, 'a', 'm', 'o', 's' };
+static const symbol s_6_99[4] = { 'e', 'm', 'o', 's' };
+static const symbol s_6_100[6] = { 'a', 'r', 'e', 'm', 'o', 's' };
+static const symbol s_6_101[6] = { 'e', 'r', 'e', 'm', 'o', 's' };
+static const symbol s_6_102[6] = { 'i', 'r', 'e', 'm', 'o', 's' };
+static const symbol s_6_103[7] = { 0xE1, 's', 's', 'e', 'm', 'o', 's' };
+static const symbol s_6_104[7] = { 0xEA, 's', 's', 'e', 'm', 'o', 's' };
+static const symbol s_6_105[7] = { 0xED, 's', 's', 'e', 'm', 'o', 's' };
+static const symbol s_6_106[4] = { 'i', 'm', 'o', 's' };
+static const symbol s_6_107[5] = { 'a', 'r', 'm', 'o', 's' };
+static const symbol s_6_108[5] = { 'e', 'r', 'm', 'o', 's' };
+static const symbol s_6_109[5] = { 'i', 'r', 'm', 'o', 's' };
+static const symbol s_6_110[4] = { 0xE1, 'm', 'o', 's' };
+static const symbol s_6_111[4] = { 'a', 'r', 0xE1, 's' };
+static const symbol s_6_112[4] = { 'e', 'r', 0xE1, 's' };
+static const symbol s_6_113[4] = { 'i', 'r', 0xE1, 's' };
+static const symbol s_6_114[2] = { 'e', 'u' };
+static const symbol s_6_115[2] = { 'i', 'u' };
+static const symbol s_6_116[2] = { 'o', 'u' };
+static const symbol s_6_117[3] = { 'a', 'r', 0xE1 };
+static const symbol s_6_118[3] = { 'e', 'r', 0xE1 };
+static const symbol s_6_119[3] = { 'i', 'r', 0xE1 };
+
+static const struct among a_6[120] =
+{
+{ 3, s_6_0, -1, 1, 0},
+{ 3, s_6_1, -1, 1, 0},
+{ 2, s_6_2, -1, 1, 0},
+{ 4, s_6_3, 2, 1, 0},
+{ 4, s_6_4, 2, 1, 0},
+{ 4, s_6_5, 2, 1, 0},
+{ 3, s_6_6, -1, 1, 0},
+{ 3, s_6_7, -1, 1, 0},
+{ 3, s_6_8, -1, 1, 0},
+{ 3, s_6_9, -1, 1, 0},
+{ 4, s_6_10, -1, 1, 0},
+{ 4, s_6_11, -1, 1, 0},
+{ 4, s_6_12, -1, 1, 0},
+{ 4, s_6_13, -1, 1, 0},
+{ 4, s_6_14, -1, 1, 0},
+{ 4, s_6_15, -1, 1, 0},
+{ 2, s_6_16, -1, 1, 0},
+{ 4, s_6_17, 16, 1, 0},
+{ 4, s_6_18, 16, 1, 0},
+{ 4, s_6_19, 16, 1, 0},
+{ 2, s_6_20, -1, 1, 0},
+{ 3, s_6_21, 20, 1, 0},
+{ 5, s_6_22, 21, 1, 0},
+{ 5, s_6_23, 21, 1, 0},
+{ 5, s_6_24, 21, 1, 0},
+{ 4, s_6_25, 20, 1, 0},
+{ 4, s_6_26, 20, 1, 0},
+{ 4, s_6_27, 20, 1, 0},
+{ 4, s_6_28, 20, 1, 0},
+{ 2, s_6_29, -1, 1, 0},
+{ 4, s_6_30, 29, 1, 0},
+{ 4, s_6_31, 29, 1, 0},
+{ 4, s_6_32, 29, 1, 0},
+{ 5, s_6_33, 29, 1, 0},
+{ 5, s_6_34, 29, 1, 0},
+{ 5, s_6_35, 29, 1, 0},
+{ 3, s_6_36, -1, 1, 0},
+{ 3, s_6_37, -1, 1, 0},
+{ 4, s_6_38, -1, 1, 0},
+{ 4, s_6_39, -1, 1, 0},
+{ 4, s_6_40, -1, 1, 0},
+{ 5, s_6_41, -1, 1, 0},
+{ 5, s_6_42, -1, 1, 0},
+{ 5, s_6_43, -1, 1, 0},
+{ 2, s_6_44, -1, 1, 0},
+{ 2, s_6_45, -1, 1, 0},
+{ 2, s_6_46, -1, 1, 0},
+{ 2, s_6_47, -1, 1, 0},
+{ 4, s_6_48, 47, 1, 0},
+{ 4, s_6_49, 47, 1, 0},
+{ 3, s_6_50, 47, 1, 0},
+{ 5, s_6_51, 50, 1, 0},
+{ 5, s_6_52, 50, 1, 0},
+{ 5, s_6_53, 50, 1, 0},
+{ 4, s_6_54, 47, 1, 0},
+{ 4, s_6_55, 47, 1, 0},
+{ 4, s_6_56, 47, 1, 0},
+{ 4, s_6_57, 47, 1, 0},
+{ 2, s_6_58, -1, 1, 0},
+{ 5, s_6_59, 58, 1, 0},
+{ 5, s_6_60, 58, 1, 0},
+{ 5, s_6_61, 58, 1, 0},
+{ 4, s_6_62, 58, 1, 0},
+{ 4, s_6_63, 58, 1, 0},
+{ 4, s_6_64, 58, 1, 0},
+{ 5, s_6_65, 58, 1, 0},
+{ 5, s_6_66, 58, 1, 0},
+{ 5, s_6_67, 58, 1, 0},
+{ 5, s_6_68, 58, 1, 0},
+{ 5, s_6_69, 58, 1, 0},
+{ 5, s_6_70, 58, 1, 0},
+{ 2, s_6_71, -1, 1, 0},
+{ 3, s_6_72, 71, 1, 0},
+{ 3, s_6_73, 71, 1, 0},
+{ 5, s_6_74, 73, 1, 0},
+{ 5, s_6_75, 73, 1, 0},
+{ 5, s_6_76, 73, 1, 0},
+{ 5, s_6_77, 73, 1, 0},
+{ 5, s_6_78, 73, 1, 0},
+{ 5, s_6_79, 73, 1, 0},
+{ 6, s_6_80, 73, 1, 0},
+{ 6, s_6_81, 73, 1, 0},
+{ 6, s_6_82, 73, 1, 0},
+{ 5, s_6_83, 73, 1, 0},
+{ 4, s_6_84, 73, 1, 0},
+{ 6, s_6_85, 84, 1, 0},
+{ 6, s_6_86, 84, 1, 0},
+{ 6, s_6_87, 84, 1, 0},
+{ 4, s_6_88, -1, 1, 0},
+{ 4, s_6_89, -1, 1, 0},
+{ 4, s_6_90, -1, 1, 0},
+{ 6, s_6_91, 90, 1, 0},
+{ 6, s_6_92, 90, 1, 0},
+{ 6, s_6_93, 90, 1, 0},
+{ 6, s_6_94, 90, 1, 0},
+{ 5, s_6_95, 90, 1, 0},
+{ 7, s_6_96, 95, 1, 0},
+{ 7, s_6_97, 95, 1, 0},
+{ 7, s_6_98, 95, 1, 0},
+{ 4, s_6_99, -1, 1, 0},
+{ 6, s_6_100, 99, 1, 0},
+{ 6, s_6_101, 99, 1, 0},
+{ 6, s_6_102, 99, 1, 0},
+{ 7, s_6_103, 99, 1, 0},
+{ 7, s_6_104, 99, 1, 0},
+{ 7, s_6_105, 99, 1, 0},
+{ 4, s_6_106, -1, 1, 0},
+{ 5, s_6_107, -1, 1, 0},
+{ 5, s_6_108, -1, 1, 0},
+{ 5, s_6_109, -1, 1, 0},
+{ 4, s_6_110, -1, 1, 0},
+{ 4, s_6_111, -1, 1, 0},
+{ 4, s_6_112, -1, 1, 0},
+{ 4, s_6_113, -1, 1, 0},
+{ 2, s_6_114, -1, 1, 0},
+{ 2, s_6_115, -1, 1, 0},
+{ 2, s_6_116, -1, 1, 0},
+{ 3, s_6_117, -1, 1, 0},
+{ 3, s_6_118, -1, 1, 0},
+{ 3, s_6_119, -1, 1, 0}
+};
+
+static const symbol s_7_0[1] = { 'a' };
+static const symbol s_7_1[1] = { 'i' };
+static const symbol s_7_2[1] = { 'o' };
+static const symbol s_7_3[2] = { 'o', 's' };
+static const symbol s_7_4[1] = { 0xE1 };
+static const symbol s_7_5[1] = { 0xED };
+static const symbol s_7_6[1] = { 0xF3 };
+
+static const struct among a_7[7] =
+{
+{ 1, s_7_0, -1, 1, 0},
+{ 1, s_7_1, -1, 1, 0},
+{ 1, s_7_2, -1, 1, 0},
+{ 2, s_7_3, -1, 1, 0},
+{ 1, s_7_4, -1, 1, 0},
+{ 1, s_7_5, -1, 1, 0},
+{ 1, s_7_6, -1, 1, 0}
+};
+
+static const symbol s_8_0[1] = { 'e' };
+static const symbol s_8_1[1] = { 0xE7 };
+static const symbol s_8_2[1] = { 0xE9 };
+static const symbol s_8_3[1] = { 0xEA };
+
+static const struct among a_8[4] =
+{
+{ 1, s_8_0, -1, 1, 0},
+{ 1, s_8_1, -1, 2, 0},
+{ 1, s_8_2, -1, 1, 0},
+{ 1, s_8_3, -1, 1, 0}
+};
+
+static const unsigned char g_v[] = { 17, 65, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 19, 12, 2 };
+
+static const symbol s_0[] = { 'a', '~' };
+static const symbol s_1[] = { 'o', '~' };
+static const symbol s_2[] = { 0xE3 };
+static const symbol s_3[] = { 0xF5 };
+static const symbol s_4[] = { 'l', 'o', 'g' };
+static const symbol s_5[] = { 'u' };
+static const symbol s_6[] = { 'e', 'n', 't', 'e' };
+static const symbol s_7[] = { 'a', 't' };
+static const symbol s_8[] = { 'a', 't' };
+static const symbol s_9[] = { 'i', 'r' };
+static const symbol s_10[] = { 'c' };
+
+static int r_prelude(struct SN_env * z) {
+ int among_var;
+ while(1) {
+ int c1 = z->c;
+ z->bra = z->c;
+ if (z->c >= z->l || (z->p[z->c + 0] != 227 && z->p[z->c + 0] != 245)) among_var = 3; else
+ among_var = find_among(z, a_0, 3);
+ if (!(among_var)) goto lab0;
+ z->ket = z->c;
+ switch (among_var) {
+ case 1:
+ { int ret = slice_from_s(z, 2, s_0);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 2:
+ { int ret = slice_from_s(z, 2, s_1);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 3:
+ if (z->c >= z->l) goto lab0;
+ z->c++;
+ break;
+ }
+ continue;
+ lab0:
+ z->c = c1;
+ break;
+ }
+ return 1;
+}
+
+static int r_mark_regions(struct SN_env * z) {
+ z->I[2] = z->l;
+ z->I[1] = z->l;
+ z->I[0] = z->l;
+ { int c1 = z->c;
+ { int c2 = z->c;
+ if (in_grouping(z, g_v, 97, 250, 0)) goto lab2;
+ { int c3 = z->c;
+ if (out_grouping(z, g_v, 97, 250, 0)) goto lab4;
+ {
+ int ret = out_grouping(z, g_v, 97, 250, 1);
+ if (ret < 0) goto lab4;
+ z->c += ret;
+ }
+ goto lab3;
+ lab4:
+ z->c = c3;
+ if (in_grouping(z, g_v, 97, 250, 0)) goto lab2;
+ {
+ int ret = in_grouping(z, g_v, 97, 250, 1);
+ if (ret < 0) goto lab2;
+ z->c += ret;
+ }
+ }
+ lab3:
+ goto lab1;
+ lab2:
+ z->c = c2;
+ if (out_grouping(z, g_v, 97, 250, 0)) goto lab0;
+ { int c4 = z->c;
+ if (out_grouping(z, g_v, 97, 250, 0)) goto lab6;
+ {
+ int ret = out_grouping(z, g_v, 97, 250, 1);
+ if (ret < 0) goto lab6;
+ z->c += ret;
+ }
+ goto lab5;
+ lab6:
+ z->c = c4;
+ if (in_grouping(z, g_v, 97, 250, 0)) goto lab0;
+ if (z->c >= z->l) goto lab0;
+ z->c++;
+ }
+ lab5:
+ ;
+ }
+ lab1:
+ z->I[2] = z->c;
+ lab0:
+ z->c = c1;
+ }
+ { int c5 = z->c;
+ {
+ int ret = out_grouping(z, g_v, 97, 250, 1);
+ if (ret < 0) goto lab7;
+ z->c += ret;
+ }
+ {
+ int ret = in_grouping(z, g_v, 97, 250, 1);
+ if (ret < 0) goto lab7;
+ z->c += ret;
+ }
+ z->I[1] = z->c;
+ {
+ int ret = out_grouping(z, g_v, 97, 250, 1);
+ if (ret < 0) goto lab7;
+ z->c += ret;
+ }
+ {
+ int ret = in_grouping(z, g_v, 97, 250, 1);
+ if (ret < 0) goto lab7;
+ z->c += ret;
+ }
+ z->I[0] = z->c;
+ lab7:
+ z->c = c5;
+ }
+ return 1;
+}
+
+static int r_postlude(struct SN_env * z) {
+ int among_var;
+ while(1) {
+ int c1 = z->c;
+ z->bra = z->c;
+ if (z->c + 1 >= z->l || z->p[z->c + 1] != 126) among_var = 3; else
+ among_var = find_among(z, a_1, 3);
+ if (!(among_var)) goto lab0;
+ z->ket = z->c;
+ switch (among_var) {
+ case 1:
+ { int ret = slice_from_s(z, 1, s_2);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 2:
+ { int ret = slice_from_s(z, 1, s_3);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 3:
+ if (z->c >= z->l) goto lab0;
+ z->c++;
+ break;
+ }
+ continue;
+ lab0:
+ z->c = c1;
+ break;
+ }
+ return 1;
+}
+
+static int r_RV(struct SN_env * z) {
+ if (!(z->I[2] <= z->c)) return 0;
+ return 1;
+}
+
+static int r_R1(struct SN_env * z) {
+ if (!(z->I[1] <= z->c)) return 0;
+ return 1;
+}
+
+static int r_R2(struct SN_env * z) {
+ if (!(z->I[0] <= z->c)) return 0;
+ return 1;
+}
+
+static int r_standard_suffix(struct SN_env * z) {
+ int among_var;
+ z->ket = z->c;
+ if (z->c - 2 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((823330 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
+ among_var = find_among_b(z, a_5, 45);
+ if (!(among_var)) return 0;
+ z->bra = z->c;
+ switch (among_var) {
+ case 1:
+ { int ret = r_R2(z);
+ if (ret <= 0) return ret;
+ }
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 2:
+ { int ret = r_R2(z);
+ if (ret <= 0) return ret;
+ }
+ { int ret = slice_from_s(z, 3, s_4);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 3:
+ { int ret = r_R2(z);
+ if (ret <= 0) return ret;
+ }
+ { int ret = slice_from_s(z, 1, s_5);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 4:
+ { int ret = r_R2(z);
+ if (ret <= 0) return ret;
+ }
+ { int ret = slice_from_s(z, 4, s_6);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 5:
+ { int ret = r_R1(z);
+ if (ret <= 0) return ret;
+ }
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ { int m1 = z->l - z->c; (void)m1;
+ z->ket = z->c;
+ if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((4718616 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->c = z->l - m1; goto lab0; }
+ among_var = find_among_b(z, a_2, 4);
+ if (!(among_var)) { z->c = z->l - m1; goto lab0; }
+ z->bra = z->c;
+ { int ret = r_R2(z);
+ if (ret == 0) { z->c = z->l - m1; goto lab0; }
+ if (ret < 0) return ret;
+ }
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ switch (among_var) {
+ case 1:
+ z->ket = z->c;
+ if (!(eq_s_b(z, 2, s_7))) { z->c = z->l - m1; goto lab0; }
+ z->bra = z->c;
+ { int ret = r_R2(z);
+ if (ret == 0) { z->c = z->l - m1; goto lab0; }
+ if (ret < 0) return ret;
+ }
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ break;
+ }
+ lab0:
+ ;
+ }
+ break;
+ case 6:
+ { int ret = r_R2(z);
+ if (ret <= 0) return ret;
+ }
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ { int m2 = z->l - z->c; (void)m2;
+ z->ket = z->c;
+ if (z->c - 3 <= z->lb || (z->p[z->c - 1] != 101 && z->p[z->c - 1] != 108)) { z->c = z->l - m2; goto lab1; }
+ if (!(find_among_b(z, a_3, 3))) { z->c = z->l - m2; goto lab1; }
+ z->bra = z->c;
+ { int ret = r_R2(z);
+ if (ret == 0) { z->c = z->l - m2; goto lab1; }
+ if (ret < 0) return ret;
+ }
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ lab1:
+ ;
+ }
+ break;
+ case 7:
+ { int ret = r_R2(z);
+ if (ret <= 0) return ret;
+ }
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ { int m3 = z->l - z->c; (void)m3;
+ z->ket = z->c;
+ 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 - m3; goto lab2; }
+ if (!(find_among_b(z, a_4, 3))) { z->c = z->l - m3; goto lab2; }
+ z->bra = z->c;
+ { int ret = r_R2(z);
+ if (ret == 0) { z->c = z->l - m3; goto lab2; }
+ if (ret < 0) return ret;
+ }
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ lab2:
+ ;
+ }
+ break;
+ case 8:
+ { int ret = r_R2(z);
+ if (ret <= 0) return ret;
+ }
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ { int m4 = z->l - z->c; (void)m4;
+ z->ket = z->c;
+ if (!(eq_s_b(z, 2, s_8))) { z->c = z->l - m4; goto lab3; }
+ z->bra = z->c;
+ { int ret = r_R2(z);
+ if (ret == 0) { z->c = z->l - m4; goto lab3; }
+ if (ret < 0) return ret;
+ }
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ lab3:
+ ;
+ }
+ break;
+ case 9:
+ { int ret = r_RV(z);
+ if (ret <= 0) return ret;
+ }
+ if (z->c <= z->lb || z->p[z->c - 1] != 'e') return 0;
+ z->c--;
+ { int ret = slice_from_s(z, 2, s_9);
+ if (ret < 0) return ret;
+ }
+ break;
+ }
+ return 1;
+}
+
+static int r_verb_suffix(struct SN_env * z) {
+
+ { int mlimit1;
+ if (z->c < z->I[2]) return 0;
+ mlimit1 = z->lb; z->lb = z->I[2];
+ z->ket = z->c;
+ if (!(find_among_b(z, a_6, 120))) { z->lb = mlimit1; return 0; }
+ z->bra = z->c;
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ z->lb = mlimit1;
+ }
+ return 1;
+}
+
+static int r_residual_suffix(struct SN_env * z) {
+ z->ket = z->c;
+ if (!(find_among_b(z, a_7, 7))) return 0;
+ z->bra = z->c;
+ { int ret = r_RV(z);
+ if (ret <= 0) return ret;
+ }
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ return 1;
+}
+
+static int r_residual_form(struct SN_env * z) {
+ int among_var;
+ z->ket = z->c;
+ among_var = find_among_b(z, a_8, 4);
+ if (!(among_var)) return 0;
+ z->bra = z->c;
+ switch (among_var) {
+ case 1:
+ { int ret = r_RV(z);
+ if (ret <= 0) return ret;
+ }
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ z->ket = z->c;
+ { int m1 = z->l - z->c; (void)m1;
+ if (z->c <= z->lb || z->p[z->c - 1] != 'u') goto lab1;
+ z->c--;
+ z->bra = z->c;
+ { int m_test2 = z->l - z->c;
+ if (z->c <= z->lb || z->p[z->c - 1] != 'g') goto lab1;
+ z->c--;
+ z->c = z->l - m_test2;
+ }
+ goto lab0;
+ lab1:
+ z->c = z->l - m1;
+ if (z->c <= z->lb || z->p[z->c - 1] != 'i') return 0;
+ z->c--;
+ z->bra = z->c;
+ { int m_test3 = z->l - z->c;
+ if (z->c <= z->lb || z->p[z->c - 1] != 'c') return 0;
+ z->c--;
+ z->c = z->l - m_test3;
+ }
+ }
+ lab0:
+ { int ret = r_RV(z);
+ if (ret <= 0) return ret;
+ }
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 2:
+ { int ret = slice_from_s(z, 1, s_10);
+ if (ret < 0) return ret;
+ }
+ break;
+ }
+ return 1;
+}
+
+extern int portuguese_ISO_8859_1_stem(struct SN_env * z) {
+ { int c1 = z->c;
+ { int ret = r_prelude(z);
+ if (ret < 0) return ret;
+ }
+ z->c = c1;
+ }
+
+ { int ret = r_mark_regions(z);
+ if (ret < 0) return ret;
+ }
+ z->lb = z->c; z->c = z->l;
+
+ { int m2 = z->l - z->c; (void)m2;
+ { int m3 = z->l - z->c; (void)m3;
+ { int m4 = z->l - z->c; (void)m4;
+ { int m5 = z->l - z->c; (void)m5;
+ { int ret = r_standard_suffix(z);
+ if (ret == 0) goto lab4;
+ if (ret < 0) return ret;
+ }
+ goto lab3;
+ lab4:
+ z->c = z->l - m5;
+ { int ret = r_verb_suffix(z);
+ if (ret == 0) goto lab2;
+ if (ret < 0) return ret;
+ }
+ }
+ lab3:
+ z->c = z->l - m4;
+ { int m6 = z->l - z->c; (void)m6;
+ z->ket = z->c;
+ if (z->c <= z->lb || z->p[z->c - 1] != 'i') goto lab5;
+ z->c--;
+ z->bra = z->c;
+ { int m_test7 = z->l - z->c;
+ if (z->c <= z->lb || z->p[z->c - 1] != 'c') goto lab5;
+ z->c--;
+ z->c = z->l - m_test7;
+ }
+ { int ret = r_RV(z);
+ if (ret == 0) goto lab5;
+ if (ret < 0) return ret;
+ }
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ lab5:
+ z->c = z->l - m6;
+ }
+ }
+ goto lab1;
+ lab2:
+ z->c = z->l - m3;
+ { int ret = r_residual_suffix(z);
+ if (ret == 0) goto lab0;
+ if (ret < 0) return ret;
+ }
+ }
+ lab1:
+ lab0:
+ z->c = z->l - m2;
+ }
+ { int m8 = z->l - z->c; (void)m8;
+ { int ret = r_residual_form(z);
+ if (ret < 0) return ret;
+ }
+ z->c = z->l - m8;
+ }
+ z->c = z->lb;
+ { int c9 = z->c;
+ { int ret = r_postlude(z);
+ if (ret < 0) return ret;
+ }
+ z->c = c9;
+ }
+ return 1;
+}
+
+extern struct SN_env * portuguese_ISO_8859_1_create_env(void) { return SN_create_env(0, 3); }
+
+extern void portuguese_ISO_8859_1_close_env(struct SN_env * z) { SN_close_env(z, 0); }
+
diff --git a/src/backend/snowball/libstemmer/stem_ISO_8859_1_spanish.c b/src/backend/snowball/libstemmer/stem_ISO_8859_1_spanish.c
new file mode 100644
index 0000000..9fb6d3b
--- /dev/null
+++ b/src/backend/snowball/libstemmer/stem_ISO_8859_1_spanish.c
@@ -0,0 +1,1041 @@
+/* Generated by Snowball 2.2.0 - https://snowballstem.org/ */
+
+#include "header.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+extern int spanish_ISO_8859_1_stem(struct SN_env * z);
+#ifdef __cplusplus
+}
+#endif
+static int r_residual_suffix(struct SN_env * z);
+static int r_verb_suffix(struct SN_env * z);
+static int r_y_verb_suffix(struct SN_env * z);
+static int r_standard_suffix(struct SN_env * z);
+static int r_attached_pronoun(struct SN_env * z);
+static int r_R2(struct SN_env * z);
+static int r_R1(struct SN_env * z);
+static int r_RV(struct SN_env * z);
+static int r_mark_regions(struct SN_env * z);
+static int r_postlude(struct SN_env * z);
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+extern struct SN_env * spanish_ISO_8859_1_create_env(void);
+extern void spanish_ISO_8859_1_close_env(struct SN_env * z);
+
+
+#ifdef __cplusplus
+}
+#endif
+static const symbol s_0_1[1] = { 0xE1 };
+static const symbol s_0_2[1] = { 0xE9 };
+static const symbol s_0_3[1] = { 0xED };
+static const symbol s_0_4[1] = { 0xF3 };
+static const symbol s_0_5[1] = { 0xFA };
+
+static const struct among a_0[6] =
+{
+{ 0, 0, -1, 6, 0},
+{ 1, s_0_1, 0, 1, 0},
+{ 1, s_0_2, 0, 2, 0},
+{ 1, s_0_3, 0, 3, 0},
+{ 1, s_0_4, 0, 4, 0},
+{ 1, s_0_5, 0, 5, 0}
+};
+
+static const symbol s_1_0[2] = { 'l', 'a' };
+static const symbol s_1_1[4] = { 's', 'e', 'l', 'a' };
+static const symbol s_1_2[2] = { 'l', 'e' };
+static const symbol s_1_3[2] = { 'm', 'e' };
+static const symbol s_1_4[2] = { 's', 'e' };
+static const symbol s_1_5[2] = { 'l', 'o' };
+static const symbol s_1_6[4] = { 's', 'e', 'l', 'o' };
+static const symbol s_1_7[3] = { 'l', 'a', 's' };
+static const symbol s_1_8[5] = { 's', 'e', 'l', 'a', 's' };
+static const symbol s_1_9[3] = { 'l', 'e', 's' };
+static const symbol s_1_10[3] = { 'l', 'o', 's' };
+static const symbol s_1_11[5] = { 's', 'e', 'l', 'o', 's' };
+static const symbol s_1_12[3] = { 'n', 'o', 's' };
+
+static const struct among a_1[13] =
+{
+{ 2, s_1_0, -1, -1, 0},
+{ 4, s_1_1, 0, -1, 0},
+{ 2, s_1_2, -1, -1, 0},
+{ 2, s_1_3, -1, -1, 0},
+{ 2, s_1_4, -1, -1, 0},
+{ 2, s_1_5, -1, -1, 0},
+{ 4, s_1_6, 5, -1, 0},
+{ 3, s_1_7, -1, -1, 0},
+{ 5, s_1_8, 7, -1, 0},
+{ 3, s_1_9, -1, -1, 0},
+{ 3, s_1_10, -1, -1, 0},
+{ 5, s_1_11, 10, -1, 0},
+{ 3, s_1_12, -1, -1, 0}
+};
+
+static const symbol s_2_0[4] = { 'a', 'n', 'd', 'o' };
+static const symbol s_2_1[5] = { 'i', 'e', 'n', 'd', 'o' };
+static const symbol s_2_2[5] = { 'y', 'e', 'n', 'd', 'o' };
+static const symbol s_2_3[4] = { 0xE1, 'n', 'd', 'o' };
+static const symbol s_2_4[5] = { 'i', 0xE9, 'n', 'd', 'o' };
+static const symbol s_2_5[2] = { 'a', 'r' };
+static const symbol s_2_6[2] = { 'e', 'r' };
+static const symbol s_2_7[2] = { 'i', 'r' };
+static const symbol s_2_8[2] = { 0xE1, 'r' };
+static const symbol s_2_9[2] = { 0xE9, 'r' };
+static const symbol s_2_10[2] = { 0xED, 'r' };
+
+static const struct among a_2[11] =
+{
+{ 4, s_2_0, -1, 6, 0},
+{ 5, s_2_1, -1, 6, 0},
+{ 5, s_2_2, -1, 7, 0},
+{ 4, s_2_3, -1, 2, 0},
+{ 5, s_2_4, -1, 1, 0},
+{ 2, s_2_5, -1, 6, 0},
+{ 2, s_2_6, -1, 6, 0},
+{ 2, s_2_7, -1, 6, 0},
+{ 2, s_2_8, -1, 3, 0},
+{ 2, s_2_9, -1, 4, 0},
+{ 2, s_2_10, -1, 5, 0}
+};
+
+static const symbol s_3_0[2] = { 'i', 'c' };
+static const symbol s_3_1[2] = { 'a', 'd' };
+static const symbol s_3_2[2] = { 'o', 's' };
+static const symbol s_3_3[2] = { 'i', 'v' };
+
+static const struct among a_3[4] =
+{
+{ 2, s_3_0, -1, -1, 0},
+{ 2, s_3_1, -1, -1, 0},
+{ 2, s_3_2, -1, -1, 0},
+{ 2, s_3_3, -1, 1, 0}
+};
+
+static const symbol s_4_0[4] = { 'a', 'b', 'l', 'e' };
+static const symbol s_4_1[4] = { 'i', 'b', 'l', 'e' };
+static const symbol s_4_2[4] = { 'a', 'n', 't', 'e' };
+
+static const struct among a_4[3] =
+{
+{ 4, s_4_0, -1, 1, 0},
+{ 4, s_4_1, -1, 1, 0},
+{ 4, s_4_2, -1, 1, 0}
+};
+
+static const symbol s_5_0[2] = { 'i', 'c' };
+static const symbol s_5_1[4] = { 'a', 'b', 'i', 'l' };
+static const symbol s_5_2[2] = { 'i', 'v' };
+
+static const struct among a_5[3] =
+{
+{ 2, s_5_0, -1, 1, 0},
+{ 4, s_5_1, -1, 1, 0},
+{ 2, s_5_2, -1, 1, 0}
+};
+
+static const symbol s_6_0[3] = { 'i', 'c', 'a' };
+static const symbol s_6_1[5] = { 'a', 'n', 'c', 'i', 'a' };
+static const symbol s_6_2[5] = { 'e', 'n', 'c', 'i', 'a' };
+static const symbol s_6_3[5] = { 'a', 'd', 'o', 'r', 'a' };
+static const symbol s_6_4[3] = { 'o', 's', 'a' };
+static const symbol s_6_5[4] = { 'i', 's', 't', 'a' };
+static const symbol s_6_6[3] = { 'i', 'v', 'a' };
+static const symbol s_6_7[4] = { 'a', 'n', 'z', 'a' };
+static const symbol s_6_8[5] = { 'l', 'o', 'g', 0xED, 'a' };
+static const symbol s_6_9[4] = { 'i', 'd', 'a', 'd' };
+static const symbol s_6_10[4] = { 'a', 'b', 'l', 'e' };
+static const symbol s_6_11[4] = { 'i', 'b', 'l', 'e' };
+static const symbol s_6_12[4] = { 'a', 'n', 't', 'e' };
+static const symbol s_6_13[5] = { 'm', 'e', 'n', 't', 'e' };
+static const symbol s_6_14[6] = { 'a', 'm', 'e', 'n', 't', 'e' };
+static const symbol s_6_15[5] = { 'a', 'c', 'i', 0xF3, 'n' };
+static const symbol s_6_16[5] = { 'u', 'c', 'i', 0xF3, 'n' };
+static const symbol s_6_17[3] = { 'i', 'c', 'o' };
+static const symbol s_6_18[4] = { 'i', 's', 'm', 'o' };
+static const symbol s_6_19[3] = { 'o', 's', 'o' };
+static const symbol s_6_20[7] = { 'a', 'm', 'i', 'e', 'n', 't', 'o' };
+static const symbol s_6_21[7] = { 'i', 'm', 'i', 'e', 'n', 't', 'o' };
+static const symbol s_6_22[3] = { 'i', 'v', 'o' };
+static const symbol s_6_23[4] = { 'a', 'd', 'o', 'r' };
+static const symbol s_6_24[4] = { 'i', 'c', 'a', 's' };
+static const symbol s_6_25[6] = { 'a', 'n', 'c', 'i', 'a', 's' };
+static const symbol s_6_26[6] = { 'e', 'n', 'c', 'i', 'a', 's' };
+static const symbol s_6_27[6] = { 'a', 'd', 'o', 'r', 'a', 's' };
+static const symbol s_6_28[4] = { 'o', 's', 'a', 's' };
+static const symbol s_6_29[5] = { 'i', 's', 't', 'a', 's' };
+static const symbol s_6_30[4] = { 'i', 'v', 'a', 's' };
+static const symbol s_6_31[5] = { 'a', 'n', 'z', 'a', 's' };
+static const symbol s_6_32[6] = { 'l', 'o', 'g', 0xED, 'a', 's' };
+static const symbol s_6_33[6] = { 'i', 'd', 'a', 'd', 'e', 's' };
+static const symbol s_6_34[5] = { 'a', 'b', 'l', 'e', 's' };
+static const symbol s_6_35[5] = { 'i', 'b', 'l', 'e', 's' };
+static const symbol s_6_36[7] = { 'a', 'c', 'i', 'o', 'n', 'e', 's' };
+static const symbol s_6_37[7] = { 'u', 'c', 'i', 'o', 'n', 'e', 's' };
+static const symbol s_6_38[6] = { 'a', 'd', 'o', 'r', 'e', 's' };
+static const symbol s_6_39[5] = { 'a', 'n', 't', 'e', 's' };
+static const symbol s_6_40[4] = { 'i', 'c', 'o', 's' };
+static const symbol s_6_41[5] = { 'i', 's', 'm', 'o', 's' };
+static const symbol s_6_42[4] = { 'o', 's', 'o', 's' };
+static const symbol s_6_43[8] = { 'a', 'm', 'i', 'e', 'n', 't', 'o', 's' };
+static const symbol s_6_44[8] = { 'i', 'm', 'i', 'e', 'n', 't', 'o', 's' };
+static const symbol s_6_45[4] = { 'i', 'v', 'o', 's' };
+
+static const struct among a_6[46] =
+{
+{ 3, s_6_0, -1, 1, 0},
+{ 5, s_6_1, -1, 2, 0},
+{ 5, s_6_2, -1, 5, 0},
+{ 5, s_6_3, -1, 2, 0},
+{ 3, s_6_4, -1, 1, 0},
+{ 4, s_6_5, -1, 1, 0},
+{ 3, s_6_6, -1, 9, 0},
+{ 4, s_6_7, -1, 1, 0},
+{ 5, s_6_8, -1, 3, 0},
+{ 4, s_6_9, -1, 8, 0},
+{ 4, s_6_10, -1, 1, 0},
+{ 4, s_6_11, -1, 1, 0},
+{ 4, s_6_12, -1, 2, 0},
+{ 5, s_6_13, -1, 7, 0},
+{ 6, s_6_14, 13, 6, 0},
+{ 5, s_6_15, -1, 2, 0},
+{ 5, s_6_16, -1, 4, 0},
+{ 3, s_6_17, -1, 1, 0},
+{ 4, s_6_18, -1, 1, 0},
+{ 3, s_6_19, -1, 1, 0},
+{ 7, s_6_20, -1, 1, 0},
+{ 7, s_6_21, -1, 1, 0},
+{ 3, s_6_22, -1, 9, 0},
+{ 4, s_6_23, -1, 2, 0},
+{ 4, s_6_24, -1, 1, 0},
+{ 6, s_6_25, -1, 2, 0},
+{ 6, s_6_26, -1, 5, 0},
+{ 6, s_6_27, -1, 2, 0},
+{ 4, s_6_28, -1, 1, 0},
+{ 5, s_6_29, -1, 1, 0},
+{ 4, s_6_30, -1, 9, 0},
+{ 5, s_6_31, -1, 1, 0},
+{ 6, s_6_32, -1, 3, 0},
+{ 6, s_6_33, -1, 8, 0},
+{ 5, s_6_34, -1, 1, 0},
+{ 5, s_6_35, -1, 1, 0},
+{ 7, s_6_36, -1, 2, 0},
+{ 7, s_6_37, -1, 4, 0},
+{ 6, s_6_38, -1, 2, 0},
+{ 5, s_6_39, -1, 2, 0},
+{ 4, s_6_40, -1, 1, 0},
+{ 5, s_6_41, -1, 1, 0},
+{ 4, s_6_42, -1, 1, 0},
+{ 8, s_6_43, -1, 1, 0},
+{ 8, s_6_44, -1, 1, 0},
+{ 4, s_6_45, -1, 9, 0}
+};
+
+static const symbol s_7_0[2] = { 'y', 'a' };
+static const symbol s_7_1[2] = { 'y', 'e' };
+static const symbol s_7_2[3] = { 'y', 'a', 'n' };
+static const symbol s_7_3[3] = { 'y', 'e', 'n' };
+static const symbol s_7_4[5] = { 'y', 'e', 'r', 'o', 'n' };
+static const symbol s_7_5[5] = { 'y', 'e', 'n', 'd', 'o' };
+static const symbol s_7_6[2] = { 'y', 'o' };
+static const symbol s_7_7[3] = { 'y', 'a', 's' };
+static const symbol s_7_8[3] = { 'y', 'e', 's' };
+static const symbol s_7_9[4] = { 'y', 'a', 'i', 's' };
+static const symbol s_7_10[5] = { 'y', 'a', 'm', 'o', 's' };
+static const symbol s_7_11[2] = { 'y', 0xF3 };
+
+static const struct among a_7[12] =
+{
+{ 2, s_7_0, -1, 1, 0},
+{ 2, s_7_1, -1, 1, 0},
+{ 3, s_7_2, -1, 1, 0},
+{ 3, s_7_3, -1, 1, 0},
+{ 5, s_7_4, -1, 1, 0},
+{ 5, s_7_5, -1, 1, 0},
+{ 2, s_7_6, -1, 1, 0},
+{ 3, s_7_7, -1, 1, 0},
+{ 3, s_7_8, -1, 1, 0},
+{ 4, s_7_9, -1, 1, 0},
+{ 5, s_7_10, -1, 1, 0},
+{ 2, s_7_11, -1, 1, 0}
+};
+
+static const symbol s_8_0[3] = { 'a', 'b', 'a' };
+static const symbol s_8_1[3] = { 'a', 'd', 'a' };
+static const symbol s_8_2[3] = { 'i', 'd', 'a' };
+static const symbol s_8_3[3] = { 'a', 'r', 'a' };
+static const symbol s_8_4[4] = { 'i', 'e', 'r', 'a' };
+static const symbol s_8_5[2] = { 0xED, 'a' };
+static const symbol s_8_6[4] = { 'a', 'r', 0xED, 'a' };
+static const symbol s_8_7[4] = { 'e', 'r', 0xED, 'a' };
+static const symbol s_8_8[4] = { 'i', 'r', 0xED, 'a' };
+static const symbol s_8_9[2] = { 'a', 'd' };
+static const symbol s_8_10[2] = { 'e', 'd' };
+static const symbol s_8_11[2] = { 'i', 'd' };
+static const symbol s_8_12[3] = { 'a', 's', 'e' };
+static const symbol s_8_13[4] = { 'i', 'e', 's', 'e' };
+static const symbol s_8_14[4] = { 'a', 's', 't', 'e' };
+static const symbol s_8_15[4] = { 'i', 's', 't', 'e' };
+static const symbol s_8_16[2] = { 'a', 'n' };
+static const symbol s_8_17[4] = { 'a', 'b', 'a', 'n' };
+static const symbol s_8_18[4] = { 'a', 'r', 'a', 'n' };
+static const symbol s_8_19[5] = { 'i', 'e', 'r', 'a', 'n' };
+static const symbol s_8_20[3] = { 0xED, 'a', 'n' };
+static const symbol s_8_21[5] = { 'a', 'r', 0xED, 'a', 'n' };
+static const symbol s_8_22[5] = { 'e', 'r', 0xED, 'a', 'n' };
+static const symbol s_8_23[5] = { 'i', 'r', 0xED, 'a', 'n' };
+static const symbol s_8_24[2] = { 'e', 'n' };
+static const symbol s_8_25[4] = { 'a', 's', 'e', 'n' };
+static const symbol s_8_26[5] = { 'i', 'e', 's', 'e', 'n' };
+static const symbol s_8_27[4] = { 'a', 'r', 'o', 'n' };
+static const symbol s_8_28[5] = { 'i', 'e', 'r', 'o', 'n' };
+static const symbol s_8_29[4] = { 'a', 'r', 0xE1, 'n' };
+static const symbol s_8_30[4] = { 'e', 'r', 0xE1, 'n' };
+static const symbol s_8_31[4] = { 'i', 'r', 0xE1, 'n' };
+static const symbol s_8_32[3] = { 'a', 'd', 'o' };
+static const symbol s_8_33[3] = { 'i', 'd', 'o' };
+static const symbol s_8_34[4] = { 'a', 'n', 'd', 'o' };
+static const symbol s_8_35[5] = { 'i', 'e', 'n', 'd', 'o' };
+static const symbol s_8_36[2] = { 'a', 'r' };
+static const symbol s_8_37[2] = { 'e', 'r' };
+static const symbol s_8_38[2] = { 'i', 'r' };
+static const symbol s_8_39[2] = { 'a', 's' };
+static const symbol s_8_40[4] = { 'a', 'b', 'a', 's' };
+static const symbol s_8_41[4] = { 'a', 'd', 'a', 's' };
+static const symbol s_8_42[4] = { 'i', 'd', 'a', 's' };
+static const symbol s_8_43[4] = { 'a', 'r', 'a', 's' };
+static const symbol s_8_44[5] = { 'i', 'e', 'r', 'a', 's' };
+static const symbol s_8_45[3] = { 0xED, 'a', 's' };
+static const symbol s_8_46[5] = { 'a', 'r', 0xED, 'a', 's' };
+static const symbol s_8_47[5] = { 'e', 'r', 0xED, 'a', 's' };
+static const symbol s_8_48[5] = { 'i', 'r', 0xED, 'a', 's' };
+static const symbol s_8_49[2] = { 'e', 's' };
+static const symbol s_8_50[4] = { 'a', 's', 'e', 's' };
+static const symbol s_8_51[5] = { 'i', 'e', 's', 'e', 's' };
+static const symbol s_8_52[5] = { 'a', 'b', 'a', 'i', 's' };
+static const symbol s_8_53[5] = { 'a', 'r', 'a', 'i', 's' };
+static const symbol s_8_54[6] = { 'i', 'e', 'r', 'a', 'i', 's' };
+static const symbol s_8_55[4] = { 0xED, 'a', 'i', 's' };
+static const symbol s_8_56[6] = { 'a', 'r', 0xED, 'a', 'i', 's' };
+static const symbol s_8_57[6] = { 'e', 'r', 0xED, 'a', 'i', 's' };
+static const symbol s_8_58[6] = { 'i', 'r', 0xED, 'a', 'i', 's' };
+static const symbol s_8_59[5] = { 'a', 's', 'e', 'i', 's' };
+static const symbol s_8_60[6] = { 'i', 'e', 's', 'e', 'i', 's' };
+static const symbol s_8_61[6] = { 'a', 's', 't', 'e', 'i', 's' };
+static const symbol s_8_62[6] = { 'i', 's', 't', 'e', 'i', 's' };
+static const symbol s_8_63[3] = { 0xE1, 'i', 's' };
+static const symbol s_8_64[3] = { 0xE9, 'i', 's' };
+static const symbol s_8_65[5] = { 'a', 'r', 0xE9, 'i', 's' };
+static const symbol s_8_66[5] = { 'e', 'r', 0xE9, 'i', 's' };
+static const symbol s_8_67[5] = { 'i', 'r', 0xE9, 'i', 's' };
+static const symbol s_8_68[4] = { 'a', 'd', 'o', 's' };
+static const symbol s_8_69[4] = { 'i', 'd', 'o', 's' };
+static const symbol s_8_70[4] = { 'a', 'm', 'o', 's' };
+static const symbol s_8_71[6] = { 0xE1, 'b', 'a', 'm', 'o', 's' };
+static const symbol s_8_72[6] = { 0xE1, 'r', 'a', 'm', 'o', 's' };
+static const symbol s_8_73[7] = { 'i', 0xE9, 'r', 'a', 'm', 'o', 's' };
+static const symbol s_8_74[5] = { 0xED, 'a', 'm', 'o', 's' };
+static const symbol s_8_75[7] = { 'a', 'r', 0xED, 'a', 'm', 'o', 's' };
+static const symbol s_8_76[7] = { 'e', 'r', 0xED, 'a', 'm', 'o', 's' };
+static const symbol s_8_77[7] = { 'i', 'r', 0xED, 'a', 'm', 'o', 's' };
+static const symbol s_8_78[4] = { 'e', 'm', 'o', 's' };
+static const symbol s_8_79[6] = { 'a', 'r', 'e', 'm', 'o', 's' };
+static const symbol s_8_80[6] = { 'e', 'r', 'e', 'm', 'o', 's' };
+static const symbol s_8_81[6] = { 'i', 'r', 'e', 'm', 'o', 's' };
+static const symbol s_8_82[6] = { 0xE1, 's', 'e', 'm', 'o', 's' };
+static const symbol s_8_83[7] = { 'i', 0xE9, 's', 'e', 'm', 'o', 's' };
+static const symbol s_8_84[4] = { 'i', 'm', 'o', 's' };
+static const symbol s_8_85[4] = { 'a', 'r', 0xE1, 's' };
+static const symbol s_8_86[4] = { 'e', 'r', 0xE1, 's' };
+static const symbol s_8_87[4] = { 'i', 'r', 0xE1, 's' };
+static const symbol s_8_88[2] = { 0xED, 's' };
+static const symbol s_8_89[3] = { 'a', 'r', 0xE1 };
+static const symbol s_8_90[3] = { 'e', 'r', 0xE1 };
+static const symbol s_8_91[3] = { 'i', 'r', 0xE1 };
+static const symbol s_8_92[3] = { 'a', 'r', 0xE9 };
+static const symbol s_8_93[3] = { 'e', 'r', 0xE9 };
+static const symbol s_8_94[3] = { 'i', 'r', 0xE9 };
+static const symbol s_8_95[2] = { 'i', 0xF3 };
+
+static const struct among a_8[96] =
+{
+{ 3, s_8_0, -1, 2, 0},
+{ 3, s_8_1, -1, 2, 0},
+{ 3, s_8_2, -1, 2, 0},
+{ 3, s_8_3, -1, 2, 0},
+{ 4, s_8_4, -1, 2, 0},
+{ 2, s_8_5, -1, 2, 0},
+{ 4, s_8_6, 5, 2, 0},
+{ 4, s_8_7, 5, 2, 0},
+{ 4, s_8_8, 5, 2, 0},
+{ 2, s_8_9, -1, 2, 0},
+{ 2, s_8_10, -1, 2, 0},
+{ 2, s_8_11, -1, 2, 0},
+{ 3, s_8_12, -1, 2, 0},
+{ 4, s_8_13, -1, 2, 0},
+{ 4, s_8_14, -1, 2, 0},
+{ 4, s_8_15, -1, 2, 0},
+{ 2, s_8_16, -1, 2, 0},
+{ 4, s_8_17, 16, 2, 0},
+{ 4, s_8_18, 16, 2, 0},
+{ 5, s_8_19, 16, 2, 0},
+{ 3, s_8_20, 16, 2, 0},
+{ 5, s_8_21, 20, 2, 0},
+{ 5, s_8_22, 20, 2, 0},
+{ 5, s_8_23, 20, 2, 0},
+{ 2, s_8_24, -1, 1, 0},
+{ 4, s_8_25, 24, 2, 0},
+{ 5, s_8_26, 24, 2, 0},
+{ 4, s_8_27, -1, 2, 0},
+{ 5, s_8_28, -1, 2, 0},
+{ 4, s_8_29, -1, 2, 0},
+{ 4, s_8_30, -1, 2, 0},
+{ 4, s_8_31, -1, 2, 0},
+{ 3, s_8_32, -1, 2, 0},
+{ 3, s_8_33, -1, 2, 0},
+{ 4, s_8_34, -1, 2, 0},
+{ 5, s_8_35, -1, 2, 0},
+{ 2, s_8_36, -1, 2, 0},
+{ 2, s_8_37, -1, 2, 0},
+{ 2, s_8_38, -1, 2, 0},
+{ 2, s_8_39, -1, 2, 0},
+{ 4, s_8_40, 39, 2, 0},
+{ 4, s_8_41, 39, 2, 0},
+{ 4, s_8_42, 39, 2, 0},
+{ 4, s_8_43, 39, 2, 0},
+{ 5, s_8_44, 39, 2, 0},
+{ 3, s_8_45, 39, 2, 0},
+{ 5, s_8_46, 45, 2, 0},
+{ 5, s_8_47, 45, 2, 0},
+{ 5, s_8_48, 45, 2, 0},
+{ 2, s_8_49, -1, 1, 0},
+{ 4, s_8_50, 49, 2, 0},
+{ 5, s_8_51, 49, 2, 0},
+{ 5, s_8_52, -1, 2, 0},
+{ 5, s_8_53, -1, 2, 0},
+{ 6, s_8_54, -1, 2, 0},
+{ 4, s_8_55, -1, 2, 0},
+{ 6, s_8_56, 55, 2, 0},
+{ 6, s_8_57, 55, 2, 0},
+{ 6, s_8_58, 55, 2, 0},
+{ 5, s_8_59, -1, 2, 0},
+{ 6, s_8_60, -1, 2, 0},
+{ 6, s_8_61, -1, 2, 0},
+{ 6, s_8_62, -1, 2, 0},
+{ 3, s_8_63, -1, 2, 0},
+{ 3, s_8_64, -1, 1, 0},
+{ 5, s_8_65, 64, 2, 0},
+{ 5, s_8_66, 64, 2, 0},
+{ 5, s_8_67, 64, 2, 0},
+{ 4, s_8_68, -1, 2, 0},
+{ 4, s_8_69, -1, 2, 0},
+{ 4, s_8_70, -1, 2, 0},
+{ 6, s_8_71, 70, 2, 0},
+{ 6, s_8_72, 70, 2, 0},
+{ 7, s_8_73, 70, 2, 0},
+{ 5, s_8_74, 70, 2, 0},
+{ 7, s_8_75, 74, 2, 0},
+{ 7, s_8_76, 74, 2, 0},
+{ 7, s_8_77, 74, 2, 0},
+{ 4, s_8_78, -1, 1, 0},
+{ 6, s_8_79, 78, 2, 0},
+{ 6, s_8_80, 78, 2, 0},
+{ 6, s_8_81, 78, 2, 0},
+{ 6, s_8_82, 78, 2, 0},
+{ 7, s_8_83, 78, 2, 0},
+{ 4, s_8_84, -1, 2, 0},
+{ 4, s_8_85, -1, 2, 0},
+{ 4, s_8_86, -1, 2, 0},
+{ 4, s_8_87, -1, 2, 0},
+{ 2, s_8_88, -1, 2, 0},
+{ 3, s_8_89, -1, 2, 0},
+{ 3, s_8_90, -1, 2, 0},
+{ 3, s_8_91, -1, 2, 0},
+{ 3, s_8_92, -1, 2, 0},
+{ 3, s_8_93, -1, 2, 0},
+{ 3, s_8_94, -1, 2, 0},
+{ 2, s_8_95, -1, 2, 0}
+};
+
+static const symbol s_9_0[1] = { 'a' };
+static const symbol s_9_1[1] = { 'e' };
+static const symbol s_9_2[1] = { 'o' };
+static const symbol s_9_3[2] = { 'o', 's' };
+static const symbol s_9_4[1] = { 0xE1 };
+static const symbol s_9_5[1] = { 0xE9 };
+static const symbol s_9_6[1] = { 0xED };
+static const symbol s_9_7[1] = { 0xF3 };
+
+static const struct among a_9[8] =
+{
+{ 1, s_9_0, -1, 1, 0},
+{ 1, s_9_1, -1, 2, 0},
+{ 1, s_9_2, -1, 1, 0},
+{ 2, s_9_3, -1, 1, 0},
+{ 1, s_9_4, -1, 1, 0},
+{ 1, s_9_5, -1, 2, 0},
+{ 1, s_9_6, -1, 1, 0},
+{ 1, s_9_7, -1, 1, 0}
+};
+
+static const unsigned char g_v[] = { 17, 65, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 17, 4, 10 };
+
+static const symbol s_0[] = { 'a' };
+static const symbol s_1[] = { 'e' };
+static const symbol s_2[] = { 'i' };
+static const symbol s_3[] = { 'o' };
+static const symbol s_4[] = { 'u' };
+static const symbol s_5[] = { 'i', 'e', 'n', 'd', 'o' };
+static const symbol s_6[] = { 'a', 'n', 'd', 'o' };
+static const symbol s_7[] = { 'a', 'r' };
+static const symbol s_8[] = { 'e', 'r' };
+static const symbol s_9[] = { 'i', 'r' };
+static const symbol s_10[] = { 'i', 'c' };
+static const symbol s_11[] = { 'l', 'o', 'g' };
+static const symbol s_12[] = { 'u' };
+static const symbol s_13[] = { 'e', 'n', 't', 'e' };
+static const symbol s_14[] = { 'a', 't' };
+static const symbol s_15[] = { 'a', 't' };
+
+static int r_mark_regions(struct SN_env * z) {
+ z->I[2] = z->l;
+ z->I[1] = z->l;
+ z->I[0] = z->l;
+ { int c1 = z->c;
+ { int c2 = z->c;
+ if (in_grouping(z, g_v, 97, 252, 0)) goto lab2;
+ { int c3 = z->c;
+ if (out_grouping(z, g_v, 97, 252, 0)) goto lab4;
+ {
+ int ret = out_grouping(z, g_v, 97, 252, 1);
+ if (ret < 0) goto lab4;
+ z->c += ret;
+ }
+ goto lab3;
+ lab4:
+ z->c = c3;
+ if (in_grouping(z, g_v, 97, 252, 0)) goto lab2;
+ {
+ int ret = in_grouping(z, g_v, 97, 252, 1);
+ if (ret < 0) goto lab2;
+ z->c += ret;
+ }
+ }
+ lab3:
+ goto lab1;
+ lab2:
+ z->c = c2;
+ if (out_grouping(z, g_v, 97, 252, 0)) goto lab0;
+ { int c4 = z->c;
+ if (out_grouping(z, g_v, 97, 252, 0)) goto lab6;
+ {
+ int ret = out_grouping(z, g_v, 97, 252, 1);
+ if (ret < 0) goto lab6;
+ z->c += ret;
+ }
+ goto lab5;
+ lab6:
+ z->c = c4;
+ if (in_grouping(z, g_v, 97, 252, 0)) goto lab0;
+ if (z->c >= z->l) goto lab0;
+ z->c++;
+ }
+ lab5:
+ ;
+ }
+ lab1:
+ z->I[2] = z->c;
+ lab0:
+ z->c = c1;
+ }
+ { int c5 = z->c;
+ {
+ int ret = out_grouping(z, g_v, 97, 252, 1);
+ if (ret < 0) goto lab7;
+ z->c += ret;
+ }
+ {
+ int ret = in_grouping(z, g_v, 97, 252, 1);
+ if (ret < 0) goto lab7;
+ z->c += ret;
+ }
+ z->I[1] = z->c;
+ {
+ int ret = out_grouping(z, g_v, 97, 252, 1);
+ if (ret < 0) goto lab7;
+ z->c += ret;
+ }
+ {
+ int ret = in_grouping(z, g_v, 97, 252, 1);
+ if (ret < 0) goto lab7;
+ z->c += ret;
+ }
+ z->I[0] = z->c;
+ lab7:
+ z->c = c5;
+ }
+ return 1;
+}
+
+static int r_postlude(struct SN_env * z) {
+ int among_var;
+ while(1) {
+ int c1 = z->c;
+ z->bra = z->c;
+ if (z->c >= z->l || z->p[z->c + 0] >> 5 != 7 || !((67641858 >> (z->p[z->c + 0] & 0x1f)) & 1)) among_var = 6; else
+ among_var = find_among(z, a_0, 6);
+ if (!(among_var)) goto lab0;
+ z->ket = z->c;
+ switch (among_var) {
+ case 1:
+ { int ret = slice_from_s(z, 1, s_0);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 2:
+ { int ret = slice_from_s(z, 1, s_1);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 3:
+ { int ret = slice_from_s(z, 1, s_2);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 4:
+ { int ret = slice_from_s(z, 1, s_3);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 5:
+ { int ret = slice_from_s(z, 1, s_4);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 6:
+ if (z->c >= z->l) goto lab0;
+ z->c++;
+ break;
+ }
+ continue;
+ lab0:
+ z->c = c1;
+ break;
+ }
+ return 1;
+}
+
+static int r_RV(struct SN_env * z) {
+ if (!(z->I[2] <= z->c)) return 0;
+ return 1;
+}
+
+static int r_R1(struct SN_env * z) {
+ if (!(z->I[1] <= z->c)) return 0;
+ return 1;
+}
+
+static int r_R2(struct SN_env * z) {
+ if (!(z->I[0] <= z->c)) return 0;
+ return 1;
+}
+
+static int r_attached_pronoun(struct SN_env * z) {
+ int among_var;
+ z->ket = z->c;
+ if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((557090 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
+ if (!(find_among_b(z, a_1, 13))) return 0;
+ z->bra = z->c;
+ if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 111 && z->p[z->c - 1] != 114)) return 0;
+ among_var = find_among_b(z, a_2, 11);
+ if (!(among_var)) return 0;
+ { int ret = r_RV(z);
+ if (ret <= 0) return ret;
+ }
+ switch (among_var) {
+ case 1:
+ z->bra = z->c;
+ { int ret = slice_from_s(z, 5, s_5);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 2:
+ z->bra = z->c;
+ { int ret = slice_from_s(z, 4, s_6);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 3:
+ z->bra = z->c;
+ { int ret = slice_from_s(z, 2, s_7);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 4:
+ z->bra = z->c;
+ { int ret = slice_from_s(z, 2, s_8);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 5:
+ z->bra = z->c;
+ { int ret = slice_from_s(z, 2, s_9);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 6:
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 7:
+ if (z->c <= z->lb || z->p[z->c - 1] != 'u') return 0;
+ z->c--;
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ break;
+ }
+ return 1;
+}
+
+static int r_standard_suffix(struct SN_env * z) {
+ int among_var;
+ z->ket = z->c;
+ if (z->c - 2 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((835634 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
+ among_var = find_among_b(z, a_6, 46);
+ if (!(among_var)) return 0;
+ z->bra = z->c;
+ switch (among_var) {
+ case 1:
+ { int ret = r_R2(z);
+ if (ret <= 0) return ret;
+ }
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 2:
+ { int ret = r_R2(z);
+ if (ret <= 0) return ret;
+ }
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ { int m1 = z->l - z->c; (void)m1;
+ z->ket = z->c;
+ if (!(eq_s_b(z, 2, s_10))) { z->c = z->l - m1; goto lab0; }
+ z->bra = z->c;
+ { int ret = r_R2(z);
+ if (ret == 0) { z->c = z->l - m1; goto lab0; }
+ if (ret < 0) return ret;
+ }
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ lab0:
+ ;
+ }
+ break;
+ case 3:
+ { int ret = r_R2(z);
+ if (ret <= 0) return ret;
+ }
+ { int ret = slice_from_s(z, 3, s_11);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 4:
+ { int ret = r_R2(z);
+ if (ret <= 0) return ret;
+ }
+ { int ret = slice_from_s(z, 1, s_12);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 5:
+ { int ret = r_R2(z);
+ if (ret <= 0) return ret;
+ }
+ { int ret = slice_from_s(z, 4, s_13);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 6:
+ { int ret = r_R1(z);
+ if (ret <= 0) return ret;
+ }
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ { int m2 = z->l - z->c; (void)m2;
+ z->ket = z->c;
+ if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((4718616 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->c = z->l - m2; goto lab1; }
+ among_var = find_among_b(z, a_3, 4);
+ if (!(among_var)) { z->c = z->l - m2; goto lab1; }
+ z->bra = z->c;
+ { int ret = r_R2(z);
+ if (ret == 0) { z->c = z->l - m2; goto lab1; }
+ if (ret < 0) return ret;
+ }
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ switch (among_var) {
+ case 1:
+ z->ket = z->c;
+ if (!(eq_s_b(z, 2, s_14))) { z->c = z->l - m2; goto lab1; }
+ z->bra = z->c;
+ { int ret = r_R2(z);
+ if (ret == 0) { z->c = z->l - m2; goto lab1; }
+ if (ret < 0) return ret;
+ }
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ break;
+ }
+ lab1:
+ ;
+ }
+ break;
+ case 7:
+ { int ret = r_R2(z);
+ if (ret <= 0) return ret;
+ }
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ { int m3 = z->l - z->c; (void)m3;
+ z->ket = z->c;
+ if (z->c - 3 <= z->lb || z->p[z->c - 1] != 101) { z->c = z->l - m3; goto lab2; }
+ if (!(find_among_b(z, a_4, 3))) { z->c = z->l - m3; goto lab2; }
+ z->bra = z->c;
+ { int ret = r_R2(z);
+ if (ret == 0) { z->c = z->l - m3; goto lab2; }
+ if (ret < 0) return ret;
+ }
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ lab2:
+ ;
+ }
+ break;
+ case 8:
+ { int ret = r_R2(z);
+ if (ret <= 0) return ret;
+ }
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ { int m4 = z->l - z->c; (void)m4;
+ z->ket = z->c;
+ 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 - m4; goto lab3; }
+ if (!(find_among_b(z, a_5, 3))) { z->c = z->l - m4; goto lab3; }
+ z->bra = z->c;
+ { int ret = r_R2(z);
+ if (ret == 0) { z->c = z->l - m4; goto lab3; }
+ if (ret < 0) return ret;
+ }
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ lab3:
+ ;
+ }
+ break;
+ case 9:
+ { int ret = r_R2(z);
+ if (ret <= 0) return ret;
+ }
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ { int m5 = z->l - z->c; (void)m5;
+ z->ket = z->c;
+ if (!(eq_s_b(z, 2, s_15))) { z->c = z->l - m5; goto lab4; }
+ z->bra = z->c;
+ { int ret = r_R2(z);
+ if (ret == 0) { z->c = z->l - m5; goto lab4; }
+ if (ret < 0) return ret;
+ }
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ lab4:
+ ;
+ }
+ break;
+ }
+ return 1;
+}
+
+static int r_y_verb_suffix(struct SN_env * z) {
+
+ { int mlimit1;
+ if (z->c < z->I[2]) return 0;
+ mlimit1 = z->lb; z->lb = z->I[2];
+ z->ket = z->c;
+ if (!(find_among_b(z, a_7, 12))) { z->lb = mlimit1; return 0; }
+ z->bra = z->c;
+ z->lb = mlimit1;
+ }
+ if (z->c <= z->lb || z->p[z->c - 1] != 'u') return 0;
+ z->c--;
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ return 1;
+}
+
+static int r_verb_suffix(struct SN_env * z) {
+ int among_var;
+
+ { int mlimit1;
+ if (z->c < z->I[2]) return 0;
+ mlimit1 = z->lb; z->lb = z->I[2];
+ z->ket = z->c;
+ among_var = find_among_b(z, a_8, 96);
+ if (!(among_var)) { z->lb = mlimit1; return 0; }
+ z->bra = z->c;
+ z->lb = mlimit1;
+ }
+ switch (among_var) {
+ case 1:
+ { int m2 = z->l - z->c; (void)m2;
+ if (z->c <= z->lb || z->p[z->c - 1] != 'u') { z->c = z->l - m2; goto lab0; }
+ z->c--;
+ { int m_test3 = z->l - z->c;
+ if (z->c <= z->lb || z->p[z->c - 1] != 'g') { z->c = z->l - m2; goto lab0; }
+ z->c--;
+ z->c = z->l - m_test3;
+ }
+ lab0:
+ ;
+ }
+ z->bra = z->c;
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 2:
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ break;
+ }
+ return 1;
+}
+
+static int r_residual_suffix(struct SN_env * z) {
+ int among_var;
+ z->ket = z->c;
+ among_var = find_among_b(z, a_9, 8);
+ if (!(among_var)) return 0;
+ z->bra = z->c;
+ switch (among_var) {
+ case 1:
+ { int ret = r_RV(z);
+ if (ret <= 0) return ret;
+ }
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 2:
+ { int ret = r_RV(z);
+ if (ret <= 0) return ret;
+ }
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ { int m1 = z->l - z->c; (void)m1;
+ z->ket = z->c;
+ if (z->c <= z->lb || z->p[z->c - 1] != 'u') { z->c = z->l - m1; goto lab0; }
+ z->c--;
+ z->bra = z->c;
+ { int m_test2 = z->l - z->c;
+ if (z->c <= z->lb || z->p[z->c - 1] != 'g') { z->c = z->l - m1; goto lab0; }
+ z->c--;
+ z->c = z->l - m_test2;
+ }
+ { int ret = r_RV(z);
+ if (ret == 0) { z->c = z->l - m1; goto lab0; }
+ if (ret < 0) return ret;
+ }
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ lab0:
+ ;
+ }
+ break;
+ }
+ return 1;
+}
+
+extern int spanish_ISO_8859_1_stem(struct SN_env * z) {
+
+ { int ret = r_mark_regions(z);
+ if (ret < 0) return ret;
+ }
+ z->lb = z->c; z->c = z->l;
+
+ { int m1 = z->l - z->c; (void)m1;
+ { int ret = r_attached_pronoun(z);
+ if (ret < 0) return ret;
+ }
+ z->c = z->l - m1;
+ }
+ { int m2 = z->l - z->c; (void)m2;
+ { int m3 = z->l - z->c; (void)m3;
+ { int ret = r_standard_suffix(z);
+ if (ret == 0) goto lab2;
+ if (ret < 0) return ret;
+ }
+ goto lab1;
+ lab2:
+ z->c = z->l - m3;
+ { int ret = r_y_verb_suffix(z);
+ if (ret == 0) goto lab3;
+ if (ret < 0) return ret;
+ }
+ goto lab1;
+ lab3:
+ z->c = z->l - m3;
+ { int ret = r_verb_suffix(z);
+ if (ret == 0) goto lab0;
+ if (ret < 0) return ret;
+ }
+ }
+ lab1:
+ lab0:
+ z->c = z->l - m2;
+ }
+ { int m4 = z->l - z->c; (void)m4;
+ { int ret = r_residual_suffix(z);
+ if (ret < 0) return ret;
+ }
+ z->c = z->l - m4;
+ }
+ z->c = z->lb;
+ { int c5 = z->c;
+ { int ret = r_postlude(z);
+ if (ret < 0) return ret;
+ }
+ z->c = c5;
+ }
+ return 1;
+}
+
+extern struct SN_env * spanish_ISO_8859_1_create_env(void) { return SN_create_env(0, 3); }
+
+extern void spanish_ISO_8859_1_close_env(struct SN_env * z) { SN_close_env(z, 0); }
+
diff --git a/src/backend/snowball/libstemmer/stem_ISO_8859_1_swedish.c b/src/backend/snowball/libstemmer/stem_ISO_8859_1_swedish.c
new file mode 100644
index 0000000..27b710c
--- /dev/null
+++ b/src/backend/snowball/libstemmer/stem_ISO_8859_1_swedish.c
@@ -0,0 +1,288 @@
+/* Generated by Snowball 2.2.0 - https://snowballstem.org/ */
+
+#include "header.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+extern int swedish_ISO_8859_1_stem(struct SN_env * z);
+#ifdef __cplusplus
+}
+#endif
+static int r_other_suffix(struct SN_env * z);
+static int r_consonant_pair(struct SN_env * z);
+static int r_main_suffix(struct SN_env * z);
+static int r_mark_regions(struct SN_env * z);
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+extern struct SN_env * swedish_ISO_8859_1_create_env(void);
+extern void swedish_ISO_8859_1_close_env(struct SN_env * z);
+
+
+#ifdef __cplusplus
+}
+#endif
+static const symbol s_0_0[1] = { 'a' };
+static const symbol s_0_1[4] = { 'a', 'r', 'n', 'a' };
+static const symbol s_0_2[4] = { 'e', 'r', 'n', 'a' };
+static const symbol s_0_3[7] = { 'h', 'e', 't', 'e', 'r', 'n', 'a' };
+static const symbol s_0_4[4] = { 'o', 'r', 'n', 'a' };
+static const symbol s_0_5[2] = { 'a', 'd' };
+static const symbol s_0_6[1] = { 'e' };
+static const symbol s_0_7[3] = { 'a', 'd', 'e' };
+static const symbol s_0_8[4] = { 'a', 'n', 'd', 'e' };
+static const symbol s_0_9[4] = { 'a', 'r', 'n', 'e' };
+static const symbol s_0_10[3] = { 'a', 'r', 'e' };
+static const symbol s_0_11[4] = { 'a', 's', 't', 'e' };
+static const symbol s_0_12[2] = { 'e', 'n' };
+static const symbol s_0_13[5] = { 'a', 'n', 'd', 'e', 'n' };
+static const symbol s_0_14[4] = { 'a', 'r', 'e', 'n' };
+static const symbol s_0_15[5] = { 'h', 'e', 't', 'e', 'n' };
+static const symbol s_0_16[3] = { 'e', 'r', 'n' };
+static const symbol s_0_17[2] = { 'a', 'r' };
+static const symbol s_0_18[2] = { 'e', 'r' };
+static const symbol s_0_19[5] = { 'h', 'e', 't', 'e', 'r' };
+static const symbol s_0_20[2] = { 'o', 'r' };
+static const symbol s_0_21[1] = { 's' };
+static const symbol s_0_22[2] = { 'a', 's' };
+static const symbol s_0_23[5] = { 'a', 'r', 'n', 'a', 's' };
+static const symbol s_0_24[5] = { 'e', 'r', 'n', 'a', 's' };
+static const symbol s_0_25[5] = { 'o', 'r', 'n', 'a', 's' };
+static const symbol s_0_26[2] = { 'e', 's' };
+static const symbol s_0_27[4] = { 'a', 'd', 'e', 's' };
+static const symbol s_0_28[5] = { 'a', 'n', 'd', 'e', 's' };
+static const symbol s_0_29[3] = { 'e', 'n', 's' };
+static const symbol s_0_30[5] = { 'a', 'r', 'e', 'n', 's' };
+static const symbol s_0_31[6] = { 'h', 'e', 't', 'e', 'n', 's' };
+static const symbol s_0_32[4] = { 'e', 'r', 'n', 's' };
+static const symbol s_0_33[2] = { 'a', 't' };
+static const symbol s_0_34[5] = { 'a', 'n', 'd', 'e', 't' };
+static const symbol s_0_35[3] = { 'h', 'e', 't' };
+static const symbol s_0_36[3] = { 'a', 's', 't' };
+
+static const struct among a_0[37] =
+{
+{ 1, s_0_0, -1, 1, 0},
+{ 4, s_0_1, 0, 1, 0},
+{ 4, s_0_2, 0, 1, 0},
+{ 7, s_0_3, 2, 1, 0},
+{ 4, s_0_4, 0, 1, 0},
+{ 2, s_0_5, -1, 1, 0},
+{ 1, s_0_6, -1, 1, 0},
+{ 3, s_0_7, 6, 1, 0},
+{ 4, s_0_8, 6, 1, 0},
+{ 4, s_0_9, 6, 1, 0},
+{ 3, s_0_10, 6, 1, 0},
+{ 4, s_0_11, 6, 1, 0},
+{ 2, s_0_12, -1, 1, 0},
+{ 5, s_0_13, 12, 1, 0},
+{ 4, s_0_14, 12, 1, 0},
+{ 5, s_0_15, 12, 1, 0},
+{ 3, s_0_16, -1, 1, 0},
+{ 2, s_0_17, -1, 1, 0},
+{ 2, s_0_18, -1, 1, 0},
+{ 5, s_0_19, 18, 1, 0},
+{ 2, s_0_20, -1, 1, 0},
+{ 1, s_0_21, -1, 2, 0},
+{ 2, s_0_22, 21, 1, 0},
+{ 5, s_0_23, 22, 1, 0},
+{ 5, s_0_24, 22, 1, 0},
+{ 5, s_0_25, 22, 1, 0},
+{ 2, s_0_26, 21, 1, 0},
+{ 4, s_0_27, 26, 1, 0},
+{ 5, s_0_28, 26, 1, 0},
+{ 3, s_0_29, 21, 1, 0},
+{ 5, s_0_30, 29, 1, 0},
+{ 6, s_0_31, 29, 1, 0},
+{ 4, s_0_32, 21, 1, 0},
+{ 2, s_0_33, -1, 1, 0},
+{ 5, s_0_34, -1, 1, 0},
+{ 3, s_0_35, -1, 1, 0},
+{ 3, s_0_36, -1, 1, 0}
+};
+
+static const symbol s_1_0[2] = { 'd', 'd' };
+static const symbol s_1_1[2] = { 'g', 'd' };
+static const symbol s_1_2[2] = { 'n', 'n' };
+static const symbol s_1_3[2] = { 'd', 't' };
+static const symbol s_1_4[2] = { 'g', 't' };
+static const symbol s_1_5[2] = { 'k', 't' };
+static const symbol s_1_6[2] = { 't', 't' };
+
+static const struct among a_1[7] =
+{
+{ 2, s_1_0, -1, -1, 0},
+{ 2, s_1_1, -1, -1, 0},
+{ 2, s_1_2, -1, -1, 0},
+{ 2, s_1_3, -1, -1, 0},
+{ 2, s_1_4, -1, -1, 0},
+{ 2, s_1_5, -1, -1, 0},
+{ 2, s_1_6, -1, -1, 0}
+};
+
+static const symbol s_2_0[2] = { 'i', 'g' };
+static const symbol s_2_1[3] = { 'l', 'i', 'g' };
+static const symbol s_2_2[3] = { 'e', 'l', 's' };
+static const symbol s_2_3[5] = { 'f', 'u', 'l', 'l', 't' };
+static const symbol s_2_4[4] = { 'l', 0xF6, 's', 't' };
+
+static const struct among a_2[5] =
+{
+{ 2, s_2_0, -1, 1, 0},
+{ 3, s_2_1, 0, 1, 0},
+{ 3, s_2_2, -1, 1, 0},
+{ 5, s_2_3, -1, 3, 0},
+{ 4, s_2_4, -1, 2, 0}
+};
+
+static const unsigned char g_v[] = { 17, 65, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 32 };
+
+static const unsigned char g_s_ending[] = { 119, 127, 149 };
+
+static const symbol s_0[] = { 'l', 0xF6, 's' };
+static const symbol s_1[] = { 'f', 'u', 'l', 'l' };
+
+static int r_mark_regions(struct SN_env * z) {
+ z->I[1] = z->l;
+ { int c_test1 = z->c;
+z->c = z->c + 3;
+ if (z->c > z->l) return 0;
+ z->I[0] = z->c;
+ z->c = c_test1;
+ }
+ if (out_grouping(z, g_v, 97, 246, 1) < 0) return 0;
+ {
+ int ret = in_grouping(z, g_v, 97, 246, 1);
+ if (ret < 0) return 0;
+ z->c += ret;
+ }
+ z->I[1] = z->c;
+
+ if (!(z->I[1] < z->I[0])) goto lab0;
+ z->I[1] = z->I[0];
+lab0:
+ return 1;
+}
+
+static int r_main_suffix(struct SN_env * z) {
+ int among_var;
+
+ { int mlimit1;
+ if (z->c < z->I[1]) return 0;
+ mlimit1 = z->lb; z->lb = z->I[1];
+ z->ket = z->c;
+ if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1851442 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->lb = mlimit1; return 0; }
+ among_var = find_among_b(z, a_0, 37);
+ if (!(among_var)) { z->lb = mlimit1; return 0; }
+ z->bra = z->c;
+ z->lb = mlimit1;
+ }
+ switch (among_var) {
+ case 1:
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 2:
+ if (in_grouping_b(z, g_s_ending, 98, 121, 0)) return 0;
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ break;
+ }
+ return 1;
+}
+
+static int r_consonant_pair(struct SN_env * z) {
+
+ { int mlimit1;
+ if (z->c < z->I[1]) return 0;
+ mlimit1 = z->lb; z->lb = z->I[1];
+ { int m2 = z->l - z->c; (void)m2;
+ if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1064976 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->lb = mlimit1; return 0; }
+ if (!(find_among_b(z, a_1, 7))) { z->lb = mlimit1; return 0; }
+ z->c = z->l - m2;
+ z->ket = z->c;
+ if (z->c <= z->lb) { z->lb = mlimit1; return 0; }
+ z->c--;
+ z->bra = z->c;
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ }
+ z->lb = mlimit1;
+ }
+ return 1;
+}
+
+static int r_other_suffix(struct SN_env * z) {
+ int among_var;
+
+ { int mlimit1;
+ if (z->c < z->I[1]) return 0;
+ mlimit1 = z->lb; z->lb = z->I[1];
+ z->ket = z->c;
+ if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1572992 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->lb = mlimit1; return 0; }
+ among_var = find_among_b(z, a_2, 5);
+ if (!(among_var)) { z->lb = mlimit1; return 0; }
+ z->bra = z->c;
+ switch (among_var) {
+ case 1:
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 2:
+ { int ret = slice_from_s(z, 3, s_0);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 3:
+ { int ret = slice_from_s(z, 4, s_1);
+ if (ret < 0) return ret;
+ }
+ break;
+ }
+ z->lb = mlimit1;
+ }
+ return 1;
+}
+
+extern int swedish_ISO_8859_1_stem(struct SN_env * z) {
+ { int c1 = z->c;
+ { int ret = r_mark_regions(z);
+ if (ret < 0) return ret;
+ }
+ z->c = c1;
+ }
+ z->lb = z->c; z->c = z->l;
+
+ { int m2 = z->l - z->c; (void)m2;
+ { int ret = r_main_suffix(z);
+ if (ret < 0) return ret;
+ }
+ z->c = z->l - m2;
+ }
+ { int m3 = z->l - z->c; (void)m3;
+ { int ret = r_consonant_pair(z);
+ if (ret < 0) return ret;
+ }
+ z->c = z->l - m3;
+ }
+ { int m4 = z->l - z->c; (void)m4;
+ { int ret = r_other_suffix(z);
+ if (ret < 0) return ret;
+ }
+ z->c = z->l - m4;
+ }
+ z->c = z->lb;
+ return 1;
+}
+
+extern struct SN_env * swedish_ISO_8859_1_create_env(void) { return SN_create_env(0, 2); }
+
+extern void swedish_ISO_8859_1_close_env(struct SN_env * z) { SN_close_env(z, 0); }
+
diff --git a/src/backend/snowball/libstemmer/stem_ISO_8859_2_hungarian.c b/src/backend/snowball/libstemmer/stem_ISO_8859_2_hungarian.c
new file mode 100644
index 0000000..4650bd1
--- /dev/null
+++ b/src/backend/snowball/libstemmer/stem_ISO_8859_2_hungarian.c
@@ -0,0 +1,862 @@
+/* Generated by Snowball 2.2.0 - https://snowballstem.org/ */
+
+#include "header.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+extern int hungarian_ISO_8859_2_stem(struct SN_env * z);
+#ifdef __cplusplus
+}
+#endif
+static int r_double(struct SN_env * z);
+static int r_undouble(struct SN_env * z);
+static int r_factive(struct SN_env * z);
+static int r_instrum(struct SN_env * z);
+static int r_plur_owner(struct SN_env * z);
+static int r_sing_owner(struct SN_env * z);
+static int r_owned(struct SN_env * z);
+static int r_plural(struct SN_env * z);
+static int r_case_other(struct SN_env * z);
+static int r_case_special(struct SN_env * z);
+static int r_case(struct SN_env * z);
+static int r_v_ending(struct SN_env * z);
+static int r_R1(struct SN_env * z);
+static int r_mark_regions(struct SN_env * z);
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+extern struct SN_env * hungarian_ISO_8859_2_create_env(void);
+extern void hungarian_ISO_8859_2_close_env(struct SN_env * z);
+
+
+#ifdef __cplusplus
+}
+#endif
+static const symbol s_0_0[2] = { 'c', 's' };
+static const symbol s_0_1[3] = { 'd', 'z', 's' };
+static const symbol s_0_2[2] = { 'g', 'y' };
+static const symbol s_0_3[2] = { 'l', 'y' };
+static const symbol s_0_4[2] = { 'n', 'y' };
+static const symbol s_0_5[2] = { 's', 'z' };
+static const symbol s_0_6[2] = { 't', 'y' };
+static const symbol s_0_7[2] = { 'z', 's' };
+
+static const struct among a_0[8] =
+{
+{ 2, s_0_0, -1, -1, 0},
+{ 3, s_0_1, -1, -1, 0},
+{ 2, s_0_2, -1, -1, 0},
+{ 2, s_0_3, -1, -1, 0},
+{ 2, s_0_4, -1, -1, 0},
+{ 2, s_0_5, -1, -1, 0},
+{ 2, s_0_6, -1, -1, 0},
+{ 2, s_0_7, -1, -1, 0}
+};
+
+static const symbol s_1_0[1] = { 0xE1 };
+static const symbol s_1_1[1] = { 0xE9 };
+
+static const struct among a_1[2] =
+{
+{ 1, s_1_0, -1, 1, 0},
+{ 1, s_1_1, -1, 2, 0}
+};
+
+static const symbol s_2_0[2] = { 'b', 'b' };
+static const symbol s_2_1[2] = { 'c', 'c' };
+static const symbol s_2_2[2] = { 'd', 'd' };
+static const symbol s_2_3[2] = { 'f', 'f' };
+static const symbol s_2_4[2] = { 'g', 'g' };
+static const symbol s_2_5[2] = { 'j', 'j' };
+static const symbol s_2_6[2] = { 'k', 'k' };
+static const symbol s_2_7[2] = { 'l', 'l' };
+static const symbol s_2_8[2] = { 'm', 'm' };
+static const symbol s_2_9[2] = { 'n', 'n' };
+static const symbol s_2_10[2] = { 'p', 'p' };
+static const symbol s_2_11[2] = { 'r', 'r' };
+static const symbol s_2_12[3] = { 'c', 'c', 's' };
+static const symbol s_2_13[2] = { 's', 's' };
+static const symbol s_2_14[3] = { 'z', 'z', 's' };
+static const symbol s_2_15[2] = { 't', 't' };
+static const symbol s_2_16[2] = { 'v', 'v' };
+static const symbol s_2_17[3] = { 'g', 'g', 'y' };
+static const symbol s_2_18[3] = { 'l', 'l', 'y' };
+static const symbol s_2_19[3] = { 'n', 'n', 'y' };
+static const symbol s_2_20[3] = { 't', 't', 'y' };
+static const symbol s_2_21[3] = { 's', 's', 'z' };
+static const symbol s_2_22[2] = { 'z', 'z' };
+
+static const struct among a_2[23] =
+{
+{ 2, s_2_0, -1, -1, 0},
+{ 2, s_2_1, -1, -1, 0},
+{ 2, s_2_2, -1, -1, 0},
+{ 2, s_2_3, -1, -1, 0},
+{ 2, s_2_4, -1, -1, 0},
+{ 2, s_2_5, -1, -1, 0},
+{ 2, s_2_6, -1, -1, 0},
+{ 2, s_2_7, -1, -1, 0},
+{ 2, s_2_8, -1, -1, 0},
+{ 2, s_2_9, -1, -1, 0},
+{ 2, s_2_10, -1, -1, 0},
+{ 2, s_2_11, -1, -1, 0},
+{ 3, s_2_12, -1, -1, 0},
+{ 2, s_2_13, -1, -1, 0},
+{ 3, s_2_14, -1, -1, 0},
+{ 2, s_2_15, -1, -1, 0},
+{ 2, s_2_16, -1, -1, 0},
+{ 3, s_2_17, -1, -1, 0},
+{ 3, s_2_18, -1, -1, 0},
+{ 3, s_2_19, -1, -1, 0},
+{ 3, s_2_20, -1, -1, 0},
+{ 3, s_2_21, -1, -1, 0},
+{ 2, s_2_22, -1, -1, 0}
+};
+
+static const symbol s_3_0[2] = { 'a', 'l' };
+static const symbol s_3_1[2] = { 'e', 'l' };
+
+static const struct among a_3[2] =
+{
+{ 2, s_3_0, -1, 1, 0},
+{ 2, s_3_1, -1, 1, 0}
+};
+
+static const symbol s_4_0[2] = { 'b', 'a' };
+static const symbol s_4_1[2] = { 'r', 'a' };
+static const symbol s_4_2[2] = { 'b', 'e' };
+static const symbol s_4_3[2] = { 'r', 'e' };
+static const symbol s_4_4[2] = { 'i', 'g' };
+static const symbol s_4_5[3] = { 'n', 'a', 'k' };
+static const symbol s_4_6[3] = { 'n', 'e', 'k' };
+static const symbol s_4_7[3] = { 'v', 'a', 'l' };
+static const symbol s_4_8[3] = { 'v', 'e', 'l' };
+static const symbol s_4_9[2] = { 'u', 'l' };
+static const symbol s_4_10[3] = { 'n', 0xE1, 'l' };
+static const symbol s_4_11[3] = { 'n', 0xE9, 'l' };
+static const symbol s_4_12[3] = { 'b', 0xF3, 'l' };
+static const symbol s_4_13[3] = { 'r', 0xF3, 'l' };
+static const symbol s_4_14[3] = { 't', 0xF3, 'l' };
+static const symbol s_4_15[3] = { 'b', 0xF5, 'l' };
+static const symbol s_4_16[3] = { 'r', 0xF5, 'l' };
+static const symbol s_4_17[3] = { 't', 0xF5, 'l' };
+static const symbol s_4_18[2] = { 0xFC, 'l' };
+static const symbol s_4_19[1] = { 'n' };
+static const symbol s_4_20[2] = { 'a', 'n' };
+static const symbol s_4_21[3] = { 'b', 'a', 'n' };
+static const symbol s_4_22[2] = { 'e', 'n' };
+static const symbol s_4_23[3] = { 'b', 'e', 'n' };
+static const symbol s_4_24[6] = { 'k', 0xE9, 'p', 'p', 'e', 'n' };
+static const symbol s_4_25[2] = { 'o', 'n' };
+static const symbol s_4_26[2] = { 0xF6, 'n' };
+static const symbol s_4_27[4] = { 'k', 0xE9, 'p', 'p' };
+static const symbol s_4_28[3] = { 'k', 'o', 'r' };
+static const symbol s_4_29[1] = { 't' };
+static const symbol s_4_30[2] = { 'a', 't' };
+static const symbol s_4_31[2] = { 'e', 't' };
+static const symbol s_4_32[4] = { 'k', 0xE9, 'n', 't' };
+static const symbol s_4_33[6] = { 'a', 'n', 'k', 0xE9, 'n', 't' };
+static const symbol s_4_34[6] = { 'e', 'n', 'k', 0xE9, 'n', 't' };
+static const symbol s_4_35[6] = { 'o', 'n', 'k', 0xE9, 'n', 't' };
+static const symbol s_4_36[2] = { 'o', 't' };
+static const symbol s_4_37[3] = { 0xE9, 'r', 't' };
+static const symbol s_4_38[2] = { 0xF6, 't' };
+static const symbol s_4_39[3] = { 'h', 'e', 'z' };
+static const symbol s_4_40[3] = { 'h', 'o', 'z' };
+static const symbol s_4_41[3] = { 'h', 0xF6, 'z' };
+static const symbol s_4_42[2] = { 'v', 0xE1 };
+static const symbol s_4_43[2] = { 'v', 0xE9 };
+
+static const struct among a_4[44] =
+{
+{ 2, s_4_0, -1, -1, 0},
+{ 2, s_4_1, -1, -1, 0},
+{ 2, s_4_2, -1, -1, 0},
+{ 2, s_4_3, -1, -1, 0},
+{ 2, s_4_4, -1, -1, 0},
+{ 3, s_4_5, -1, -1, 0},
+{ 3, s_4_6, -1, -1, 0},
+{ 3, s_4_7, -1, -1, 0},
+{ 3, s_4_8, -1, -1, 0},
+{ 2, s_4_9, -1, -1, 0},
+{ 3, s_4_10, -1, -1, 0},
+{ 3, s_4_11, -1, -1, 0},
+{ 3, s_4_12, -1, -1, 0},
+{ 3, s_4_13, -1, -1, 0},
+{ 3, s_4_14, -1, -1, 0},
+{ 3, s_4_15, -1, -1, 0},
+{ 3, s_4_16, -1, -1, 0},
+{ 3, s_4_17, -1, -1, 0},
+{ 2, s_4_18, -1, -1, 0},
+{ 1, s_4_19, -1, -1, 0},
+{ 2, s_4_20, 19, -1, 0},
+{ 3, s_4_21, 20, -1, 0},
+{ 2, s_4_22, 19, -1, 0},
+{ 3, s_4_23, 22, -1, 0},
+{ 6, s_4_24, 22, -1, 0},
+{ 2, s_4_25, 19, -1, 0},
+{ 2, s_4_26, 19, -1, 0},
+{ 4, s_4_27, -1, -1, 0},
+{ 3, s_4_28, -1, -1, 0},
+{ 1, s_4_29, -1, -1, 0},
+{ 2, s_4_30, 29, -1, 0},
+{ 2, s_4_31, 29, -1, 0},
+{ 4, s_4_32, 29, -1, 0},
+{ 6, s_4_33, 32, -1, 0},
+{ 6, s_4_34, 32, -1, 0},
+{ 6, s_4_35, 32, -1, 0},
+{ 2, s_4_36, 29, -1, 0},
+{ 3, s_4_37, 29, -1, 0},
+{ 2, s_4_38, 29, -1, 0},
+{ 3, s_4_39, -1, -1, 0},
+{ 3, s_4_40, -1, -1, 0},
+{ 3, s_4_41, -1, -1, 0},
+{ 2, s_4_42, -1, -1, 0},
+{ 2, s_4_43, -1, -1, 0}
+};
+
+static const symbol s_5_0[2] = { 0xE1, 'n' };
+static const symbol s_5_1[2] = { 0xE9, 'n' };
+static const symbol s_5_2[6] = { 0xE1, 'n', 'k', 0xE9, 'n', 't' };
+
+static const struct among a_5[3] =
+{
+{ 2, s_5_0, -1, 2, 0},
+{ 2, s_5_1, -1, 1, 0},
+{ 6, s_5_2, -1, 2, 0}
+};
+
+static const symbol s_6_0[4] = { 's', 't', 'u', 'l' };
+static const symbol s_6_1[5] = { 'a', 's', 't', 'u', 'l' };
+static const symbol s_6_2[5] = { 0xE1, 's', 't', 'u', 'l' };
+static const symbol s_6_3[4] = { 's', 't', 0xFC, 'l' };
+static const symbol s_6_4[5] = { 'e', 's', 't', 0xFC, 'l' };
+static const symbol s_6_5[5] = { 0xE9, 's', 't', 0xFC, 'l' };
+
+static const struct among a_6[6] =
+{
+{ 4, s_6_0, -1, 1, 0},
+{ 5, s_6_1, 0, 1, 0},
+{ 5, s_6_2, 0, 2, 0},
+{ 4, s_6_3, -1, 1, 0},
+{ 5, s_6_4, 3, 1, 0},
+{ 5, s_6_5, 3, 3, 0}
+};
+
+static const symbol s_7_0[1] = { 0xE1 };
+static const symbol s_7_1[1] = { 0xE9 };
+
+static const struct among a_7[2] =
+{
+{ 1, s_7_0, -1, 1, 0},
+{ 1, s_7_1, -1, 1, 0}
+};
+
+static const symbol s_8_0[1] = { 'k' };
+static const symbol s_8_1[2] = { 'a', 'k' };
+static const symbol s_8_2[2] = { 'e', 'k' };
+static const symbol s_8_3[2] = { 'o', 'k' };
+static const symbol s_8_4[2] = { 0xE1, 'k' };
+static const symbol s_8_5[2] = { 0xE9, 'k' };
+static const symbol s_8_6[2] = { 0xF6, 'k' };
+
+static const struct among a_8[7] =
+{
+{ 1, s_8_0, -1, 3, 0},
+{ 2, s_8_1, 0, 3, 0},
+{ 2, s_8_2, 0, 3, 0},
+{ 2, s_8_3, 0, 3, 0},
+{ 2, s_8_4, 0, 1, 0},
+{ 2, s_8_5, 0, 2, 0},
+{ 2, s_8_6, 0, 3, 0}
+};
+
+static const symbol s_9_0[2] = { 0xE9, 'i' };
+static const symbol s_9_1[3] = { 0xE1, 0xE9, 'i' };
+static const symbol s_9_2[3] = { 0xE9, 0xE9, 'i' };
+static const symbol s_9_3[1] = { 0xE9 };
+static const symbol s_9_4[2] = { 'k', 0xE9 };
+static const symbol s_9_5[3] = { 'a', 'k', 0xE9 };
+static const symbol s_9_6[3] = { 'e', 'k', 0xE9 };
+static const symbol s_9_7[3] = { 'o', 'k', 0xE9 };
+static const symbol s_9_8[3] = { 0xE1, 'k', 0xE9 };
+static const symbol s_9_9[3] = { 0xE9, 'k', 0xE9 };
+static const symbol s_9_10[3] = { 0xF6, 'k', 0xE9 };
+static const symbol s_9_11[2] = { 0xE9, 0xE9 };
+
+static const struct among a_9[12] =
+{
+{ 2, s_9_0, -1, 1, 0},
+{ 3, s_9_1, 0, 3, 0},
+{ 3, s_9_2, 0, 2, 0},
+{ 1, s_9_3, -1, 1, 0},
+{ 2, s_9_4, 3, 1, 0},
+{ 3, s_9_5, 4, 1, 0},
+{ 3, s_9_6, 4, 1, 0},
+{ 3, s_9_7, 4, 1, 0},
+{ 3, s_9_8, 4, 3, 0},
+{ 3, s_9_9, 4, 2, 0},
+{ 3, s_9_10, 4, 1, 0},
+{ 2, s_9_11, 3, 2, 0}
+};
+
+static const symbol s_10_0[1] = { 'a' };
+static const symbol s_10_1[2] = { 'j', 'a' };
+static const symbol s_10_2[1] = { 'd' };
+static const symbol s_10_3[2] = { 'a', 'd' };
+static const symbol s_10_4[2] = { 'e', 'd' };
+static const symbol s_10_5[2] = { 'o', 'd' };
+static const symbol s_10_6[2] = { 0xE1, 'd' };
+static const symbol s_10_7[2] = { 0xE9, 'd' };
+static const symbol s_10_8[2] = { 0xF6, 'd' };
+static const symbol s_10_9[1] = { 'e' };
+static const symbol s_10_10[2] = { 'j', 'e' };
+static const symbol s_10_11[2] = { 'n', 'k' };
+static const symbol s_10_12[3] = { 'u', 'n', 'k' };
+static const symbol s_10_13[3] = { 0xE1, 'n', 'k' };
+static const symbol s_10_14[3] = { 0xE9, 'n', 'k' };
+static const symbol s_10_15[3] = { 0xFC, 'n', 'k' };
+static const symbol s_10_16[2] = { 'u', 'k' };
+static const symbol s_10_17[3] = { 'j', 'u', 'k' };
+static const symbol s_10_18[4] = { 0xE1, 'j', 'u', 'k' };
+static const symbol s_10_19[2] = { 0xFC, 'k' };
+static const symbol s_10_20[3] = { 'j', 0xFC, 'k' };
+static const symbol s_10_21[4] = { 0xE9, 'j', 0xFC, 'k' };
+static const symbol s_10_22[1] = { 'm' };
+static const symbol s_10_23[2] = { 'a', 'm' };
+static const symbol s_10_24[2] = { 'e', 'm' };
+static const symbol s_10_25[2] = { 'o', 'm' };
+static const symbol s_10_26[2] = { 0xE1, 'm' };
+static const symbol s_10_27[2] = { 0xE9, 'm' };
+static const symbol s_10_28[1] = { 'o' };
+static const symbol s_10_29[1] = { 0xE1 };
+static const symbol s_10_30[1] = { 0xE9 };
+
+static const struct among a_10[31] =
+{
+{ 1, s_10_0, -1, 1, 0},
+{ 2, s_10_1, 0, 1, 0},
+{ 1, s_10_2, -1, 1, 0},
+{ 2, s_10_3, 2, 1, 0},
+{ 2, s_10_4, 2, 1, 0},
+{ 2, s_10_5, 2, 1, 0},
+{ 2, s_10_6, 2, 2, 0},
+{ 2, s_10_7, 2, 3, 0},
+{ 2, s_10_8, 2, 1, 0},
+{ 1, s_10_9, -1, 1, 0},
+{ 2, s_10_10, 9, 1, 0},
+{ 2, s_10_11, -1, 1, 0},
+{ 3, s_10_12, 11, 1, 0},
+{ 3, s_10_13, 11, 2, 0},
+{ 3, s_10_14, 11, 3, 0},
+{ 3, s_10_15, 11, 1, 0},
+{ 2, s_10_16, -1, 1, 0},
+{ 3, s_10_17, 16, 1, 0},
+{ 4, s_10_18, 17, 2, 0},
+{ 2, s_10_19, -1, 1, 0},
+{ 3, s_10_20, 19, 1, 0},
+{ 4, s_10_21, 20, 3, 0},
+{ 1, s_10_22, -1, 1, 0},
+{ 2, s_10_23, 22, 1, 0},
+{ 2, s_10_24, 22, 1, 0},
+{ 2, s_10_25, 22, 1, 0},
+{ 2, s_10_26, 22, 2, 0},
+{ 2, s_10_27, 22, 3, 0},
+{ 1, s_10_28, -1, 1, 0},
+{ 1, s_10_29, -1, 2, 0},
+{ 1, s_10_30, -1, 3, 0}
+};
+
+static const symbol s_11_0[2] = { 'i', 'd' };
+static const symbol s_11_1[3] = { 'a', 'i', 'd' };
+static const symbol s_11_2[4] = { 'j', 'a', 'i', 'd' };
+static const symbol s_11_3[3] = { 'e', 'i', 'd' };
+static const symbol s_11_4[4] = { 'j', 'e', 'i', 'd' };
+static const symbol s_11_5[3] = { 0xE1, 'i', 'd' };
+static const symbol s_11_6[3] = { 0xE9, 'i', 'd' };
+static const symbol s_11_7[1] = { 'i' };
+static const symbol s_11_8[2] = { 'a', 'i' };
+static const symbol s_11_9[3] = { 'j', 'a', 'i' };
+static const symbol s_11_10[2] = { 'e', 'i' };
+static const symbol s_11_11[3] = { 'j', 'e', 'i' };
+static const symbol s_11_12[2] = { 0xE1, 'i' };
+static const symbol s_11_13[2] = { 0xE9, 'i' };
+static const symbol s_11_14[4] = { 'i', 't', 'e', 'k' };
+static const symbol s_11_15[5] = { 'e', 'i', 't', 'e', 'k' };
+static const symbol s_11_16[6] = { 'j', 'e', 'i', 't', 'e', 'k' };
+static const symbol s_11_17[5] = { 0xE9, 'i', 't', 'e', 'k' };
+static const symbol s_11_18[2] = { 'i', 'k' };
+static const symbol s_11_19[3] = { 'a', 'i', 'k' };
+static const symbol s_11_20[4] = { 'j', 'a', 'i', 'k' };
+static const symbol s_11_21[3] = { 'e', 'i', 'k' };
+static const symbol s_11_22[4] = { 'j', 'e', 'i', 'k' };
+static const symbol s_11_23[3] = { 0xE1, 'i', 'k' };
+static const symbol s_11_24[3] = { 0xE9, 'i', 'k' };
+static const symbol s_11_25[3] = { 'i', 'n', 'k' };
+static const symbol s_11_26[4] = { 'a', 'i', 'n', 'k' };
+static const symbol s_11_27[5] = { 'j', 'a', 'i', 'n', 'k' };
+static const symbol s_11_28[4] = { 'e', 'i', 'n', 'k' };
+static const symbol s_11_29[5] = { 'j', 'e', 'i', 'n', 'k' };
+static const symbol s_11_30[4] = { 0xE1, 'i', 'n', 'k' };
+static const symbol s_11_31[4] = { 0xE9, 'i', 'n', 'k' };
+static const symbol s_11_32[5] = { 'a', 'i', 't', 'o', 'k' };
+static const symbol s_11_33[6] = { 'j', 'a', 'i', 't', 'o', 'k' };
+static const symbol s_11_34[5] = { 0xE1, 'i', 't', 'o', 'k' };
+static const symbol s_11_35[2] = { 'i', 'm' };
+static const symbol s_11_36[3] = { 'a', 'i', 'm' };
+static const symbol s_11_37[4] = { 'j', 'a', 'i', 'm' };
+static const symbol s_11_38[3] = { 'e', 'i', 'm' };
+static const symbol s_11_39[4] = { 'j', 'e', 'i', 'm' };
+static const symbol s_11_40[3] = { 0xE1, 'i', 'm' };
+static const symbol s_11_41[3] = { 0xE9, 'i', 'm' };
+
+static const struct among a_11[42] =
+{
+{ 2, s_11_0, -1, 1, 0},
+{ 3, s_11_1, 0, 1, 0},
+{ 4, s_11_2, 1, 1, 0},
+{ 3, s_11_3, 0, 1, 0},
+{ 4, s_11_4, 3, 1, 0},
+{ 3, s_11_5, 0, 2, 0},
+{ 3, s_11_6, 0, 3, 0},
+{ 1, s_11_7, -1, 1, 0},
+{ 2, s_11_8, 7, 1, 0},
+{ 3, s_11_9, 8, 1, 0},
+{ 2, s_11_10, 7, 1, 0},
+{ 3, s_11_11, 10, 1, 0},
+{ 2, s_11_12, 7, 2, 0},
+{ 2, s_11_13, 7, 3, 0},
+{ 4, s_11_14, -1, 1, 0},
+{ 5, s_11_15, 14, 1, 0},
+{ 6, s_11_16, 15, 1, 0},
+{ 5, s_11_17, 14, 3, 0},
+{ 2, s_11_18, -1, 1, 0},
+{ 3, s_11_19, 18, 1, 0},
+{ 4, s_11_20, 19, 1, 0},
+{ 3, s_11_21, 18, 1, 0},
+{ 4, s_11_22, 21, 1, 0},
+{ 3, s_11_23, 18, 2, 0},
+{ 3, s_11_24, 18, 3, 0},
+{ 3, s_11_25, -1, 1, 0},
+{ 4, s_11_26, 25, 1, 0},
+{ 5, s_11_27, 26, 1, 0},
+{ 4, s_11_28, 25, 1, 0},
+{ 5, s_11_29, 28, 1, 0},
+{ 4, s_11_30, 25, 2, 0},
+{ 4, s_11_31, 25, 3, 0},
+{ 5, s_11_32, -1, 1, 0},
+{ 6, s_11_33, 32, 1, 0},
+{ 5, s_11_34, -1, 2, 0},
+{ 2, s_11_35, -1, 1, 0},
+{ 3, s_11_36, 35, 1, 0},
+{ 4, s_11_37, 36, 1, 0},
+{ 3, s_11_38, 35, 1, 0},
+{ 4, s_11_39, 38, 1, 0},
+{ 3, s_11_40, 35, 2, 0},
+{ 3, s_11_41, 35, 3, 0}
+};
+
+static const unsigned char g_v[] = { 17, 65, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 17, 52, 14 };
+
+static const symbol s_0[] = { 'a' };
+static const symbol s_1[] = { 'e' };
+static const symbol s_2[] = { 'e' };
+static const symbol s_3[] = { 'a' };
+static const symbol s_4[] = { 'a' };
+static const symbol s_5[] = { 'e' };
+static const symbol s_6[] = { 'a' };
+static const symbol s_7[] = { 'e' };
+static const symbol s_8[] = { 'e' };
+static const symbol s_9[] = { 'a' };
+static const symbol s_10[] = { 'a' };
+static const symbol s_11[] = { 'e' };
+static const symbol s_12[] = { 'a' };
+static const symbol s_13[] = { 'e' };
+
+static int r_mark_regions(struct SN_env * z) {
+ z->I[0] = z->l;
+ { int c1 = z->c;
+ if (in_grouping(z, g_v, 97, 252, 0)) goto lab1;
+ if (in_grouping(z, g_v, 97, 252, 1) < 0) goto lab1;
+ { int c2 = z->c;
+ if (z->c + 1 >= z->l || z->p[z->c + 1] >> 5 != 3 || !((101187584 >> (z->p[z->c + 1] & 0x1f)) & 1)) goto lab3;
+ if (!(find_among(z, a_0, 8))) goto lab3;
+ goto lab2;
+ lab3:
+ z->c = c2;
+ if (z->c >= z->l) goto lab1;
+ z->c++;
+ }
+ lab2:
+ z->I[0] = z->c;
+ goto lab0;
+ lab1:
+ z->c = c1;
+ if (out_grouping(z, g_v, 97, 252, 0)) return 0;
+ {
+ int ret = out_grouping(z, g_v, 97, 252, 1);
+ if (ret < 0) return 0;
+ z->c += ret;
+ }
+ z->I[0] = z->c;
+ }
+lab0:
+ return 1;
+}
+
+static int r_R1(struct SN_env * z) {
+ if (!(z->I[0] <= z->c)) return 0;
+ return 1;
+}
+
+static int r_v_ending(struct SN_env * z) {
+ int among_var;
+ z->ket = z->c;
+ if (z->c <= z->lb || (z->p[z->c - 1] != 225 && z->p[z->c - 1] != 233)) return 0;
+ among_var = find_among_b(z, a_1, 2);
+ if (!(among_var)) return 0;
+ z->bra = z->c;
+ { int ret = r_R1(z);
+ if (ret <= 0) return ret;
+ }
+ switch (among_var) {
+ case 1:
+ { int ret = slice_from_s(z, 1, s_0);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 2:
+ { int ret = slice_from_s(z, 1, s_1);
+ if (ret < 0) return ret;
+ }
+ break;
+ }
+ return 1;
+}
+
+static int r_double(struct SN_env * z) {
+ { int m_test1 = z->l - z->c;
+ if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((106790108 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
+ if (!(find_among_b(z, a_2, 23))) return 0;
+ z->c = z->l - m_test1;
+ }
+ return 1;
+}
+
+static int r_undouble(struct SN_env * z) {
+ if (z->c <= z->lb) return 0;
+ z->c--;
+ z->ket = z->c;
+z->c = z->c - 1;
+ if (z->c < z->lb) return 0;
+ z->bra = z->c;
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ return 1;
+}
+
+static int r_instrum(struct SN_env * z) {
+ z->ket = z->c;
+ if (z->c - 1 <= z->lb || z->p[z->c - 1] != 108) return 0;
+ if (!(find_among_b(z, a_3, 2))) return 0;
+ z->bra = z->c;
+ { int ret = r_R1(z);
+ if (ret <= 0) return ret;
+ }
+ { int ret = r_double(z);
+ if (ret <= 0) return ret;
+ }
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ { int ret = r_undouble(z);
+ if (ret <= 0) return ret;
+ }
+ return 1;
+}
+
+static int r_case(struct SN_env * z) {
+ z->ket = z->c;
+ if (!(find_among_b(z, a_4, 44))) return 0;
+ z->bra = z->c;
+ { int ret = r_R1(z);
+ if (ret <= 0) return ret;
+ }
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ { int ret = r_v_ending(z);
+ if (ret <= 0) return ret;
+ }
+ return 1;
+}
+
+static int r_case_special(struct SN_env * z) {
+ int among_var;
+ z->ket = z->c;
+ if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 110 && z->p[z->c - 1] != 116)) return 0;
+ among_var = find_among_b(z, a_5, 3);
+ if (!(among_var)) return 0;
+ z->bra = z->c;
+ { int ret = r_R1(z);
+ if (ret <= 0) return ret;
+ }
+ switch (among_var) {
+ case 1:
+ { int ret = slice_from_s(z, 1, s_2);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 2:
+ { int ret = slice_from_s(z, 1, s_3);
+ if (ret < 0) return ret;
+ }
+ break;
+ }
+ return 1;
+}
+
+static int r_case_other(struct SN_env * z) {
+ int among_var;
+ z->ket = z->c;
+ if (z->c - 3 <= z->lb || z->p[z->c - 1] != 108) return 0;
+ among_var = find_among_b(z, a_6, 6);
+ if (!(among_var)) return 0;
+ z->bra = z->c;
+ { int ret = r_R1(z);
+ if (ret <= 0) return ret;
+ }
+ switch (among_var) {
+ case 1:
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 2:
+ { int ret = slice_from_s(z, 1, s_4);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 3:
+ { int ret = slice_from_s(z, 1, s_5);
+ if (ret < 0) return ret;
+ }
+ break;
+ }
+ return 1;
+}
+
+static int r_factive(struct SN_env * z) {
+ z->ket = z->c;
+ if (z->c <= z->lb || (z->p[z->c - 1] != 225 && z->p[z->c - 1] != 233)) return 0;
+ if (!(find_among_b(z, a_7, 2))) return 0;
+ z->bra = z->c;
+ { int ret = r_R1(z);
+ if (ret <= 0) return ret;
+ }
+ { int ret = r_double(z);
+ if (ret <= 0) return ret;
+ }
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ { int ret = r_undouble(z);
+ if (ret <= 0) return ret;
+ }
+ return 1;
+}
+
+static int r_plural(struct SN_env * z) {
+ int among_var;
+ z->ket = z->c;
+ if (z->c <= z->lb || z->p[z->c - 1] != 107) return 0;
+ among_var = find_among_b(z, a_8, 7);
+ if (!(among_var)) return 0;
+ z->bra = z->c;
+ { int ret = r_R1(z);
+ if (ret <= 0) return ret;
+ }
+ switch (among_var) {
+ case 1:
+ { int ret = slice_from_s(z, 1, s_6);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 2:
+ { int ret = slice_from_s(z, 1, s_7);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 3:
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ break;
+ }
+ return 1;
+}
+
+static int r_owned(struct SN_env * z) {
+ int among_var;
+ z->ket = z->c;
+ if (z->c <= z->lb || (z->p[z->c - 1] != 105 && z->p[z->c - 1] != 233)) return 0;
+ among_var = find_among_b(z, a_9, 12);
+ if (!(among_var)) return 0;
+ z->bra = z->c;
+ { int ret = r_R1(z);
+ if (ret <= 0) return ret;
+ }
+ switch (among_var) {
+ case 1:
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 2:
+ { int ret = slice_from_s(z, 1, s_8);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 3:
+ { int ret = slice_from_s(z, 1, s_9);
+ if (ret < 0) return ret;
+ }
+ break;
+ }
+ return 1;
+}
+
+static int r_sing_owner(struct SN_env * z) {
+ int among_var;
+ z->ket = z->c;
+ among_var = find_among_b(z, a_10, 31);
+ if (!(among_var)) return 0;
+ z->bra = z->c;
+ { int ret = r_R1(z);
+ if (ret <= 0) return ret;
+ }
+ switch (among_var) {
+ case 1:
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 2:
+ { int ret = slice_from_s(z, 1, s_10);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 3:
+ { int ret = slice_from_s(z, 1, s_11);
+ if (ret < 0) return ret;
+ }
+ break;
+ }
+ return 1;
+}
+
+static int r_plur_owner(struct SN_env * z) {
+ int among_var;
+ z->ket = z->c;
+ if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((10768 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
+ among_var = find_among_b(z, a_11, 42);
+ if (!(among_var)) return 0;
+ z->bra = z->c;
+ { int ret = r_R1(z);
+ if (ret <= 0) return ret;
+ }
+ switch (among_var) {
+ case 1:
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 2:
+ { int ret = slice_from_s(z, 1, s_12);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 3:
+ { int ret = slice_from_s(z, 1, s_13);
+ if (ret < 0) return ret;
+ }
+ break;
+ }
+ return 1;
+}
+
+extern int hungarian_ISO_8859_2_stem(struct SN_env * z) {
+ { int c1 = z->c;
+ { int ret = r_mark_regions(z);
+ if (ret < 0) return ret;
+ }
+ z->c = c1;
+ }
+ z->lb = z->c; z->c = z->l;
+
+ { int m2 = z->l - z->c; (void)m2;
+ { int ret = r_instrum(z);
+ if (ret < 0) return ret;
+ }
+ z->c = z->l - m2;
+ }
+ { int m3 = z->l - z->c; (void)m3;
+ { int ret = r_case(z);
+ if (ret < 0) return ret;
+ }
+ z->c = z->l - m3;
+ }
+ { int m4 = z->l - z->c; (void)m4;
+ { int ret = r_case_special(z);
+ if (ret < 0) return ret;
+ }
+ z->c = z->l - m4;
+ }
+ { int m5 = z->l - z->c; (void)m5;
+ { int ret = r_case_other(z);
+ if (ret < 0) return ret;
+ }
+ z->c = z->l - m5;
+ }
+ { int m6 = z->l - z->c; (void)m6;
+ { int ret = r_factive(z);
+ if (ret < 0) return ret;
+ }
+ z->c = z->l - m6;
+ }
+ { int m7 = z->l - z->c; (void)m7;
+ { int ret = r_owned(z);
+ if (ret < 0) return ret;
+ }
+ z->c = z->l - m7;
+ }
+ { int m8 = z->l - z->c; (void)m8;
+ { int ret = r_sing_owner(z);
+ if (ret < 0) return ret;
+ }
+ z->c = z->l - m8;
+ }
+ { int m9 = z->l - z->c; (void)m9;
+ { int ret = r_plur_owner(z);
+ if (ret < 0) return ret;
+ }
+ z->c = z->l - m9;
+ }
+ { int m10 = z->l - z->c; (void)m10;
+ { int ret = r_plural(z);
+ if (ret < 0) return ret;
+ }
+ z->c = z->l - m10;
+ }
+ z->c = z->lb;
+ return 1;
+}
+
+extern struct SN_env * hungarian_ISO_8859_2_create_env(void) { return SN_create_env(0, 1); }
+
+extern void hungarian_ISO_8859_2_close_env(struct SN_env * z) { SN_close_env(z, 0); }
+
diff --git a/src/backend/snowball/libstemmer/stem_ISO_8859_2_romanian.c b/src/backend/snowball/libstemmer/stem_ISO_8859_2_romanian.c
new file mode 100644
index 0000000..0f3eb2c
--- /dev/null
+++ b/src/backend/snowball/libstemmer/stem_ISO_8859_2_romanian.c
@@ -0,0 +1,965 @@
+/* Generated by Snowball 2.2.0 - https://snowballstem.org/ */
+
+#include "header.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+extern int romanian_ISO_8859_2_stem(struct SN_env * z);
+#ifdef __cplusplus
+}
+#endif
+static int r_vowel_suffix(struct SN_env * z);
+static int r_verb_suffix(struct SN_env * z);
+static int r_combo_suffix(struct SN_env * z);
+static int r_standard_suffix(struct SN_env * z);
+static int r_step_0(struct SN_env * z);
+static int r_R2(struct SN_env * z);
+static int r_R1(struct SN_env * z);
+static int r_RV(struct SN_env * z);
+static int r_mark_regions(struct SN_env * z);
+static int r_postlude(struct SN_env * z);
+static int r_prelude(struct SN_env * z);
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+extern struct SN_env * romanian_ISO_8859_2_create_env(void);
+extern void romanian_ISO_8859_2_close_env(struct SN_env * z);
+
+
+#ifdef __cplusplus
+}
+#endif
+static const symbol s_0_1[1] = { 'I' };
+static const symbol s_0_2[1] = { 'U' };
+
+static const struct among a_0[3] =
+{
+{ 0, 0, -1, 3, 0},
+{ 1, s_0_1, 0, 1, 0},
+{ 1, s_0_2, 0, 2, 0}
+};
+
+static const symbol s_1_0[2] = { 'e', 'a' };
+static const symbol s_1_1[4] = { 'a', 0xFE, 'i', 'a' };
+static const symbol s_1_2[3] = { 'a', 'u', 'a' };
+static const symbol s_1_3[3] = { 'i', 'u', 'a' };
+static const symbol s_1_4[4] = { 'a', 0xFE, 'i', 'e' };
+static const symbol s_1_5[3] = { 'e', 'l', 'e' };
+static const symbol s_1_6[3] = { 'i', 'l', 'e' };
+static const symbol s_1_7[4] = { 'i', 'i', 'l', 'e' };
+static const symbol s_1_8[3] = { 'i', 'e', 'i' };
+static const symbol s_1_9[4] = { 'a', 't', 'e', 'i' };
+static const symbol s_1_10[2] = { 'i', 'i' };
+static const symbol s_1_11[4] = { 'u', 'l', 'u', 'i' };
+static const symbol s_1_12[2] = { 'u', 'l' };
+static const symbol s_1_13[4] = { 'e', 'l', 'o', 'r' };
+static const symbol s_1_14[4] = { 'i', 'l', 'o', 'r' };
+static const symbol s_1_15[5] = { 'i', 'i', 'l', 'o', 'r' };
+
+static const struct among a_1[16] =
+{
+{ 2, s_1_0, -1, 3, 0},
+{ 4, s_1_1, -1, 7, 0},
+{ 3, s_1_2, -1, 2, 0},
+{ 3, s_1_3, -1, 4, 0},
+{ 4, s_1_4, -1, 7, 0},
+{ 3, s_1_5, -1, 3, 0},
+{ 3, s_1_6, -1, 5, 0},
+{ 4, s_1_7, 6, 4, 0},
+{ 3, s_1_8, -1, 4, 0},
+{ 4, s_1_9, -1, 6, 0},
+{ 2, s_1_10, -1, 4, 0},
+{ 4, s_1_11, -1, 1, 0},
+{ 2, s_1_12, -1, 1, 0},
+{ 4, s_1_13, -1, 3, 0},
+{ 4, s_1_14, -1, 4, 0},
+{ 5, s_1_15, 14, 4, 0}
+};
+
+static const symbol s_2_0[5] = { 'i', 'c', 'a', 'l', 'a' };
+static const symbol s_2_1[5] = { 'i', 'c', 'i', 'v', 'a' };
+static const symbol s_2_2[5] = { 'a', 't', 'i', 'v', 'a' };
+static const symbol s_2_3[5] = { 'i', 't', 'i', 'v', 'a' };
+static const symbol s_2_4[5] = { 'i', 'c', 'a', 'l', 'e' };
+static const symbol s_2_5[6] = { 'a', 0xFE, 'i', 'u', 'n', 'e' };
+static const symbol s_2_6[6] = { 'i', 0xFE, 'i', 'u', 'n', 'e' };
+static const symbol s_2_7[6] = { 'a', 't', 'o', 'a', 'r', 'e' };
+static const symbol s_2_8[6] = { 'i', 't', 'o', 'a', 'r', 'e' };
+static const symbol s_2_9[6] = { 0xE3, 't', 'o', 'a', 'r', 'e' };
+static const symbol s_2_10[7] = { 'i', 'c', 'i', 't', 'a', 't', 'e' };
+static const symbol s_2_11[9] = { 'a', 'b', 'i', 'l', 'i', 't', 'a', 't', 'e' };
+static const symbol s_2_12[9] = { 'i', 'b', 'i', 'l', 'i', 't', 'a', 't', 'e' };
+static const symbol s_2_13[7] = { 'i', 'v', 'i', 't', 'a', 't', 'e' };
+static const symbol s_2_14[5] = { 'i', 'c', 'i', 'v', 'e' };
+static const symbol s_2_15[5] = { 'a', 't', 'i', 'v', 'e' };
+static const symbol s_2_16[5] = { 'i', 't', 'i', 'v', 'e' };
+static const symbol s_2_17[5] = { 'i', 'c', 'a', 'l', 'i' };
+static const symbol s_2_18[5] = { 'a', 't', 'o', 'r', 'i' };
+static const symbol s_2_19[7] = { 'i', 'c', 'a', 't', 'o', 'r', 'i' };
+static const symbol s_2_20[5] = { 'i', 't', 'o', 'r', 'i' };
+static const symbol s_2_21[5] = { 0xE3, 't', 'o', 'r', 'i' };
+static const symbol s_2_22[7] = { 'i', 'c', 'i', 't', 'a', 't', 'i' };
+static const symbol s_2_23[9] = { 'a', 'b', 'i', 'l', 'i', 't', 'a', 't', 'i' };
+static const symbol s_2_24[7] = { 'i', 'v', 'i', 't', 'a', 't', 'i' };
+static const symbol s_2_25[5] = { 'i', 'c', 'i', 'v', 'i' };
+static const symbol s_2_26[5] = { 'a', 't', 'i', 'v', 'i' };
+static const symbol s_2_27[5] = { 'i', 't', 'i', 'v', 'i' };
+static const symbol s_2_28[6] = { 'i', 'c', 'i', 't', 0xE3, 'i' };
+static const symbol s_2_29[8] = { 'a', 'b', 'i', 'l', 'i', 't', 0xE3, 'i' };
+static const symbol s_2_30[6] = { 'i', 'v', 'i', 't', 0xE3, 'i' };
+static const symbol s_2_31[7] = { 'i', 'c', 'i', 't', 0xE3, 0xFE, 'i' };
+static const symbol s_2_32[9] = { 'a', 'b', 'i', 'l', 'i', 't', 0xE3, 0xFE, 'i' };
+static const symbol s_2_33[7] = { 'i', 'v', 'i', 't', 0xE3, 0xFE, 'i' };
+static const symbol s_2_34[4] = { 'i', 'c', 'a', 'l' };
+static const symbol s_2_35[4] = { 'a', 't', 'o', 'r' };
+static const symbol s_2_36[6] = { 'i', 'c', 'a', 't', 'o', 'r' };
+static const symbol s_2_37[4] = { 'i', 't', 'o', 'r' };
+static const symbol s_2_38[4] = { 0xE3, 't', 'o', 'r' };
+static const symbol s_2_39[4] = { 'i', 'c', 'i', 'v' };
+static const symbol s_2_40[4] = { 'a', 't', 'i', 'v' };
+static const symbol s_2_41[4] = { 'i', 't', 'i', 'v' };
+static const symbol s_2_42[5] = { 'i', 'c', 'a', 'l', 0xE3 };
+static const symbol s_2_43[5] = { 'i', 'c', 'i', 'v', 0xE3 };
+static const symbol s_2_44[5] = { 'a', 't', 'i', 'v', 0xE3 };
+static const symbol s_2_45[5] = { 'i', 't', 'i', 'v', 0xE3 };
+
+static const struct among a_2[46] =
+{
+{ 5, s_2_0, -1, 4, 0},
+{ 5, s_2_1, -1, 4, 0},
+{ 5, s_2_2, -1, 5, 0},
+{ 5, s_2_3, -1, 6, 0},
+{ 5, s_2_4, -1, 4, 0},
+{ 6, s_2_5, -1, 5, 0},
+{ 6, s_2_6, -1, 6, 0},
+{ 6, s_2_7, -1, 5, 0},
+{ 6, s_2_8, -1, 6, 0},
+{ 6, s_2_9, -1, 5, 0},
+{ 7, s_2_10, -1, 4, 0},
+{ 9, s_2_11, -1, 1, 0},
+{ 9, s_2_12, -1, 2, 0},
+{ 7, s_2_13, -1, 3, 0},
+{ 5, s_2_14, -1, 4, 0},
+{ 5, s_2_15, -1, 5, 0},
+{ 5, s_2_16, -1, 6, 0},
+{ 5, s_2_17, -1, 4, 0},
+{ 5, s_2_18, -1, 5, 0},
+{ 7, s_2_19, 18, 4, 0},
+{ 5, s_2_20, -1, 6, 0},
+{ 5, s_2_21, -1, 5, 0},
+{ 7, s_2_22, -1, 4, 0},
+{ 9, s_2_23, -1, 1, 0},
+{ 7, s_2_24, -1, 3, 0},
+{ 5, s_2_25, -1, 4, 0},
+{ 5, s_2_26, -1, 5, 0},
+{ 5, s_2_27, -1, 6, 0},
+{ 6, s_2_28, -1, 4, 0},
+{ 8, s_2_29, -1, 1, 0},
+{ 6, s_2_30, -1, 3, 0},
+{ 7, s_2_31, -1, 4, 0},
+{ 9, s_2_32, -1, 1, 0},
+{ 7, s_2_33, -1, 3, 0},
+{ 4, s_2_34, -1, 4, 0},
+{ 4, s_2_35, -1, 5, 0},
+{ 6, s_2_36, 35, 4, 0},
+{ 4, s_2_37, -1, 6, 0},
+{ 4, s_2_38, -1, 5, 0},
+{ 4, s_2_39, -1, 4, 0},
+{ 4, s_2_40, -1, 5, 0},
+{ 4, s_2_41, -1, 6, 0},
+{ 5, s_2_42, -1, 4, 0},
+{ 5, s_2_43, -1, 4, 0},
+{ 5, s_2_44, -1, 5, 0},
+{ 5, s_2_45, -1, 6, 0}
+};
+
+static const symbol s_3_0[3] = { 'i', 'c', 'a' };
+static const symbol s_3_1[5] = { 'a', 'b', 'i', 'l', 'a' };
+static const symbol s_3_2[5] = { 'i', 'b', 'i', 'l', 'a' };
+static const symbol s_3_3[4] = { 'o', 'a', 's', 'a' };
+static const symbol s_3_4[3] = { 'a', 't', 'a' };
+static const symbol s_3_5[3] = { 'i', 't', 'a' };
+static const symbol s_3_6[4] = { 'a', 'n', 't', 'a' };
+static const symbol s_3_7[4] = { 'i', 's', 't', 'a' };
+static const symbol s_3_8[3] = { 'u', 't', 'a' };
+static const symbol s_3_9[3] = { 'i', 'v', 'a' };
+static const symbol s_3_10[2] = { 'i', 'c' };
+static const symbol s_3_11[3] = { 'i', 'c', 'e' };
+static const symbol s_3_12[5] = { 'a', 'b', 'i', 'l', 'e' };
+static const symbol s_3_13[5] = { 'i', 'b', 'i', 'l', 'e' };
+static const symbol s_3_14[4] = { 'i', 's', 'm', 'e' };
+static const symbol s_3_15[4] = { 'i', 'u', 'n', 'e' };
+static const symbol s_3_16[4] = { 'o', 'a', 's', 'e' };
+static const symbol s_3_17[3] = { 'a', 't', 'e' };
+static const symbol s_3_18[5] = { 'i', 't', 'a', 't', 'e' };
+static const symbol s_3_19[3] = { 'i', 't', 'e' };
+static const symbol s_3_20[4] = { 'a', 'n', 't', 'e' };
+static const symbol s_3_21[4] = { 'i', 's', 't', 'e' };
+static const symbol s_3_22[3] = { 'u', 't', 'e' };
+static const symbol s_3_23[3] = { 'i', 'v', 'e' };
+static const symbol s_3_24[3] = { 'i', 'c', 'i' };
+static const symbol s_3_25[5] = { 'a', 'b', 'i', 'l', 'i' };
+static const symbol s_3_26[5] = { 'i', 'b', 'i', 'l', 'i' };
+static const symbol s_3_27[4] = { 'i', 'u', 'n', 'i' };
+static const symbol s_3_28[5] = { 'a', 't', 'o', 'r', 'i' };
+static const symbol s_3_29[3] = { 'o', 's', 'i' };
+static const symbol s_3_30[3] = { 'a', 't', 'i' };
+static const symbol s_3_31[5] = { 'i', 't', 'a', 't', 'i' };
+static const symbol s_3_32[3] = { 'i', 't', 'i' };
+static const symbol s_3_33[4] = { 'a', 'n', 't', 'i' };
+static const symbol s_3_34[4] = { 'i', 's', 't', 'i' };
+static const symbol s_3_35[3] = { 'u', 't', 'i' };
+static const symbol s_3_36[4] = { 'i', 0xBA, 't', 'i' };
+static const symbol s_3_37[3] = { 'i', 'v', 'i' };
+static const symbol s_3_38[3] = { 'o', 0xBA, 'i' };
+static const symbol s_3_39[4] = { 'i', 't', 0xE3, 'i' };
+static const symbol s_3_40[5] = { 'i', 't', 0xE3, 0xFE, 'i' };
+static const symbol s_3_41[4] = { 'a', 'b', 'i', 'l' };
+static const symbol s_3_42[4] = { 'i', 'b', 'i', 'l' };
+static const symbol s_3_43[3] = { 'i', 's', 'm' };
+static const symbol s_3_44[4] = { 'a', 't', 'o', 'r' };
+static const symbol s_3_45[2] = { 'o', 's' };
+static const symbol s_3_46[2] = { 'a', 't' };
+static const symbol s_3_47[2] = { 'i', 't' };
+static const symbol s_3_48[3] = { 'a', 'n', 't' };
+static const symbol s_3_49[3] = { 'i', 's', 't' };
+static const symbol s_3_50[2] = { 'u', 't' };
+static const symbol s_3_51[2] = { 'i', 'v' };
+static const symbol s_3_52[3] = { 'i', 'c', 0xE3 };
+static const symbol s_3_53[5] = { 'a', 'b', 'i', 'l', 0xE3 };
+static const symbol s_3_54[5] = { 'i', 'b', 'i', 'l', 0xE3 };
+static const symbol s_3_55[4] = { 'o', 'a', 's', 0xE3 };
+static const symbol s_3_56[3] = { 'a', 't', 0xE3 };
+static const symbol s_3_57[3] = { 'i', 't', 0xE3 };
+static const symbol s_3_58[4] = { 'a', 'n', 't', 0xE3 };
+static const symbol s_3_59[4] = { 'i', 's', 't', 0xE3 };
+static const symbol s_3_60[3] = { 'u', 't', 0xE3 };
+static const symbol s_3_61[3] = { 'i', 'v', 0xE3 };
+
+static const struct among a_3[62] =
+{
+{ 3, s_3_0, -1, 1, 0},
+{ 5, s_3_1, -1, 1, 0},
+{ 5, s_3_2, -1, 1, 0},
+{ 4, s_3_3, -1, 1, 0},
+{ 3, s_3_4, -1, 1, 0},
+{ 3, s_3_5, -1, 1, 0},
+{ 4, s_3_6, -1, 1, 0},
+{ 4, s_3_7, -1, 3, 0},
+{ 3, s_3_8, -1, 1, 0},
+{ 3, s_3_9, -1, 1, 0},
+{ 2, s_3_10, -1, 1, 0},
+{ 3, s_3_11, -1, 1, 0},
+{ 5, s_3_12, -1, 1, 0},
+{ 5, s_3_13, -1, 1, 0},
+{ 4, s_3_14, -1, 3, 0},
+{ 4, s_3_15, -1, 2, 0},
+{ 4, s_3_16, -1, 1, 0},
+{ 3, s_3_17, -1, 1, 0},
+{ 5, s_3_18, 17, 1, 0},
+{ 3, s_3_19, -1, 1, 0},
+{ 4, s_3_20, -1, 1, 0},
+{ 4, s_3_21, -1, 3, 0},
+{ 3, s_3_22, -1, 1, 0},
+{ 3, s_3_23, -1, 1, 0},
+{ 3, s_3_24, -1, 1, 0},
+{ 5, s_3_25, -1, 1, 0},
+{ 5, s_3_26, -1, 1, 0},
+{ 4, s_3_27, -1, 2, 0},
+{ 5, s_3_28, -1, 1, 0},
+{ 3, s_3_29, -1, 1, 0},
+{ 3, s_3_30, -1, 1, 0},
+{ 5, s_3_31, 30, 1, 0},
+{ 3, s_3_32, -1, 1, 0},
+{ 4, s_3_33, -1, 1, 0},
+{ 4, s_3_34, -1, 3, 0},
+{ 3, s_3_35, -1, 1, 0},
+{ 4, s_3_36, -1, 3, 0},
+{ 3, s_3_37, -1, 1, 0},
+{ 3, s_3_38, -1, 1, 0},
+{ 4, s_3_39, -1, 1, 0},
+{ 5, s_3_40, -1, 1, 0},
+{ 4, s_3_41, -1, 1, 0},
+{ 4, s_3_42, -1, 1, 0},
+{ 3, s_3_43, -1, 3, 0},
+{ 4, s_3_44, -1, 1, 0},
+{ 2, s_3_45, -1, 1, 0},
+{ 2, s_3_46, -1, 1, 0},
+{ 2, s_3_47, -1, 1, 0},
+{ 3, s_3_48, -1, 1, 0},
+{ 3, s_3_49, -1, 3, 0},
+{ 2, s_3_50, -1, 1, 0},
+{ 2, s_3_51, -1, 1, 0},
+{ 3, s_3_52, -1, 1, 0},
+{ 5, s_3_53, -1, 1, 0},
+{ 5, s_3_54, -1, 1, 0},
+{ 4, s_3_55, -1, 1, 0},
+{ 3, s_3_56, -1, 1, 0},
+{ 3, s_3_57, -1, 1, 0},
+{ 4, s_3_58, -1, 1, 0},
+{ 4, s_3_59, -1, 3, 0},
+{ 3, s_3_60, -1, 1, 0},
+{ 3, s_3_61, -1, 1, 0}
+};
+
+static const symbol s_4_0[2] = { 'e', 'a' };
+static const symbol s_4_1[2] = { 'i', 'a' };
+static const symbol s_4_2[3] = { 'e', 's', 'c' };
+static const symbol s_4_3[3] = { 0xE3, 's', 'c' };
+static const symbol s_4_4[3] = { 'i', 'n', 'd' };
+static const symbol s_4_5[3] = { 0xE2, 'n', 'd' };
+static const symbol s_4_6[3] = { 'a', 'r', 'e' };
+static const symbol s_4_7[3] = { 'e', 'r', 'e' };
+static const symbol s_4_8[3] = { 'i', 'r', 'e' };
+static const symbol s_4_9[3] = { 0xE2, 'r', 'e' };
+static const symbol s_4_10[2] = { 's', 'e' };
+static const symbol s_4_11[3] = { 'a', 's', 'e' };
+static const symbol s_4_12[4] = { 's', 'e', 's', 'e' };
+static const symbol s_4_13[3] = { 'i', 's', 'e' };
+static const symbol s_4_14[3] = { 'u', 's', 'e' };
+static const symbol s_4_15[3] = { 0xE2, 's', 'e' };
+static const symbol s_4_16[4] = { 'e', 0xBA, 't', 'e' };
+static const symbol s_4_17[4] = { 0xE3, 0xBA, 't', 'e' };
+static const symbol s_4_18[3] = { 'e', 'z', 'e' };
+static const symbol s_4_19[2] = { 'a', 'i' };
+static const symbol s_4_20[3] = { 'e', 'a', 'i' };
+static const symbol s_4_21[3] = { 'i', 'a', 'i' };
+static const symbol s_4_22[3] = { 's', 'e', 'i' };
+static const symbol s_4_23[4] = { 'e', 0xBA, 't', 'i' };
+static const symbol s_4_24[4] = { 0xE3, 0xBA, 't', 'i' };
+static const symbol s_4_25[2] = { 'u', 'i' };
+static const symbol s_4_26[3] = { 'e', 'z', 'i' };
+static const symbol s_4_27[3] = { 'a', 0xBA, 'i' };
+static const symbol s_4_28[4] = { 's', 'e', 0xBA, 'i' };
+static const symbol s_4_29[5] = { 'a', 's', 'e', 0xBA, 'i' };
+static const symbol s_4_30[6] = { 's', 'e', 's', 'e', 0xBA, 'i' };
+static const symbol s_4_31[5] = { 'i', 's', 'e', 0xBA, 'i' };
+static const symbol s_4_32[5] = { 'u', 's', 'e', 0xBA, 'i' };
+static const symbol s_4_33[5] = { 0xE2, 's', 'e', 0xBA, 'i' };
+static const symbol s_4_34[3] = { 'i', 0xBA, 'i' };
+static const symbol s_4_35[3] = { 'u', 0xBA, 'i' };
+static const symbol s_4_36[3] = { 0xE2, 0xBA, 'i' };
+static const symbol s_4_37[2] = { 0xE2, 'i' };
+static const symbol s_4_38[3] = { 'a', 0xFE, 'i' };
+static const symbol s_4_39[4] = { 'e', 'a', 0xFE, 'i' };
+static const symbol s_4_40[4] = { 'i', 'a', 0xFE, 'i' };
+static const symbol s_4_41[3] = { 'e', 0xFE, 'i' };
+static const symbol s_4_42[3] = { 'i', 0xFE, 'i' };
+static const symbol s_4_43[3] = { 0xE2, 0xFE, 'i' };
+static const symbol s_4_44[5] = { 'a', 'r', 0xE3, 0xFE, 'i' };
+static const symbol s_4_45[6] = { 's', 'e', 'r', 0xE3, 0xFE, 'i' };
+static const symbol s_4_46[7] = { 'a', 's', 'e', 'r', 0xE3, 0xFE, 'i' };
+static const symbol s_4_47[8] = { 's', 'e', 's', 'e', 'r', 0xE3, 0xFE, 'i' };
+static const symbol s_4_48[7] = { 'i', 's', 'e', 'r', 0xE3, 0xFE, 'i' };
+static const symbol s_4_49[7] = { 'u', 's', 'e', 'r', 0xE3, 0xFE, 'i' };
+static const symbol s_4_50[7] = { 0xE2, 's', 'e', 'r', 0xE3, 0xFE, 'i' };
+static const symbol s_4_51[5] = { 'i', 'r', 0xE3, 0xFE, 'i' };
+static const symbol s_4_52[5] = { 'u', 'r', 0xE3, 0xFE, 'i' };
+static const symbol s_4_53[5] = { 0xE2, 'r', 0xE3, 0xFE, 'i' };
+static const symbol s_4_54[2] = { 'a', 'm' };
+static const symbol s_4_55[3] = { 'e', 'a', 'm' };
+static const symbol s_4_56[3] = { 'i', 'a', 'm' };
+static const symbol s_4_57[2] = { 'e', 'm' };
+static const symbol s_4_58[4] = { 'a', 's', 'e', 'm' };
+static const symbol s_4_59[5] = { 's', 'e', 's', 'e', 'm' };
+static const symbol s_4_60[4] = { 'i', 's', 'e', 'm' };
+static const symbol s_4_61[4] = { 'u', 's', 'e', 'm' };
+static const symbol s_4_62[4] = { 0xE2, 's', 'e', 'm' };
+static const symbol s_4_63[2] = { 'i', 'm' };
+static const symbol s_4_64[2] = { 0xE2, 'm' };
+static const symbol s_4_65[2] = { 0xE3, 'm' };
+static const symbol s_4_66[4] = { 'a', 'r', 0xE3, 'm' };
+static const symbol s_4_67[5] = { 's', 'e', 'r', 0xE3, 'm' };
+static const symbol s_4_68[6] = { 'a', 's', 'e', 'r', 0xE3, 'm' };
+static const symbol s_4_69[7] = { 's', 'e', 's', 'e', 'r', 0xE3, 'm' };
+static const symbol s_4_70[6] = { 'i', 's', 'e', 'r', 0xE3, 'm' };
+static const symbol s_4_71[6] = { 'u', 's', 'e', 'r', 0xE3, 'm' };
+static const symbol s_4_72[6] = { 0xE2, 's', 'e', 'r', 0xE3, 'm' };
+static const symbol s_4_73[4] = { 'i', 'r', 0xE3, 'm' };
+static const symbol s_4_74[4] = { 'u', 'r', 0xE3, 'm' };
+static const symbol s_4_75[4] = { 0xE2, 'r', 0xE3, 'm' };
+static const symbol s_4_76[2] = { 'a', 'u' };
+static const symbol s_4_77[3] = { 'e', 'a', 'u' };
+static const symbol s_4_78[3] = { 'i', 'a', 'u' };
+static const symbol s_4_79[4] = { 'i', 'n', 'd', 'u' };
+static const symbol s_4_80[4] = { 0xE2, 'n', 'd', 'u' };
+static const symbol s_4_81[2] = { 'e', 'z' };
+static const symbol s_4_82[5] = { 'e', 'a', 's', 'c', 0xE3 };
+static const symbol s_4_83[3] = { 'a', 'r', 0xE3 };
+static const symbol s_4_84[4] = { 's', 'e', 'r', 0xE3 };
+static const symbol s_4_85[5] = { 'a', 's', 'e', 'r', 0xE3 };
+static const symbol s_4_86[6] = { 's', 'e', 's', 'e', 'r', 0xE3 };
+static const symbol s_4_87[5] = { 'i', 's', 'e', 'r', 0xE3 };
+static const symbol s_4_88[5] = { 'u', 's', 'e', 'r', 0xE3 };
+static const symbol s_4_89[5] = { 0xE2, 's', 'e', 'r', 0xE3 };
+static const symbol s_4_90[3] = { 'i', 'r', 0xE3 };
+static const symbol s_4_91[3] = { 'u', 'r', 0xE3 };
+static const symbol s_4_92[3] = { 0xE2, 'r', 0xE3 };
+static const symbol s_4_93[4] = { 'e', 'a', 'z', 0xE3 };
+
+static const struct among a_4[94] =
+{
+{ 2, s_4_0, -1, 1, 0},
+{ 2, s_4_1, -1, 1, 0},
+{ 3, s_4_2, -1, 1, 0},
+{ 3, s_4_3, -1, 1, 0},
+{ 3, s_4_4, -1, 1, 0},
+{ 3, s_4_5, -1, 1, 0},
+{ 3, s_4_6, -1, 1, 0},
+{ 3, s_4_7, -1, 1, 0},
+{ 3, s_4_8, -1, 1, 0},
+{ 3, s_4_9, -1, 1, 0},
+{ 2, s_4_10, -1, 2, 0},
+{ 3, s_4_11, 10, 1, 0},
+{ 4, s_4_12, 10, 2, 0},
+{ 3, s_4_13, 10, 1, 0},
+{ 3, s_4_14, 10, 1, 0},
+{ 3, s_4_15, 10, 1, 0},
+{ 4, s_4_16, -1, 1, 0},
+{ 4, s_4_17, -1, 1, 0},
+{ 3, s_4_18, -1, 1, 0},
+{ 2, s_4_19, -1, 1, 0},
+{ 3, s_4_20, 19, 1, 0},
+{ 3, s_4_21, 19, 1, 0},
+{ 3, s_4_22, -1, 2, 0},
+{ 4, s_4_23, -1, 1, 0},
+{ 4, s_4_24, -1, 1, 0},
+{ 2, s_4_25, -1, 1, 0},
+{ 3, s_4_26, -1, 1, 0},
+{ 3, s_4_27, -1, 1, 0},
+{ 4, s_4_28, -1, 2, 0},
+{ 5, s_4_29, 28, 1, 0},
+{ 6, s_4_30, 28, 2, 0},
+{ 5, s_4_31, 28, 1, 0},
+{ 5, s_4_32, 28, 1, 0},
+{ 5, s_4_33, 28, 1, 0},
+{ 3, s_4_34, -1, 1, 0},
+{ 3, s_4_35, -1, 1, 0},
+{ 3, s_4_36, -1, 1, 0},
+{ 2, s_4_37, -1, 1, 0},
+{ 3, s_4_38, -1, 2, 0},
+{ 4, s_4_39, 38, 1, 0},
+{ 4, s_4_40, 38, 1, 0},
+{ 3, s_4_41, -1, 2, 0},
+{ 3, s_4_42, -1, 2, 0},
+{ 3, s_4_43, -1, 2, 0},
+{ 5, s_4_44, -1, 1, 0},
+{ 6, s_4_45, -1, 2, 0},
+{ 7, s_4_46, 45, 1, 0},
+{ 8, s_4_47, 45, 2, 0},
+{ 7, s_4_48, 45, 1, 0},
+{ 7, s_4_49, 45, 1, 0},
+{ 7, s_4_50, 45, 1, 0},
+{ 5, s_4_51, -1, 1, 0},
+{ 5, s_4_52, -1, 1, 0},
+{ 5, s_4_53, -1, 1, 0},
+{ 2, s_4_54, -1, 1, 0},
+{ 3, s_4_55, 54, 1, 0},
+{ 3, s_4_56, 54, 1, 0},
+{ 2, s_4_57, -1, 2, 0},
+{ 4, s_4_58, 57, 1, 0},
+{ 5, s_4_59, 57, 2, 0},
+{ 4, s_4_60, 57, 1, 0},
+{ 4, s_4_61, 57, 1, 0},
+{ 4, s_4_62, 57, 1, 0},
+{ 2, s_4_63, -1, 2, 0},
+{ 2, s_4_64, -1, 2, 0},
+{ 2, s_4_65, -1, 2, 0},
+{ 4, s_4_66, 65, 1, 0},
+{ 5, s_4_67, 65, 2, 0},
+{ 6, s_4_68, 67, 1, 0},
+{ 7, s_4_69, 67, 2, 0},
+{ 6, s_4_70, 67, 1, 0},
+{ 6, s_4_71, 67, 1, 0},
+{ 6, s_4_72, 67, 1, 0},
+{ 4, s_4_73, 65, 1, 0},
+{ 4, s_4_74, 65, 1, 0},
+{ 4, s_4_75, 65, 1, 0},
+{ 2, s_4_76, -1, 1, 0},
+{ 3, s_4_77, 76, 1, 0},
+{ 3, s_4_78, 76, 1, 0},
+{ 4, s_4_79, -1, 1, 0},
+{ 4, s_4_80, -1, 1, 0},
+{ 2, s_4_81, -1, 1, 0},
+{ 5, s_4_82, -1, 1, 0},
+{ 3, s_4_83, -1, 1, 0},
+{ 4, s_4_84, -1, 2, 0},
+{ 5, s_4_85, 84, 1, 0},
+{ 6, s_4_86, 84, 2, 0},
+{ 5, s_4_87, 84, 1, 0},
+{ 5, s_4_88, 84, 1, 0},
+{ 5, s_4_89, 84, 1, 0},
+{ 3, s_4_90, -1, 1, 0},
+{ 3, s_4_91, -1, 1, 0},
+{ 3, s_4_92, -1, 1, 0},
+{ 4, s_4_93, -1, 1, 0}
+};
+
+static const symbol s_5_0[1] = { 'a' };
+static const symbol s_5_1[1] = { 'e' };
+static const symbol s_5_2[2] = { 'i', 'e' };
+static const symbol s_5_3[1] = { 'i' };
+static const symbol s_5_4[1] = { 0xE3 };
+
+static const struct among a_5[5] =
+{
+{ 1, s_5_0, -1, 1, 0},
+{ 1, s_5_1, -1, 1, 0},
+{ 2, s_5_2, 1, 1, 0},
+{ 1, s_5_3, -1, 1, 0},
+{ 1, s_5_4, -1, 1, 0}
+};
+
+static const unsigned char g_v[] = { 17, 65, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 32 };
+
+static const symbol s_0[] = { 'U' };
+static const symbol s_1[] = { 'I' };
+static const symbol s_2[] = { 'i' };
+static const symbol s_3[] = { 'u' };
+static const symbol s_4[] = { 'a' };
+static const symbol s_5[] = { 'e' };
+static const symbol s_6[] = { 'i' };
+static const symbol s_7[] = { 'a', 'b' };
+static const symbol s_8[] = { 'i' };
+static const symbol s_9[] = { 'a', 't' };
+static const symbol s_10[] = { 'a', 0xFE, 'i' };
+static const symbol s_11[] = { 'a', 'b', 'i', 'l' };
+static const symbol s_12[] = { 'i', 'b', 'i', 'l' };
+static const symbol s_13[] = { 'i', 'v' };
+static const symbol s_14[] = { 'i', 'c' };
+static const symbol s_15[] = { 'a', 't' };
+static const symbol s_16[] = { 'i', 't' };
+static const symbol s_17[] = { 't' };
+static const symbol s_18[] = { 'i', 's', 't' };
+
+static int r_prelude(struct SN_env * z) {
+ while(1) {
+ int c1 = z->c;
+ while(1) {
+ int c2 = z->c;
+ if (in_grouping(z, g_v, 97, 238, 0)) goto lab1;
+ z->bra = z->c;
+ { int c3 = z->c;
+ if (z->c == z->l || z->p[z->c] != 'u') goto lab3;
+ z->c++;
+ z->ket = z->c;
+ if (in_grouping(z, g_v, 97, 238, 0)) goto lab3;
+ { int ret = slice_from_s(z, 1, s_0);
+ if (ret < 0) return ret;
+ }
+ goto lab2;
+ lab3:
+ z->c = c3;
+ if (z->c == z->l || z->p[z->c] != 'i') goto lab1;
+ z->c++;
+ z->ket = z->c;
+ if (in_grouping(z, g_v, 97, 238, 0)) goto lab1;
+ { int ret = slice_from_s(z, 1, s_1);
+ if (ret < 0) return ret;
+ }
+ }
+ lab2:
+ z->c = c2;
+ break;
+ lab1:
+ z->c = c2;
+ if (z->c >= z->l) goto lab0;
+ z->c++;
+ }
+ continue;
+ lab0:
+ z->c = c1;
+ break;
+ }
+ return 1;
+}
+
+static int r_mark_regions(struct SN_env * z) {
+ z->I[2] = z->l;
+ z->I[1] = z->l;
+ z->I[0] = z->l;
+ { int c1 = z->c;
+ { int c2 = z->c;
+ if (in_grouping(z, g_v, 97, 238, 0)) goto lab2;
+ { int c3 = z->c;
+ if (out_grouping(z, g_v, 97, 238, 0)) goto lab4;
+ {
+ int ret = out_grouping(z, g_v, 97, 238, 1);
+ if (ret < 0) goto lab4;
+ z->c += ret;
+ }
+ goto lab3;
+ lab4:
+ z->c = c3;
+ if (in_grouping(z, g_v, 97, 238, 0)) goto lab2;
+ {
+ int ret = in_grouping(z, g_v, 97, 238, 1);
+ if (ret < 0) goto lab2;
+ z->c += ret;
+ }
+ }
+ lab3:
+ goto lab1;
+ lab2:
+ z->c = c2;
+ if (out_grouping(z, g_v, 97, 238, 0)) goto lab0;
+ { int c4 = z->c;
+ if (out_grouping(z, g_v, 97, 238, 0)) goto lab6;
+ {
+ int ret = out_grouping(z, g_v, 97, 238, 1);
+ if (ret < 0) goto lab6;
+ z->c += ret;
+ }
+ goto lab5;
+ lab6:
+ z->c = c4;
+ if (in_grouping(z, g_v, 97, 238, 0)) goto lab0;
+ if (z->c >= z->l) goto lab0;
+ z->c++;
+ }
+ lab5:
+ ;
+ }
+ lab1:
+ z->I[2] = z->c;
+ lab0:
+ z->c = c1;
+ }
+ { int c5 = z->c;
+ {
+ int ret = out_grouping(z, g_v, 97, 238, 1);
+ if (ret < 0) goto lab7;
+ z->c += ret;
+ }
+ {
+ int ret = in_grouping(z, g_v, 97, 238, 1);
+ if (ret < 0) goto lab7;
+ z->c += ret;
+ }
+ z->I[1] = z->c;
+ {
+ int ret = out_grouping(z, g_v, 97, 238, 1);
+ if (ret < 0) goto lab7;
+ z->c += ret;
+ }
+ {
+ int ret = in_grouping(z, g_v, 97, 238, 1);
+ if (ret < 0) goto lab7;
+ z->c += ret;
+ }
+ z->I[0] = z->c;
+ lab7:
+ z->c = c5;
+ }
+ return 1;
+}
+
+static int r_postlude(struct SN_env * z) {
+ int among_var;
+ while(1) {
+ int c1 = z->c;
+ z->bra = z->c;
+ if (z->c >= z->l || (z->p[z->c + 0] != 73 && z->p[z->c + 0] != 85)) among_var = 3; else
+ among_var = find_among(z, a_0, 3);
+ if (!(among_var)) goto lab0;
+ z->ket = z->c;
+ switch (among_var) {
+ case 1:
+ { int ret = slice_from_s(z, 1, s_2);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 2:
+ { int ret = slice_from_s(z, 1, s_3);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 3:
+ if (z->c >= z->l) goto lab0;
+ z->c++;
+ break;
+ }
+ continue;
+ lab0:
+ z->c = c1;
+ break;
+ }
+ return 1;
+}
+
+static int r_RV(struct SN_env * z) {
+ if (!(z->I[2] <= z->c)) return 0;
+ return 1;
+}
+
+static int r_R1(struct SN_env * z) {
+ if (!(z->I[1] <= z->c)) return 0;
+ return 1;
+}
+
+static int r_R2(struct SN_env * z) {
+ if (!(z->I[0] <= z->c)) return 0;
+ return 1;
+}
+
+static int r_step_0(struct SN_env * z) {
+ int among_var;
+ z->ket = z->c;
+ if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((266786 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
+ among_var = find_among_b(z, a_1, 16);
+ if (!(among_var)) return 0;
+ z->bra = z->c;
+ { int ret = r_R1(z);
+ if (ret <= 0) return ret;
+ }
+ switch (among_var) {
+ case 1:
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 2:
+ { int ret = slice_from_s(z, 1, s_4);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 3:
+ { int ret = slice_from_s(z, 1, s_5);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 4:
+ { int ret = slice_from_s(z, 1, s_6);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 5:
+ { int m1 = z->l - z->c; (void)m1;
+ if (!(eq_s_b(z, 2, s_7))) goto lab0;
+ return 0;
+ lab0:
+ z->c = z->l - m1;
+ }
+ { int ret = slice_from_s(z, 1, s_8);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 6:
+ { int ret = slice_from_s(z, 2, s_9);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 7:
+ { int ret = slice_from_s(z, 3, s_10);
+ if (ret < 0) return ret;
+ }
+ break;
+ }
+ return 1;
+}
+
+static int r_combo_suffix(struct SN_env * z) {
+ int among_var;
+ { int m_test1 = z->l - z->c;
+ z->ket = z->c;
+ among_var = find_among_b(z, a_2, 46);
+ if (!(among_var)) return 0;
+ z->bra = z->c;
+ { int ret = r_R1(z);
+ if (ret <= 0) return ret;
+ }
+ switch (among_var) {
+ case 1:
+ { int ret = slice_from_s(z, 4, s_11);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 2:
+ { int ret = slice_from_s(z, 4, s_12);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 3:
+ { int ret = slice_from_s(z, 2, s_13);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 4:
+ { int ret = slice_from_s(z, 2, s_14);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 5:
+ { int ret = slice_from_s(z, 2, s_15);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 6:
+ { int ret = slice_from_s(z, 2, s_16);
+ if (ret < 0) return ret;
+ }
+ break;
+ }
+ z->I[3] = 1;
+ z->c = z->l - m_test1;
+ }
+ return 1;
+}
+
+static int r_standard_suffix(struct SN_env * z) {
+ int among_var;
+ z->I[3] = 0;
+ while(1) {
+ int m1 = z->l - z->c; (void)m1;
+ { int ret = r_combo_suffix(z);
+ if (ret == 0) goto lab0;
+ if (ret < 0) return ret;
+ }
+ continue;
+ lab0:
+ z->c = z->l - m1;
+ break;
+ }
+ z->ket = z->c;
+ among_var = find_among_b(z, a_3, 62);
+ if (!(among_var)) return 0;
+ z->bra = z->c;
+ { int ret = r_R2(z);
+ if (ret <= 0) return ret;
+ }
+ switch (among_var) {
+ case 1:
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 2:
+ if (z->c <= z->lb || z->p[z->c - 1] != 0xFE) return 0;
+ z->c--;
+ z->bra = z->c;
+ { int ret = slice_from_s(z, 1, s_17);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 3:
+ { int ret = slice_from_s(z, 3, s_18);
+ if (ret < 0) return ret;
+ }
+ break;
+ }
+ z->I[3] = 1;
+ return 1;
+}
+
+static int r_verb_suffix(struct SN_env * z) {
+ int among_var;
+
+ { int mlimit1;
+ if (z->c < z->I[2]) return 0;
+ mlimit1 = z->lb; z->lb = z->I[2];
+ z->ket = z->c;
+ among_var = find_among_b(z, a_4, 94);
+ if (!(among_var)) { z->lb = mlimit1; return 0; }
+ z->bra = z->c;
+ switch (among_var) {
+ case 1:
+ { int m2 = z->l - z->c; (void)m2;
+ if (out_grouping_b(z, g_v, 97, 238, 0)) goto lab1;
+ goto lab0;
+ lab1:
+ z->c = z->l - m2;
+ if (z->c <= z->lb || z->p[z->c - 1] != 'u') { z->lb = mlimit1; return 0; }
+ z->c--;
+ }
+ lab0:
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 2:
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ break;
+ }
+ z->lb = mlimit1;
+ }
+ return 1;
+}
+
+static int r_vowel_suffix(struct SN_env * z) {
+ z->ket = z->c;
+ if (!(find_among_b(z, a_5, 5))) return 0;
+ z->bra = z->c;
+ { int ret = r_RV(z);
+ if (ret <= 0) return ret;
+ }
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ return 1;
+}
+
+extern int romanian_ISO_8859_2_stem(struct SN_env * z) {
+ { int c1 = z->c;
+ { int ret = r_prelude(z);
+ if (ret < 0) return ret;
+ }
+ z->c = c1;
+ }
+
+ { int ret = r_mark_regions(z);
+ if (ret < 0) return ret;
+ }
+ z->lb = z->c; z->c = z->l;
+
+ { int m2 = z->l - z->c; (void)m2;
+ { int ret = r_step_0(z);
+ if (ret < 0) return ret;
+ }
+ z->c = z->l - m2;
+ }
+ { int m3 = z->l - z->c; (void)m3;
+ { int ret = r_standard_suffix(z);
+ if (ret < 0) return ret;
+ }
+ z->c = z->l - m3;
+ }
+ { int m4 = z->l - z->c; (void)m4;
+ { int m5 = z->l - z->c; (void)m5;
+ if (!(z->I[3])) goto lab2;
+ goto lab1;
+ lab2:
+ z->c = z->l - m5;
+ { int ret = r_verb_suffix(z);
+ if (ret == 0) goto lab0;
+ if (ret < 0) return ret;
+ }
+ }
+ lab1:
+ lab0:
+ z->c = z->l - m4;
+ }
+ { int m6 = z->l - z->c; (void)m6;
+ { int ret = r_vowel_suffix(z);
+ if (ret < 0) return ret;
+ }
+ z->c = z->l - m6;
+ }
+ z->c = z->lb;
+ { int c7 = z->c;
+ { int ret = r_postlude(z);
+ if (ret < 0) return ret;
+ }
+ z->c = c7;
+ }
+ return 1;
+}
+
+extern struct SN_env * romanian_ISO_8859_2_create_env(void) { return SN_create_env(0, 4); }
+
+extern void romanian_ISO_8859_2_close_env(struct SN_env * z) { SN_close_env(z, 0); }
+
diff --git a/src/backend/snowball/libstemmer/stem_KOI8_R_russian.c b/src/backend/snowball/libstemmer/stem_KOI8_R_russian.c
new file mode 100644
index 0000000..3bd2f71
--- /dev/null
+++ b/src/backend/snowball/libstemmer/stem_KOI8_R_russian.c
@@ -0,0 +1,682 @@
+/* Generated by Snowball 2.2.0 - https://snowballstem.org/ */
+
+#include "header.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+extern int russian_KOI8_R_stem(struct SN_env * z);
+#ifdef __cplusplus
+}
+#endif
+static int r_tidy_up(struct SN_env * z);
+static int r_derivational(struct SN_env * z);
+static int r_noun(struct SN_env * z);
+static int r_verb(struct SN_env * z);
+static int r_reflexive(struct SN_env * z);
+static int r_adjectival(struct SN_env * z);
+static int r_adjective(struct SN_env * z);
+static int r_perfective_gerund(struct SN_env * z);
+static int r_R2(struct SN_env * z);
+static int r_mark_regions(struct SN_env * z);
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+extern struct SN_env * russian_KOI8_R_create_env(void);
+extern void russian_KOI8_R_close_env(struct SN_env * z);
+
+
+#ifdef __cplusplus
+}
+#endif
+static const symbol s_0_0[3] = { 0xD7, 0xDB, 0xC9 };
+static const symbol s_0_1[4] = { 0xC9, 0xD7, 0xDB, 0xC9 };
+static const symbol s_0_2[4] = { 0xD9, 0xD7, 0xDB, 0xC9 };
+static const symbol s_0_3[1] = { 0xD7 };
+static const symbol s_0_4[2] = { 0xC9, 0xD7 };
+static const symbol s_0_5[2] = { 0xD9, 0xD7 };
+static const symbol s_0_6[5] = { 0xD7, 0xDB, 0xC9, 0xD3, 0xD8 };
+static const symbol s_0_7[6] = { 0xC9, 0xD7, 0xDB, 0xC9, 0xD3, 0xD8 };
+static const symbol s_0_8[6] = { 0xD9, 0xD7, 0xDB, 0xC9, 0xD3, 0xD8 };
+
+static const struct among a_0[9] =
+{
+{ 3, s_0_0, -1, 1, 0},
+{ 4, s_0_1, 0, 2, 0},
+{ 4, s_0_2, 0, 2, 0},
+{ 1, s_0_3, -1, 1, 0},
+{ 2, s_0_4, 3, 2, 0},
+{ 2, s_0_5, 3, 2, 0},
+{ 5, s_0_6, -1, 1, 0},
+{ 6, s_0_7, 6, 2, 0},
+{ 6, s_0_8, 6, 2, 0}
+};
+
+static const symbol s_1_0[2] = { 0xC0, 0xC0 };
+static const symbol s_1_1[2] = { 0xC5, 0xC0 };
+static const symbol s_1_2[2] = { 0xCF, 0xC0 };
+static const symbol s_1_3[2] = { 0xD5, 0xC0 };
+static const symbol s_1_4[2] = { 0xC5, 0xC5 };
+static const symbol s_1_5[2] = { 0xC9, 0xC5 };
+static const symbol s_1_6[2] = { 0xCF, 0xC5 };
+static const symbol s_1_7[2] = { 0xD9, 0xC5 };
+static const symbol s_1_8[2] = { 0xC9, 0xC8 };
+static const symbol s_1_9[2] = { 0xD9, 0xC8 };
+static const symbol s_1_10[3] = { 0xC9, 0xCD, 0xC9 };
+static const symbol s_1_11[3] = { 0xD9, 0xCD, 0xC9 };
+static const symbol s_1_12[2] = { 0xC5, 0xCA };
+static const symbol s_1_13[2] = { 0xC9, 0xCA };
+static const symbol s_1_14[2] = { 0xCF, 0xCA };
+static const symbol s_1_15[2] = { 0xD9, 0xCA };
+static const symbol s_1_16[2] = { 0xC5, 0xCD };
+static const symbol s_1_17[2] = { 0xC9, 0xCD };
+static const symbol s_1_18[2] = { 0xCF, 0xCD };
+static const symbol s_1_19[2] = { 0xD9, 0xCD };
+static const symbol s_1_20[3] = { 0xC5, 0xC7, 0xCF };
+static const symbol s_1_21[3] = { 0xCF, 0xC7, 0xCF };
+static const symbol s_1_22[2] = { 0xC1, 0xD1 };
+static const symbol s_1_23[2] = { 0xD1, 0xD1 };
+static const symbol s_1_24[3] = { 0xC5, 0xCD, 0xD5 };
+static const symbol s_1_25[3] = { 0xCF, 0xCD, 0xD5 };
+
+static const struct among a_1[26] =
+{
+{ 2, s_1_0, -1, 1, 0},
+{ 2, s_1_1, -1, 1, 0},
+{ 2, s_1_2, -1, 1, 0},
+{ 2, s_1_3, -1, 1, 0},
+{ 2, s_1_4, -1, 1, 0},
+{ 2, s_1_5, -1, 1, 0},
+{ 2, s_1_6, -1, 1, 0},
+{ 2, s_1_7, -1, 1, 0},
+{ 2, s_1_8, -1, 1, 0},
+{ 2, s_1_9, -1, 1, 0},
+{ 3, s_1_10, -1, 1, 0},
+{ 3, s_1_11, -1, 1, 0},
+{ 2, s_1_12, -1, 1, 0},
+{ 2, s_1_13, -1, 1, 0},
+{ 2, s_1_14, -1, 1, 0},
+{ 2, s_1_15, -1, 1, 0},
+{ 2, s_1_16, -1, 1, 0},
+{ 2, s_1_17, -1, 1, 0},
+{ 2, s_1_18, -1, 1, 0},
+{ 2, s_1_19, -1, 1, 0},
+{ 3, s_1_20, -1, 1, 0},
+{ 3, s_1_21, -1, 1, 0},
+{ 2, s_1_22, -1, 1, 0},
+{ 2, s_1_23, -1, 1, 0},
+{ 3, s_1_24, -1, 1, 0},
+{ 3, s_1_25, -1, 1, 0}
+};
+
+static const symbol s_2_0[2] = { 0xC5, 0xCD };
+static const symbol s_2_1[2] = { 0xCE, 0xCE };
+static const symbol s_2_2[2] = { 0xD7, 0xDB };
+static const symbol s_2_3[3] = { 0xC9, 0xD7, 0xDB };
+static const symbol s_2_4[3] = { 0xD9, 0xD7, 0xDB };
+static const symbol s_2_5[1] = { 0xDD };
+static const symbol s_2_6[2] = { 0xC0, 0xDD };
+static const symbol s_2_7[3] = { 0xD5, 0xC0, 0xDD };
+
+static const struct among a_2[8] =
+{
+{ 2, s_2_0, -1, 1, 0},
+{ 2, s_2_1, -1, 1, 0},
+{ 2, s_2_2, -1, 1, 0},
+{ 3, s_2_3, 2, 2, 0},
+{ 3, s_2_4, 2, 2, 0},
+{ 1, s_2_5, -1, 1, 0},
+{ 2, s_2_6, 5, 1, 0},
+{ 3, s_2_7, 6, 2, 0}
+};
+
+static const symbol s_3_0[2] = { 0xD3, 0xD1 };
+static const symbol s_3_1[2] = { 0xD3, 0xD8 };
+
+static const struct among a_3[2] =
+{
+{ 2, s_3_0, -1, 1, 0},
+{ 2, s_3_1, -1, 1, 0}
+};
+
+static const symbol s_4_0[1] = { 0xC0 };
+static const symbol s_4_1[2] = { 0xD5, 0xC0 };
+static const symbol s_4_2[2] = { 0xCC, 0xC1 };
+static const symbol s_4_3[3] = { 0xC9, 0xCC, 0xC1 };
+static const symbol s_4_4[3] = { 0xD9, 0xCC, 0xC1 };
+static const symbol s_4_5[2] = { 0xCE, 0xC1 };
+static const symbol s_4_6[3] = { 0xC5, 0xCE, 0xC1 };
+static const symbol s_4_7[3] = { 0xC5, 0xD4, 0xC5 };
+static const symbol s_4_8[3] = { 0xC9, 0xD4, 0xC5 };
+static const symbol s_4_9[3] = { 0xCA, 0xD4, 0xC5 };
+static const symbol s_4_10[4] = { 0xC5, 0xCA, 0xD4, 0xC5 };
+static const symbol s_4_11[4] = { 0xD5, 0xCA, 0xD4, 0xC5 };
+static const symbol s_4_12[2] = { 0xCC, 0xC9 };
+static const symbol s_4_13[3] = { 0xC9, 0xCC, 0xC9 };
+static const symbol s_4_14[3] = { 0xD9, 0xCC, 0xC9 };
+static const symbol s_4_15[1] = { 0xCA };
+static const symbol s_4_16[2] = { 0xC5, 0xCA };
+static const symbol s_4_17[2] = { 0xD5, 0xCA };
+static const symbol s_4_18[1] = { 0xCC };
+static const symbol s_4_19[2] = { 0xC9, 0xCC };
+static const symbol s_4_20[2] = { 0xD9, 0xCC };
+static const symbol s_4_21[2] = { 0xC5, 0xCD };
+static const symbol s_4_22[2] = { 0xC9, 0xCD };
+static const symbol s_4_23[2] = { 0xD9, 0xCD };
+static const symbol s_4_24[1] = { 0xCE };
+static const symbol s_4_25[2] = { 0xC5, 0xCE };
+static const symbol s_4_26[2] = { 0xCC, 0xCF };
+static const symbol s_4_27[3] = { 0xC9, 0xCC, 0xCF };
+static const symbol s_4_28[3] = { 0xD9, 0xCC, 0xCF };
+static const symbol s_4_29[2] = { 0xCE, 0xCF };
+static const symbol s_4_30[3] = { 0xC5, 0xCE, 0xCF };
+static const symbol s_4_31[3] = { 0xCE, 0xCE, 0xCF };
+static const symbol s_4_32[2] = { 0xC0, 0xD4 };
+static const symbol s_4_33[3] = { 0xD5, 0xC0, 0xD4 };
+static const symbol s_4_34[2] = { 0xC5, 0xD4 };
+static const symbol s_4_35[3] = { 0xD5, 0xC5, 0xD4 };
+static const symbol s_4_36[2] = { 0xC9, 0xD4 };
+static const symbol s_4_37[2] = { 0xD1, 0xD4 };
+static const symbol s_4_38[2] = { 0xD9, 0xD4 };
+static const symbol s_4_39[2] = { 0xD4, 0xD8 };
+static const symbol s_4_40[3] = { 0xC9, 0xD4, 0xD8 };
+static const symbol s_4_41[3] = { 0xD9, 0xD4, 0xD8 };
+static const symbol s_4_42[3] = { 0xC5, 0xDB, 0xD8 };
+static const symbol s_4_43[3] = { 0xC9, 0xDB, 0xD8 };
+static const symbol s_4_44[2] = { 0xCE, 0xD9 };
+static const symbol s_4_45[3] = { 0xC5, 0xCE, 0xD9 };
+
+static const struct among a_4[46] =
+{
+{ 1, s_4_0, -1, 2, 0},
+{ 2, s_4_1, 0, 2, 0},
+{ 2, s_4_2, -1, 1, 0},
+{ 3, s_4_3, 2, 2, 0},
+{ 3, s_4_4, 2, 2, 0},
+{ 2, s_4_5, -1, 1, 0},
+{ 3, s_4_6, 5, 2, 0},
+{ 3, s_4_7, -1, 1, 0},
+{ 3, s_4_8, -1, 2, 0},
+{ 3, s_4_9, -1, 1, 0},
+{ 4, s_4_10, 9, 2, 0},
+{ 4, s_4_11, 9, 2, 0},
+{ 2, s_4_12, -1, 1, 0},
+{ 3, s_4_13, 12, 2, 0},
+{ 3, s_4_14, 12, 2, 0},
+{ 1, s_4_15, -1, 1, 0},
+{ 2, s_4_16, 15, 2, 0},
+{ 2, s_4_17, 15, 2, 0},
+{ 1, s_4_18, -1, 1, 0},
+{ 2, s_4_19, 18, 2, 0},
+{ 2, s_4_20, 18, 2, 0},
+{ 2, s_4_21, -1, 1, 0},
+{ 2, s_4_22, -1, 2, 0},
+{ 2, s_4_23, -1, 2, 0},
+{ 1, s_4_24, -1, 1, 0},
+{ 2, s_4_25, 24, 2, 0},
+{ 2, s_4_26, -1, 1, 0},
+{ 3, s_4_27, 26, 2, 0},
+{ 3, s_4_28, 26, 2, 0},
+{ 2, s_4_29, -1, 1, 0},
+{ 3, s_4_30, 29, 2, 0},
+{ 3, s_4_31, 29, 1, 0},
+{ 2, s_4_32, -1, 1, 0},
+{ 3, s_4_33, 32, 2, 0},
+{ 2, s_4_34, -1, 1, 0},
+{ 3, s_4_35, 34, 2, 0},
+{ 2, s_4_36, -1, 2, 0},
+{ 2, s_4_37, -1, 2, 0},
+{ 2, s_4_38, -1, 2, 0},
+{ 2, s_4_39, -1, 1, 0},
+{ 3, s_4_40, 39, 2, 0},
+{ 3, s_4_41, 39, 2, 0},
+{ 3, s_4_42, -1, 1, 0},
+{ 3, s_4_43, -1, 2, 0},
+{ 2, s_4_44, -1, 1, 0},
+{ 3, s_4_45, 44, 2, 0}
+};
+
+static const symbol s_5_0[1] = { 0xC0 };
+static const symbol s_5_1[2] = { 0xC9, 0xC0 };
+static const symbol s_5_2[2] = { 0xD8, 0xC0 };
+static const symbol s_5_3[1] = { 0xC1 };
+static const symbol s_5_4[1] = { 0xC5 };
+static const symbol s_5_5[2] = { 0xC9, 0xC5 };
+static const symbol s_5_6[2] = { 0xD8, 0xC5 };
+static const symbol s_5_7[2] = { 0xC1, 0xC8 };
+static const symbol s_5_8[2] = { 0xD1, 0xC8 };
+static const symbol s_5_9[3] = { 0xC9, 0xD1, 0xC8 };
+static const symbol s_5_10[1] = { 0xC9 };
+static const symbol s_5_11[2] = { 0xC5, 0xC9 };
+static const symbol s_5_12[2] = { 0xC9, 0xC9 };
+static const symbol s_5_13[3] = { 0xC1, 0xCD, 0xC9 };
+static const symbol s_5_14[3] = { 0xD1, 0xCD, 0xC9 };
+static const symbol s_5_15[4] = { 0xC9, 0xD1, 0xCD, 0xC9 };
+static const symbol s_5_16[1] = { 0xCA };
+static const symbol s_5_17[2] = { 0xC5, 0xCA };
+static const symbol s_5_18[3] = { 0xC9, 0xC5, 0xCA };
+static const symbol s_5_19[2] = { 0xC9, 0xCA };
+static const symbol s_5_20[2] = { 0xCF, 0xCA };
+static const symbol s_5_21[2] = { 0xC1, 0xCD };
+static const symbol s_5_22[2] = { 0xC5, 0xCD };
+static const symbol s_5_23[3] = { 0xC9, 0xC5, 0xCD };
+static const symbol s_5_24[2] = { 0xCF, 0xCD };
+static const symbol s_5_25[2] = { 0xD1, 0xCD };
+static const symbol s_5_26[3] = { 0xC9, 0xD1, 0xCD };
+static const symbol s_5_27[1] = { 0xCF };
+static const symbol s_5_28[1] = { 0xD1 };
+static const symbol s_5_29[2] = { 0xC9, 0xD1 };
+static const symbol s_5_30[2] = { 0xD8, 0xD1 };
+static const symbol s_5_31[1] = { 0xD5 };
+static const symbol s_5_32[2] = { 0xC5, 0xD7 };
+static const symbol s_5_33[2] = { 0xCF, 0xD7 };
+static const symbol s_5_34[1] = { 0xD8 };
+static const symbol s_5_35[1] = { 0xD9 };
+
+static const struct among a_5[36] =
+{
+{ 1, s_5_0, -1, 1, 0},
+{ 2, s_5_1, 0, 1, 0},
+{ 2, s_5_2, 0, 1, 0},
+{ 1, s_5_3, -1, 1, 0},
+{ 1, s_5_4, -1, 1, 0},
+{ 2, s_5_5, 4, 1, 0},
+{ 2, s_5_6, 4, 1, 0},
+{ 2, s_5_7, -1, 1, 0},
+{ 2, s_5_8, -1, 1, 0},
+{ 3, s_5_9, 8, 1, 0},
+{ 1, s_5_10, -1, 1, 0},
+{ 2, s_5_11, 10, 1, 0},
+{ 2, s_5_12, 10, 1, 0},
+{ 3, s_5_13, 10, 1, 0},
+{ 3, s_5_14, 10, 1, 0},
+{ 4, s_5_15, 14, 1, 0},
+{ 1, s_5_16, -1, 1, 0},
+{ 2, s_5_17, 16, 1, 0},
+{ 3, s_5_18, 17, 1, 0},
+{ 2, s_5_19, 16, 1, 0},
+{ 2, s_5_20, 16, 1, 0},
+{ 2, s_5_21, -1, 1, 0},
+{ 2, s_5_22, -1, 1, 0},
+{ 3, s_5_23, 22, 1, 0},
+{ 2, s_5_24, -1, 1, 0},
+{ 2, s_5_25, -1, 1, 0},
+{ 3, s_5_26, 25, 1, 0},
+{ 1, s_5_27, -1, 1, 0},
+{ 1, s_5_28, -1, 1, 0},
+{ 2, s_5_29, 28, 1, 0},
+{ 2, s_5_30, 28, 1, 0},
+{ 1, s_5_31, -1, 1, 0},
+{ 2, s_5_32, -1, 1, 0},
+{ 2, s_5_33, -1, 1, 0},
+{ 1, s_5_34, -1, 1, 0},
+{ 1, s_5_35, -1, 1, 0}
+};
+
+static const symbol s_6_0[3] = { 0xCF, 0xD3, 0xD4 };
+static const symbol s_6_1[4] = { 0xCF, 0xD3, 0xD4, 0xD8 };
+
+static const struct among a_6[2] =
+{
+{ 3, s_6_0, -1, 1, 0},
+{ 4, s_6_1, -1, 1, 0}
+};
+
+static const symbol s_7_0[4] = { 0xC5, 0xCA, 0xDB, 0xC5 };
+static const symbol s_7_1[1] = { 0xCE };
+static const symbol s_7_2[1] = { 0xD8 };
+static const symbol s_7_3[3] = { 0xC5, 0xCA, 0xDB };
+
+static const struct among a_7[4] =
+{
+{ 4, s_7_0, -1, 1, 0},
+{ 1, s_7_1, -1, 2, 0},
+{ 1, s_7_2, -1, 3, 0},
+{ 3, s_7_3, -1, 1, 0}
+};
+
+static const unsigned char g_v[] = { 35, 130, 34, 18 };
+
+static const symbol s_0[] = { 0xC5 };
+
+static int r_mark_regions(struct SN_env * z) {
+ z->I[1] = z->l;
+ z->I[0] = z->l;
+ { int c1 = z->c;
+ {
+ int ret = out_grouping(z, g_v, 192, 220, 1);
+ if (ret < 0) goto lab0;
+ z->c += ret;
+ }
+ z->I[1] = z->c;
+ {
+ int ret = in_grouping(z, g_v, 192, 220, 1);
+ if (ret < 0) goto lab0;
+ z->c += ret;
+ }
+ {
+ int ret = out_grouping(z, g_v, 192, 220, 1);
+ if (ret < 0) goto lab0;
+ z->c += ret;
+ }
+ {
+ int ret = in_grouping(z, g_v, 192, 220, 1);
+ if (ret < 0) goto lab0;
+ z->c += ret;
+ }
+ z->I[0] = z->c;
+ lab0:
+ z->c = c1;
+ }
+ return 1;
+}
+
+static int r_R2(struct SN_env * z) {
+ if (!(z->I[0] <= z->c)) return 0;
+ return 1;
+}
+
+static int r_perfective_gerund(struct SN_env * z) {
+ int among_var;
+ z->ket = z->c;
+ if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 6 || !((25166336 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
+ among_var = find_among_b(z, a_0, 9);
+ if (!(among_var)) return 0;
+ z->bra = z->c;
+ switch (among_var) {
+ case 1:
+ { int m1 = z->l - z->c; (void)m1;
+ if (z->c <= z->lb || z->p[z->c - 1] != 0xC1) goto lab1;
+ z->c--;
+ goto lab0;
+ lab1:
+ z->c = z->l - m1;
+ if (z->c <= z->lb || z->p[z->c - 1] != 0xD1) return 0;
+ z->c--;
+ }
+ lab0:
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 2:
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ break;
+ }
+ return 1;
+}
+
+static int r_adjective(struct SN_env * z) {
+ z->ket = z->c;
+ if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 6 || !((2271009 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
+ if (!(find_among_b(z, a_1, 26))) return 0;
+ z->bra = z->c;
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ return 1;
+}
+
+static int r_adjectival(struct SN_env * z) {
+ int among_var;
+ { int ret = r_adjective(z);
+ if (ret <= 0) return ret;
+ }
+ { int m1 = z->l - z->c; (void)m1;
+ z->ket = z->c;
+ if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 6 || !((671113216 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->c = z->l - m1; goto lab0; }
+ among_var = find_among_b(z, a_2, 8);
+ if (!(among_var)) { z->c = z->l - m1; goto lab0; }
+ z->bra = z->c;
+ switch (among_var) {
+ case 1:
+ { int m2 = z->l - z->c; (void)m2;
+ if (z->c <= z->lb || z->p[z->c - 1] != 0xC1) goto lab2;
+ z->c--;
+ goto lab1;
+ lab2:
+ z->c = z->l - m2;
+ if (z->c <= z->lb || z->p[z->c - 1] != 0xD1) { z->c = z->l - m1; goto lab0; }
+ z->c--;
+ }
+ lab1:
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 2:
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ break;
+ }
+ lab0:
+ ;
+ }
+ return 1;
+}
+
+static int r_reflexive(struct SN_env * z) {
+ z->ket = z->c;
+ if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 209 && z->p[z->c - 1] != 216)) return 0;
+ if (!(find_among_b(z, a_3, 2))) return 0;
+ z->bra = z->c;
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ return 1;
+}
+
+static int r_verb(struct SN_env * z) {
+ int among_var;
+ z->ket = z->c;
+ if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 6 || !((51443235 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
+ among_var = find_among_b(z, a_4, 46);
+ if (!(among_var)) return 0;
+ z->bra = z->c;
+ switch (among_var) {
+ case 1:
+ { int m1 = z->l - z->c; (void)m1;
+ if (z->c <= z->lb || z->p[z->c - 1] != 0xC1) goto lab1;
+ z->c--;
+ goto lab0;
+ lab1:
+ z->c = z->l - m1;
+ if (z->c <= z->lb || z->p[z->c - 1] != 0xD1) return 0;
+ z->c--;
+ }
+ lab0:
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 2:
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ break;
+ }
+ return 1;
+}
+
+static int r_noun(struct SN_env * z) {
+ z->ket = z->c;
+ if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 6 || !((60991267 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
+ if (!(find_among_b(z, a_5, 36))) return 0;
+ z->bra = z->c;
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ return 1;
+}
+
+static int r_derivational(struct SN_env * z) {
+ z->ket = z->c;
+ if (z->c - 2 <= z->lb || (z->p[z->c - 1] != 212 && z->p[z->c - 1] != 216)) return 0;
+ if (!(find_among_b(z, a_6, 2))) return 0;
+ z->bra = z->c;
+ { int ret = r_R2(z);
+ if (ret <= 0) return ret;
+ }
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ return 1;
+}
+
+static int r_tidy_up(struct SN_env * z) {
+ int among_var;
+ z->ket = z->c;
+ if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 6 || !((151011360 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
+ among_var = find_among_b(z, a_7, 4);
+ if (!(among_var)) return 0;
+ z->bra = z->c;
+ switch (among_var) {
+ case 1:
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ z->ket = z->c;
+ if (z->c <= z->lb || z->p[z->c - 1] != 0xCE) return 0;
+ z->c--;
+ z->bra = z->c;
+ if (z->c <= z->lb || z->p[z->c - 1] != 0xCE) return 0;
+ z->c--;
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 2:
+ if (z->c <= z->lb || z->p[z->c - 1] != 0xCE) return 0;
+ z->c--;
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 3:
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ break;
+ }
+ return 1;
+}
+
+extern int russian_KOI8_R_stem(struct SN_env * z) {
+ { int c1 = z->c;
+ while(1) {
+ int c2 = z->c;
+ while(1) {
+ int c3 = z->c;
+ z->bra = z->c;
+ if (z->c == z->l || z->p[z->c] != 0xA3) goto lab2;
+ z->c++;
+ z->ket = z->c;
+ z->c = c3;
+ break;
+ lab2:
+ z->c = c3;
+ if (z->c >= z->l) goto lab1;
+ z->c++;
+ }
+ { int ret = slice_from_s(z, 1, s_0);
+ if (ret < 0) return ret;
+ }
+ continue;
+ lab1:
+ z->c = c2;
+ break;
+ }
+ z->c = c1;
+ }
+
+ { int ret = r_mark_regions(z);
+ if (ret < 0) return ret;
+ }
+ z->lb = z->c; z->c = z->l;
+
+
+ { int mlimit4;
+ if (z->c < z->I[1]) return 0;
+ mlimit4 = z->lb; z->lb = z->I[1];
+ { int m5 = z->l - z->c; (void)m5;
+ { int m6 = z->l - z->c; (void)m6;
+ { int ret = r_perfective_gerund(z);
+ if (ret == 0) goto lab5;
+ if (ret < 0) return ret;
+ }
+ goto lab4;
+ lab5:
+ z->c = z->l - m6;
+ { int m7 = z->l - z->c; (void)m7;
+ { int ret = r_reflexive(z);
+ if (ret == 0) { z->c = z->l - m7; goto lab6; }
+ if (ret < 0) return ret;
+ }
+ lab6:
+ ;
+ }
+ { int m8 = z->l - z->c; (void)m8;
+ { int ret = r_adjectival(z);
+ if (ret == 0) goto lab8;
+ if (ret < 0) return ret;
+ }
+ goto lab7;
+ lab8:
+ z->c = z->l - m8;
+ { int ret = r_verb(z);
+ if (ret == 0) goto lab9;
+ if (ret < 0) return ret;
+ }
+ goto lab7;
+ lab9:
+ z->c = z->l - m8;
+ { int ret = r_noun(z);
+ if (ret == 0) goto lab3;
+ if (ret < 0) return ret;
+ }
+ }
+ lab7:
+ ;
+ }
+ lab4:
+ lab3:
+ z->c = z->l - m5;
+ }
+ { int m9 = z->l - z->c; (void)m9;
+ z->ket = z->c;
+ if (z->c <= z->lb || z->p[z->c - 1] != 0xC9) { z->c = z->l - m9; goto lab10; }
+ z->c--;
+ z->bra = z->c;
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ lab10:
+ ;
+ }
+ { int m10 = z->l - z->c; (void)m10;
+ { int ret = r_derivational(z);
+ if (ret < 0) return ret;
+ }
+ z->c = z->l - m10;
+ }
+ { int m11 = z->l - z->c; (void)m11;
+ { int ret = r_tidy_up(z);
+ if (ret < 0) return ret;
+ }
+ z->c = z->l - m11;
+ }
+ z->lb = mlimit4;
+ }
+ z->c = z->lb;
+ return 1;
+}
+
+extern struct SN_env * russian_KOI8_R_create_env(void) { return SN_create_env(0, 2); }
+
+extern void russian_KOI8_R_close_env(struct SN_env * z) { SN_close_env(z, 0); }
+
diff --git a/src/backend/snowball/libstemmer/stem_UTF_8_arabic.c b/src/backend/snowball/libstemmer/stem_UTF_8_arabic.c
new file mode 100644
index 0000000..51d443e
--- /dev/null
+++ b/src/backend/snowball/libstemmer/stem_UTF_8_arabic.c
@@ -0,0 +1,1664 @@
+/* Generated by Snowball 2.2.0 - https://snowballstem.org/ */
+
+#include "header.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+extern int arabic_UTF_8_stem(struct SN_env * z);
+#ifdef __cplusplus
+}
+#endif
+static int r_Checks1(struct SN_env * z);
+static int r_Normalize_pre(struct SN_env * z);
+static int r_Normalize_post(struct SN_env * z);
+static int r_Suffix_Verb_Step2c(struct SN_env * z);
+static int r_Suffix_Verb_Step2b(struct SN_env * z);
+static int r_Suffix_Verb_Step2a(struct SN_env * z);
+static int r_Suffix_Verb_Step1(struct SN_env * z);
+static int r_Suffix_Noun_Step3(struct SN_env * z);
+static int r_Suffix_Noun_Step2c2(struct SN_env * z);
+static int r_Suffix_Noun_Step2c1(struct SN_env * z);
+static int r_Suffix_Noun_Step2b(struct SN_env * z);
+static int r_Suffix_Noun_Step2a(struct SN_env * z);
+static int r_Suffix_Noun_Step1b(struct SN_env * z);
+static int r_Suffix_Noun_Step1a(struct SN_env * z);
+static int r_Suffix_All_alef_maqsura(struct SN_env * z);
+static int r_Prefix_Step4_Verb(struct SN_env * z);
+static int r_Prefix_Step3_Verb(struct SN_env * z);
+static int r_Prefix_Step3b_Noun(struct SN_env * z);
+static int r_Prefix_Step3a_Noun(struct SN_env * z);
+static int r_Prefix_Step2(struct SN_env * z);
+static int r_Prefix_Step1(struct SN_env * z);
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+extern struct SN_env * arabic_UTF_8_create_env(void);
+extern void arabic_UTF_8_close_env(struct SN_env * z);
+
+
+#ifdef __cplusplus
+}
+#endif
+static const symbol s_0_0[2] = { 0xD9, 0x80 };
+static const symbol s_0_1[2] = { 0xD9, 0x8B };
+static const symbol s_0_2[2] = { 0xD9, 0x8C };
+static const symbol s_0_3[2] = { 0xD9, 0x8D };
+static const symbol s_0_4[2] = { 0xD9, 0x8E };
+static const symbol s_0_5[2] = { 0xD9, 0x8F };
+static const symbol s_0_6[2] = { 0xD9, 0x90 };
+static const symbol s_0_7[2] = { 0xD9, 0x91 };
+static const symbol s_0_8[2] = { 0xD9, 0x92 };
+static const symbol s_0_9[2] = { 0xD9, 0xA0 };
+static const symbol s_0_10[2] = { 0xD9, 0xA1 };
+static const symbol s_0_11[2] = { 0xD9, 0xA2 };
+static const symbol s_0_12[2] = { 0xD9, 0xA3 };
+static const symbol s_0_13[2] = { 0xD9, 0xA4 };
+static const symbol s_0_14[2] = { 0xD9, 0xA5 };
+static const symbol s_0_15[2] = { 0xD9, 0xA6 };
+static const symbol s_0_16[2] = { 0xD9, 0xA7 };
+static const symbol s_0_17[2] = { 0xD9, 0xA8 };
+static const symbol s_0_18[2] = { 0xD9, 0xA9 };
+static const symbol s_0_19[3] = { 0xEF, 0xBA, 0x80 };
+static const symbol s_0_20[3] = { 0xEF, 0xBA, 0x81 };
+static const symbol s_0_21[3] = { 0xEF, 0xBA, 0x82 };
+static const symbol s_0_22[3] = { 0xEF, 0xBA, 0x83 };
+static const symbol s_0_23[3] = { 0xEF, 0xBA, 0x84 };
+static const symbol s_0_24[3] = { 0xEF, 0xBA, 0x85 };
+static const symbol s_0_25[3] = { 0xEF, 0xBA, 0x86 };
+static const symbol s_0_26[3] = { 0xEF, 0xBA, 0x87 };
+static const symbol s_0_27[3] = { 0xEF, 0xBA, 0x88 };
+static const symbol s_0_28[3] = { 0xEF, 0xBA, 0x89 };
+static const symbol s_0_29[3] = { 0xEF, 0xBA, 0x8A };
+static const symbol s_0_30[3] = { 0xEF, 0xBA, 0x8B };
+static const symbol s_0_31[3] = { 0xEF, 0xBA, 0x8C };
+static const symbol s_0_32[3] = { 0xEF, 0xBA, 0x8D };
+static const symbol s_0_33[3] = { 0xEF, 0xBA, 0x8E };
+static const symbol s_0_34[3] = { 0xEF, 0xBA, 0x8F };
+static const symbol s_0_35[3] = { 0xEF, 0xBA, 0x90 };
+static const symbol s_0_36[3] = { 0xEF, 0xBA, 0x91 };
+static const symbol s_0_37[3] = { 0xEF, 0xBA, 0x92 };
+static const symbol s_0_38[3] = { 0xEF, 0xBA, 0x93 };
+static const symbol s_0_39[3] = { 0xEF, 0xBA, 0x94 };
+static const symbol s_0_40[3] = { 0xEF, 0xBA, 0x95 };
+static const symbol s_0_41[3] = { 0xEF, 0xBA, 0x96 };
+static const symbol s_0_42[3] = { 0xEF, 0xBA, 0x97 };
+static const symbol s_0_43[3] = { 0xEF, 0xBA, 0x98 };
+static const symbol s_0_44[3] = { 0xEF, 0xBA, 0x99 };
+static const symbol s_0_45[3] = { 0xEF, 0xBA, 0x9A };
+static const symbol s_0_46[3] = { 0xEF, 0xBA, 0x9B };
+static const symbol s_0_47[3] = { 0xEF, 0xBA, 0x9C };
+static const symbol s_0_48[3] = { 0xEF, 0xBA, 0x9D };
+static const symbol s_0_49[3] = { 0xEF, 0xBA, 0x9E };
+static const symbol s_0_50[3] = { 0xEF, 0xBA, 0x9F };
+static const symbol s_0_51[3] = { 0xEF, 0xBA, 0xA0 };
+static const symbol s_0_52[3] = { 0xEF, 0xBA, 0xA1 };
+static const symbol s_0_53[3] = { 0xEF, 0xBA, 0xA2 };
+static const symbol s_0_54[3] = { 0xEF, 0xBA, 0xA3 };
+static const symbol s_0_55[3] = { 0xEF, 0xBA, 0xA4 };
+static const symbol s_0_56[3] = { 0xEF, 0xBA, 0xA5 };
+static const symbol s_0_57[3] = { 0xEF, 0xBA, 0xA6 };
+static const symbol s_0_58[3] = { 0xEF, 0xBA, 0xA7 };
+static const symbol s_0_59[3] = { 0xEF, 0xBA, 0xA8 };
+static const symbol s_0_60[3] = { 0xEF, 0xBA, 0xA9 };
+static const symbol s_0_61[3] = { 0xEF, 0xBA, 0xAA };
+static const symbol s_0_62[3] = { 0xEF, 0xBA, 0xAB };
+static const symbol s_0_63[3] = { 0xEF, 0xBA, 0xAC };
+static const symbol s_0_64[3] = { 0xEF, 0xBA, 0xAD };
+static const symbol s_0_65[3] = { 0xEF, 0xBA, 0xAE };
+static const symbol s_0_66[3] = { 0xEF, 0xBA, 0xAF };
+static const symbol s_0_67[3] = { 0xEF, 0xBA, 0xB0 };
+static const symbol s_0_68[3] = { 0xEF, 0xBA, 0xB1 };
+static const symbol s_0_69[3] = { 0xEF, 0xBA, 0xB2 };
+static const symbol s_0_70[3] = { 0xEF, 0xBA, 0xB3 };
+static const symbol s_0_71[3] = { 0xEF, 0xBA, 0xB4 };
+static const symbol s_0_72[3] = { 0xEF, 0xBA, 0xB5 };
+static const symbol s_0_73[3] = { 0xEF, 0xBA, 0xB6 };
+static const symbol s_0_74[3] = { 0xEF, 0xBA, 0xB7 };
+static const symbol s_0_75[3] = { 0xEF, 0xBA, 0xB8 };
+static const symbol s_0_76[3] = { 0xEF, 0xBA, 0xB9 };
+static const symbol s_0_77[3] = { 0xEF, 0xBA, 0xBA };
+static const symbol s_0_78[3] = { 0xEF, 0xBA, 0xBB };
+static const symbol s_0_79[3] = { 0xEF, 0xBA, 0xBC };
+static const symbol s_0_80[3] = { 0xEF, 0xBA, 0xBD };
+static const symbol s_0_81[3] = { 0xEF, 0xBA, 0xBE };
+static const symbol s_0_82[3] = { 0xEF, 0xBA, 0xBF };
+static const symbol s_0_83[3] = { 0xEF, 0xBB, 0x80 };
+static const symbol s_0_84[3] = { 0xEF, 0xBB, 0x81 };
+static const symbol s_0_85[3] = { 0xEF, 0xBB, 0x82 };
+static const symbol s_0_86[3] = { 0xEF, 0xBB, 0x83 };
+static const symbol s_0_87[3] = { 0xEF, 0xBB, 0x84 };
+static const symbol s_0_88[3] = { 0xEF, 0xBB, 0x85 };
+static const symbol s_0_89[3] = { 0xEF, 0xBB, 0x86 };
+static const symbol s_0_90[3] = { 0xEF, 0xBB, 0x87 };
+static const symbol s_0_91[3] = { 0xEF, 0xBB, 0x88 };
+static const symbol s_0_92[3] = { 0xEF, 0xBB, 0x89 };
+static const symbol s_0_93[3] = { 0xEF, 0xBB, 0x8A };
+static const symbol s_0_94[3] = { 0xEF, 0xBB, 0x8B };
+static const symbol s_0_95[3] = { 0xEF, 0xBB, 0x8C };
+static const symbol s_0_96[3] = { 0xEF, 0xBB, 0x8D };
+static const symbol s_0_97[3] = { 0xEF, 0xBB, 0x8E };
+static const symbol s_0_98[3] = { 0xEF, 0xBB, 0x8F };
+static const symbol s_0_99[3] = { 0xEF, 0xBB, 0x90 };
+static const symbol s_0_100[3] = { 0xEF, 0xBB, 0x91 };
+static const symbol s_0_101[3] = { 0xEF, 0xBB, 0x92 };
+static const symbol s_0_102[3] = { 0xEF, 0xBB, 0x93 };
+static const symbol s_0_103[3] = { 0xEF, 0xBB, 0x94 };
+static const symbol s_0_104[3] = { 0xEF, 0xBB, 0x95 };
+static const symbol s_0_105[3] = { 0xEF, 0xBB, 0x96 };
+static const symbol s_0_106[3] = { 0xEF, 0xBB, 0x97 };
+static const symbol s_0_107[3] = { 0xEF, 0xBB, 0x98 };
+static const symbol s_0_108[3] = { 0xEF, 0xBB, 0x99 };
+static const symbol s_0_109[3] = { 0xEF, 0xBB, 0x9A };
+static const symbol s_0_110[3] = { 0xEF, 0xBB, 0x9B };
+static const symbol s_0_111[3] = { 0xEF, 0xBB, 0x9C };
+static const symbol s_0_112[3] = { 0xEF, 0xBB, 0x9D };
+static const symbol s_0_113[3] = { 0xEF, 0xBB, 0x9E };
+static const symbol s_0_114[3] = { 0xEF, 0xBB, 0x9F };
+static const symbol s_0_115[3] = { 0xEF, 0xBB, 0xA0 };
+static const symbol s_0_116[3] = { 0xEF, 0xBB, 0xA1 };
+static const symbol s_0_117[3] = { 0xEF, 0xBB, 0xA2 };
+static const symbol s_0_118[3] = { 0xEF, 0xBB, 0xA3 };
+static const symbol s_0_119[3] = { 0xEF, 0xBB, 0xA4 };
+static const symbol s_0_120[3] = { 0xEF, 0xBB, 0xA5 };
+static const symbol s_0_121[3] = { 0xEF, 0xBB, 0xA6 };
+static const symbol s_0_122[3] = { 0xEF, 0xBB, 0xA7 };
+static const symbol s_0_123[3] = { 0xEF, 0xBB, 0xA8 };
+static const symbol s_0_124[3] = { 0xEF, 0xBB, 0xA9 };
+static const symbol s_0_125[3] = { 0xEF, 0xBB, 0xAA };
+static const symbol s_0_126[3] = { 0xEF, 0xBB, 0xAB };
+static const symbol s_0_127[3] = { 0xEF, 0xBB, 0xAC };
+static const symbol s_0_128[3] = { 0xEF, 0xBB, 0xAD };
+static const symbol s_0_129[3] = { 0xEF, 0xBB, 0xAE };
+static const symbol s_0_130[3] = { 0xEF, 0xBB, 0xAF };
+static const symbol s_0_131[3] = { 0xEF, 0xBB, 0xB0 };
+static const symbol s_0_132[3] = { 0xEF, 0xBB, 0xB1 };
+static const symbol s_0_133[3] = { 0xEF, 0xBB, 0xB2 };
+static const symbol s_0_134[3] = { 0xEF, 0xBB, 0xB3 };
+static const symbol s_0_135[3] = { 0xEF, 0xBB, 0xB4 };
+static const symbol s_0_136[3] = { 0xEF, 0xBB, 0xB5 };
+static const symbol s_0_137[3] = { 0xEF, 0xBB, 0xB6 };
+static const symbol s_0_138[3] = { 0xEF, 0xBB, 0xB7 };
+static const symbol s_0_139[3] = { 0xEF, 0xBB, 0xB8 };
+static const symbol s_0_140[3] = { 0xEF, 0xBB, 0xB9 };
+static const symbol s_0_141[3] = { 0xEF, 0xBB, 0xBA };
+static const symbol s_0_142[3] = { 0xEF, 0xBB, 0xBB };
+static const symbol s_0_143[3] = { 0xEF, 0xBB, 0xBC };
+
+static const struct among a_0[144] =
+{
+{ 2, s_0_0, -1, 1, 0},
+{ 2, s_0_1, -1, 1, 0},
+{ 2, s_0_2, -1, 1, 0},
+{ 2, s_0_3, -1, 1, 0},
+{ 2, s_0_4, -1, 1, 0},
+{ 2, s_0_5, -1, 1, 0},
+{ 2, s_0_6, -1, 1, 0},
+{ 2, s_0_7, -1, 1, 0},
+{ 2, s_0_8, -1, 1, 0},
+{ 2, s_0_9, -1, 2, 0},
+{ 2, s_0_10, -1, 3, 0},
+{ 2, s_0_11, -1, 4, 0},
+{ 2, s_0_12, -1, 5, 0},
+{ 2, s_0_13, -1, 6, 0},
+{ 2, s_0_14, -1, 7, 0},
+{ 2, s_0_15, -1, 8, 0},
+{ 2, s_0_16, -1, 9, 0},
+{ 2, s_0_17, -1, 10, 0},
+{ 2, s_0_18, -1, 11, 0},
+{ 3, s_0_19, -1, 12, 0},
+{ 3, s_0_20, -1, 16, 0},
+{ 3, s_0_21, -1, 16, 0},
+{ 3, s_0_22, -1, 13, 0},
+{ 3, s_0_23, -1, 13, 0},
+{ 3, s_0_24, -1, 17, 0},
+{ 3, s_0_25, -1, 17, 0},
+{ 3, s_0_26, -1, 14, 0},
+{ 3, s_0_27, -1, 14, 0},
+{ 3, s_0_28, -1, 15, 0},
+{ 3, s_0_29, -1, 15, 0},
+{ 3, s_0_30, -1, 15, 0},
+{ 3, s_0_31, -1, 15, 0},
+{ 3, s_0_32, -1, 18, 0},
+{ 3, s_0_33, -1, 18, 0},
+{ 3, s_0_34, -1, 19, 0},
+{ 3, s_0_35, -1, 19, 0},
+{ 3, s_0_36, -1, 19, 0},
+{ 3, s_0_37, -1, 19, 0},
+{ 3, s_0_38, -1, 20, 0},
+{ 3, s_0_39, -1, 20, 0},
+{ 3, s_0_40, -1, 21, 0},
+{ 3, s_0_41, -1, 21, 0},
+{ 3, s_0_42, -1, 21, 0},
+{ 3, s_0_43, -1, 21, 0},
+{ 3, s_0_44, -1, 22, 0},
+{ 3, s_0_45, -1, 22, 0},
+{ 3, s_0_46, -1, 22, 0},
+{ 3, s_0_47, -1, 22, 0},
+{ 3, s_0_48, -1, 23, 0},
+{ 3, s_0_49, -1, 23, 0},
+{ 3, s_0_50, -1, 23, 0},
+{ 3, s_0_51, -1, 23, 0},
+{ 3, s_0_52, -1, 24, 0},
+{ 3, s_0_53, -1, 24, 0},
+{ 3, s_0_54, -1, 24, 0},
+{ 3, s_0_55, -1, 24, 0},
+{ 3, s_0_56, -1, 25, 0},
+{ 3, s_0_57, -1, 25, 0},
+{ 3, s_0_58, -1, 25, 0},
+{ 3, s_0_59, -1, 25, 0},
+{ 3, s_0_60, -1, 26, 0},
+{ 3, s_0_61, -1, 26, 0},
+{ 3, s_0_62, -1, 27, 0},
+{ 3, s_0_63, -1, 27, 0},
+{ 3, s_0_64, -1, 28, 0},
+{ 3, s_0_65, -1, 28, 0},
+{ 3, s_0_66, -1, 29, 0},
+{ 3, s_0_67, -1, 29, 0},
+{ 3, s_0_68, -1, 30, 0},
+{ 3, s_0_69, -1, 30, 0},
+{ 3, s_0_70, -1, 30, 0},
+{ 3, s_0_71, -1, 30, 0},
+{ 3, s_0_72, -1, 31, 0},
+{ 3, s_0_73, -1, 31, 0},
+{ 3, s_0_74, -1, 31, 0},
+{ 3, s_0_75, -1, 31, 0},
+{ 3, s_0_76, -1, 32, 0},
+{ 3, s_0_77, -1, 32, 0},
+{ 3, s_0_78, -1, 32, 0},
+{ 3, s_0_79, -1, 32, 0},
+{ 3, s_0_80, -1, 33, 0},
+{ 3, s_0_81, -1, 33, 0},
+{ 3, s_0_82, -1, 33, 0},
+{ 3, s_0_83, -1, 33, 0},
+{ 3, s_0_84, -1, 34, 0},
+{ 3, s_0_85, -1, 34, 0},
+{ 3, s_0_86, -1, 34, 0},
+{ 3, s_0_87, -1, 34, 0},
+{ 3, s_0_88, -1, 35, 0},
+{ 3, s_0_89, -1, 35, 0},
+{ 3, s_0_90, -1, 35, 0},
+{ 3, s_0_91, -1, 35, 0},
+{ 3, s_0_92, -1, 36, 0},
+{ 3, s_0_93, -1, 36, 0},
+{ 3, s_0_94, -1, 36, 0},
+{ 3, s_0_95, -1, 36, 0},
+{ 3, s_0_96, -1, 37, 0},
+{ 3, s_0_97, -1, 37, 0},
+{ 3, s_0_98, -1, 37, 0},
+{ 3, s_0_99, -1, 37, 0},
+{ 3, s_0_100, -1, 38, 0},
+{ 3, s_0_101, -1, 38, 0},
+{ 3, s_0_102, -1, 38, 0},
+{ 3, s_0_103, -1, 38, 0},
+{ 3, s_0_104, -1, 39, 0},
+{ 3, s_0_105, -1, 39, 0},
+{ 3, s_0_106, -1, 39, 0},
+{ 3, s_0_107, -1, 39, 0},
+{ 3, s_0_108, -1, 40, 0},
+{ 3, s_0_109, -1, 40, 0},
+{ 3, s_0_110, -1, 40, 0},
+{ 3, s_0_111, -1, 40, 0},
+{ 3, s_0_112, -1, 41, 0},
+{ 3, s_0_113, -1, 41, 0},
+{ 3, s_0_114, -1, 41, 0},
+{ 3, s_0_115, -1, 41, 0},
+{ 3, s_0_116, -1, 42, 0},
+{ 3, s_0_117, -1, 42, 0},
+{ 3, s_0_118, -1, 42, 0},
+{ 3, s_0_119, -1, 42, 0},
+{ 3, s_0_120, -1, 43, 0},
+{ 3, s_0_121, -1, 43, 0},
+{ 3, s_0_122, -1, 43, 0},
+{ 3, s_0_123, -1, 43, 0},
+{ 3, s_0_124, -1, 44, 0},
+{ 3, s_0_125, -1, 44, 0},
+{ 3, s_0_126, -1, 44, 0},
+{ 3, s_0_127, -1, 44, 0},
+{ 3, s_0_128, -1, 45, 0},
+{ 3, s_0_129, -1, 45, 0},
+{ 3, s_0_130, -1, 46, 0},
+{ 3, s_0_131, -1, 46, 0},
+{ 3, s_0_132, -1, 47, 0},
+{ 3, s_0_133, -1, 47, 0},
+{ 3, s_0_134, -1, 47, 0},
+{ 3, s_0_135, -1, 47, 0},
+{ 3, s_0_136, -1, 51, 0},
+{ 3, s_0_137, -1, 51, 0},
+{ 3, s_0_138, -1, 49, 0},
+{ 3, s_0_139, -1, 49, 0},
+{ 3, s_0_140, -1, 50, 0},
+{ 3, s_0_141, -1, 50, 0},
+{ 3, s_0_142, -1, 48, 0},
+{ 3, s_0_143, -1, 48, 0}
+};
+
+static const symbol s_1_0[2] = { 0xD8, 0xA2 };
+static const symbol s_1_1[2] = { 0xD8, 0xA3 };
+static const symbol s_1_2[2] = { 0xD8, 0xA4 };
+static const symbol s_1_3[2] = { 0xD8, 0xA5 };
+static const symbol s_1_4[2] = { 0xD8, 0xA6 };
+
+static const struct among a_1[5] =
+{
+{ 2, s_1_0, -1, 1, 0},
+{ 2, s_1_1, -1, 1, 0},
+{ 2, s_1_2, -1, 1, 0},
+{ 2, s_1_3, -1, 1, 0},
+{ 2, s_1_4, -1, 1, 0}
+};
+
+static const symbol s_2_0[2] = { 0xD8, 0xA2 };
+static const symbol s_2_1[2] = { 0xD8, 0xA3 };
+static const symbol s_2_2[2] = { 0xD8, 0xA4 };
+static const symbol s_2_3[2] = { 0xD8, 0xA5 };
+static const symbol s_2_4[2] = { 0xD8, 0xA6 };
+
+static const struct among a_2[5] =
+{
+{ 2, s_2_0, -1, 1, 0},
+{ 2, s_2_1, -1, 1, 0},
+{ 2, s_2_2, -1, 2, 0},
+{ 2, s_2_3, -1, 1, 0},
+{ 2, s_2_4, -1, 3, 0}
+};
+
+static const symbol s_3_0[4] = { 0xD8, 0xA7, 0xD9, 0x84 };
+static const symbol s_3_1[6] = { 0xD8, 0xA8, 0xD8, 0xA7, 0xD9, 0x84 };
+static const symbol s_3_2[6] = { 0xD9, 0x83, 0xD8, 0xA7, 0xD9, 0x84 };
+static const symbol s_3_3[4] = { 0xD9, 0x84, 0xD9, 0x84 };
+
+static const struct among a_3[4] =
+{
+{ 4, s_3_0, -1, 2, 0},
+{ 6, s_3_1, -1, 1, 0},
+{ 6, s_3_2, -1, 1, 0},
+{ 4, s_3_3, -1, 2, 0}
+};
+
+static const symbol s_4_0[4] = { 0xD8, 0xA3, 0xD8, 0xA2 };
+static const symbol s_4_1[4] = { 0xD8, 0xA3, 0xD8, 0xA3 };
+static const symbol s_4_2[4] = { 0xD8, 0xA3, 0xD8, 0xA4 };
+static const symbol s_4_3[4] = { 0xD8, 0xA3, 0xD8, 0xA5 };
+static const symbol s_4_4[4] = { 0xD8, 0xA3, 0xD8, 0xA7 };
+
+static const struct among a_4[5] =
+{
+{ 4, s_4_0, -1, 2, 0},
+{ 4, s_4_1, -1, 1, 0},
+{ 4, s_4_2, -1, 1, 0},
+{ 4, s_4_3, -1, 4, 0},
+{ 4, s_4_4, -1, 3, 0}
+};
+
+static const symbol s_5_0[2] = { 0xD9, 0x81 };
+static const symbol s_5_1[2] = { 0xD9, 0x88 };
+
+static const struct among a_5[2] =
+{
+{ 2, s_5_0, -1, 1, 0},
+{ 2, s_5_1, -1, 1, 0}
+};
+
+static const symbol s_6_0[4] = { 0xD8, 0xA7, 0xD9, 0x84 };
+static const symbol s_6_1[6] = { 0xD8, 0xA8, 0xD8, 0xA7, 0xD9, 0x84 };
+static const symbol s_6_2[6] = { 0xD9, 0x83, 0xD8, 0xA7, 0xD9, 0x84 };
+static const symbol s_6_3[4] = { 0xD9, 0x84, 0xD9, 0x84 };
+
+static const struct among a_6[4] =
+{
+{ 4, s_6_0, -1, 2, 0},
+{ 6, s_6_1, -1, 1, 0},
+{ 6, s_6_2, -1, 1, 0},
+{ 4, s_6_3, -1, 2, 0}
+};
+
+static const symbol s_7_0[2] = { 0xD8, 0xA8 };
+static const symbol s_7_1[4] = { 0xD8, 0xA8, 0xD8, 0xA7 };
+static const symbol s_7_2[4] = { 0xD8, 0xA8, 0xD8, 0xA8 };
+static const symbol s_7_3[4] = { 0xD9, 0x83, 0xD9, 0x83 };
+
+static const struct among a_7[4] =
+{
+{ 2, s_7_0, -1, 1, 0},
+{ 4, s_7_1, 0, -1, 0},
+{ 4, s_7_2, 0, 2, 0},
+{ 4, s_7_3, -1, 3, 0}
+};
+
+static const symbol s_8_0[4] = { 0xD8, 0xB3, 0xD8, 0xA3 };
+static const symbol s_8_1[4] = { 0xD8, 0xB3, 0xD8, 0xAA };
+static const symbol s_8_2[4] = { 0xD8, 0xB3, 0xD9, 0x86 };
+static const symbol s_8_3[4] = { 0xD8, 0xB3, 0xD9, 0x8A };
+
+static const struct among a_8[4] =
+{
+{ 4, s_8_0, -1, 4, 0},
+{ 4, s_8_1, -1, 2, 0},
+{ 4, s_8_2, -1, 3, 0},
+{ 4, s_8_3, -1, 1, 0}
+};
+
+static const symbol s_9_0[6] = { 0xD8, 0xAA, 0xD8, 0xB3, 0xD8, 0xAA };
+static const symbol s_9_1[6] = { 0xD9, 0x86, 0xD8, 0xB3, 0xD8, 0xAA };
+static const symbol s_9_2[6] = { 0xD9, 0x8A, 0xD8, 0xB3, 0xD8, 0xAA };
+
+static const struct among a_9[3] =
+{
+{ 6, s_9_0, -1, 1, 0},
+{ 6, s_9_1, -1, 1, 0},
+{ 6, s_9_2, -1, 1, 0}
+};
+
+static const symbol s_10_0[2] = { 0xD9, 0x83 };
+static const symbol s_10_1[4] = { 0xD9, 0x83, 0xD9, 0x85 };
+static const symbol s_10_2[4] = { 0xD9, 0x87, 0xD9, 0x85 };
+static const symbol s_10_3[4] = { 0xD9, 0x87, 0xD9, 0x86 };
+static const symbol s_10_4[2] = { 0xD9, 0x87 };
+static const symbol s_10_5[2] = { 0xD9, 0x8A };
+static const symbol s_10_6[6] = { 0xD9, 0x83, 0xD9, 0x85, 0xD8, 0xA7 };
+static const symbol s_10_7[6] = { 0xD9, 0x87, 0xD9, 0x85, 0xD8, 0xA7 };
+static const symbol s_10_8[4] = { 0xD9, 0x86, 0xD8, 0xA7 };
+static const symbol s_10_9[4] = { 0xD9, 0x87, 0xD8, 0xA7 };
+
+static const struct among a_10[10] =
+{
+{ 2, s_10_0, -1, 1, 0},
+{ 4, s_10_1, -1, 2, 0},
+{ 4, s_10_2, -1, 2, 0},
+{ 4, s_10_3, -1, 2, 0},
+{ 2, s_10_4, -1, 1, 0},
+{ 2, s_10_5, -1, 1, 0},
+{ 6, s_10_6, -1, 3, 0},
+{ 6, s_10_7, -1, 3, 0},
+{ 4, s_10_8, -1, 2, 0},
+{ 4, s_10_9, -1, 2, 0}
+};
+
+static const symbol s_11_0[2] = { 0xD9, 0x86 };
+
+static const struct among a_11[1] =
+{
+{ 2, s_11_0, -1, 1, 0}
+};
+
+static const symbol s_12_0[2] = { 0xD9, 0x88 };
+static const symbol s_12_1[2] = { 0xD9, 0x8A };
+static const symbol s_12_2[2] = { 0xD8, 0xA7 };
+
+static const struct among a_12[3] =
+{
+{ 2, s_12_0, -1, 1, 0},
+{ 2, s_12_1, -1, 1, 0},
+{ 2, s_12_2, -1, 1, 0}
+};
+
+static const symbol s_13_0[4] = { 0xD8, 0xA7, 0xD8, 0xAA };
+
+static const struct among a_13[1] =
+{
+{ 4, s_13_0, -1, 1, 0}
+};
+
+static const symbol s_14_0[2] = { 0xD8, 0xAA };
+
+static const struct among a_14[1] =
+{
+{ 2, s_14_0, -1, 1, 0}
+};
+
+static const symbol s_15_0[2] = { 0xD8, 0xA9 };
+
+static const struct among a_15[1] =
+{
+{ 2, s_15_0, -1, 1, 0}
+};
+
+static const symbol s_16_0[2] = { 0xD9, 0x8A };
+
+static const struct among a_16[1] =
+{
+{ 2, s_16_0, -1, 1, 0}
+};
+
+static const symbol s_17_0[2] = { 0xD9, 0x83 };
+static const symbol s_17_1[4] = { 0xD9, 0x83, 0xD9, 0x85 };
+static const symbol s_17_2[4] = { 0xD9, 0x87, 0xD9, 0x85 };
+static const symbol s_17_3[4] = { 0xD9, 0x83, 0xD9, 0x86 };
+static const symbol s_17_4[4] = { 0xD9, 0x87, 0xD9, 0x86 };
+static const symbol s_17_5[2] = { 0xD9, 0x87 };
+static const symbol s_17_6[6] = { 0xD9, 0x83, 0xD9, 0x85, 0xD9, 0x88 };
+static const symbol s_17_7[4] = { 0xD9, 0x86, 0xD9, 0x8A };
+static const symbol s_17_8[6] = { 0xD9, 0x83, 0xD9, 0x85, 0xD8, 0xA7 };
+static const symbol s_17_9[6] = { 0xD9, 0x87, 0xD9, 0x85, 0xD8, 0xA7 };
+static const symbol s_17_10[4] = { 0xD9, 0x86, 0xD8, 0xA7 };
+static const symbol s_17_11[4] = { 0xD9, 0x87, 0xD8, 0xA7 };
+
+static const struct among a_17[12] =
+{
+{ 2, s_17_0, -1, 1, 0},
+{ 4, s_17_1, -1, 2, 0},
+{ 4, s_17_2, -1, 2, 0},
+{ 4, s_17_3, -1, 2, 0},
+{ 4, s_17_4, -1, 2, 0},
+{ 2, s_17_5, -1, 1, 0},
+{ 6, s_17_6, -1, 3, 0},
+{ 4, s_17_7, -1, 2, 0},
+{ 6, s_17_8, -1, 3, 0},
+{ 6, s_17_9, -1, 3, 0},
+{ 4, s_17_10, -1, 2, 0},
+{ 4, s_17_11, -1, 2, 0}
+};
+
+static const symbol s_18_0[2] = { 0xD9, 0x86 };
+static const symbol s_18_1[4] = { 0xD9, 0x88, 0xD9, 0x86 };
+static const symbol s_18_2[4] = { 0xD9, 0x8A, 0xD9, 0x86 };
+static const symbol s_18_3[4] = { 0xD8, 0xA7, 0xD9, 0x86 };
+static const symbol s_18_4[4] = { 0xD8, 0xAA, 0xD9, 0x86 };
+static const symbol s_18_5[2] = { 0xD9, 0x8A };
+static const symbol s_18_6[2] = { 0xD8, 0xA7 };
+static const symbol s_18_7[6] = { 0xD8, 0xAA, 0xD9, 0x85, 0xD8, 0xA7 };
+static const symbol s_18_8[4] = { 0xD9, 0x86, 0xD8, 0xA7 };
+static const symbol s_18_9[4] = { 0xD8, 0xAA, 0xD8, 0xA7 };
+static const symbol s_18_10[2] = { 0xD8, 0xAA };
+
+static const struct among a_18[11] =
+{
+{ 2, s_18_0, -1, 1, 0},
+{ 4, s_18_1, 0, 3, 0},
+{ 4, s_18_2, 0, 3, 0},
+{ 4, s_18_3, 0, 3, 0},
+{ 4, s_18_4, 0, 2, 0},
+{ 2, s_18_5, -1, 1, 0},
+{ 2, s_18_6, -1, 1, 0},
+{ 6, s_18_7, 6, 4, 0},
+{ 4, s_18_8, 6, 2, 0},
+{ 4, s_18_9, 6, 2, 0},
+{ 2, s_18_10, -1, 1, 0}
+};
+
+static const symbol s_19_0[4] = { 0xD8, 0xAA, 0xD9, 0x85 };
+static const symbol s_19_1[4] = { 0xD9, 0x88, 0xD8, 0xA7 };
+
+static const struct among a_19[2] =
+{
+{ 4, s_19_0, -1, 1, 0},
+{ 4, s_19_1, -1, 1, 0}
+};
+
+static const symbol s_20_0[2] = { 0xD9, 0x88 };
+static const symbol s_20_1[6] = { 0xD8, 0xAA, 0xD9, 0x85, 0xD9, 0x88 };
+
+static const struct among a_20[2] =
+{
+{ 2, s_20_0, -1, 1, 0},
+{ 6, s_20_1, 0, 2, 0}
+};
+
+static const symbol s_21_0[2] = { 0xD9, 0x89 };
+
+static const struct among a_21[1] =
+{
+{ 2, s_21_0, -1, 1, 0}
+};
+
+static const symbol s_0[] = { '0' };
+static const symbol s_1[] = { '1' };
+static const symbol s_2[] = { '2' };
+static const symbol s_3[] = { '3' };
+static const symbol s_4[] = { '4' };
+static const symbol s_5[] = { '5' };
+static const symbol s_6[] = { '6' };
+static const symbol s_7[] = { '7' };
+static const symbol s_8[] = { '8' };
+static const symbol s_9[] = { '9' };
+static const symbol s_10[] = { 0xD8, 0xA1 };
+static const symbol s_11[] = { 0xD8, 0xA3 };
+static const symbol s_12[] = { 0xD8, 0xA5 };
+static const symbol s_13[] = { 0xD8, 0xA6 };
+static const symbol s_14[] = { 0xD8, 0xA2 };
+static const symbol s_15[] = { 0xD8, 0xA4 };
+static const symbol s_16[] = { 0xD8, 0xA7 };
+static const symbol s_17[] = { 0xD8, 0xA8 };
+static const symbol s_18[] = { 0xD8, 0xA9 };
+static const symbol s_19[] = { 0xD8, 0xAA };
+static const symbol s_20[] = { 0xD8, 0xAB };
+static const symbol s_21[] = { 0xD8, 0xAC };
+static const symbol s_22[] = { 0xD8, 0xAD };
+static const symbol s_23[] = { 0xD8, 0xAE };
+static const symbol s_24[] = { 0xD8, 0xAF };
+static const symbol s_25[] = { 0xD8, 0xB0 };
+static const symbol s_26[] = { 0xD8, 0xB1 };
+static const symbol s_27[] = { 0xD8, 0xB2 };
+static const symbol s_28[] = { 0xD8, 0xB3 };
+static const symbol s_29[] = { 0xD8, 0xB4 };
+static const symbol s_30[] = { 0xD8, 0xB5 };
+static const symbol s_31[] = { 0xD8, 0xB6 };
+static const symbol s_32[] = { 0xD8, 0xB7 };
+static const symbol s_33[] = { 0xD8, 0xB8 };
+static const symbol s_34[] = { 0xD8, 0xB9 };
+static const symbol s_35[] = { 0xD8, 0xBA };
+static const symbol s_36[] = { 0xD9, 0x81 };
+static const symbol s_37[] = { 0xD9, 0x82 };
+static const symbol s_38[] = { 0xD9, 0x83 };
+static const symbol s_39[] = { 0xD9, 0x84 };
+static const symbol s_40[] = { 0xD9, 0x85 };
+static const symbol s_41[] = { 0xD9, 0x86 };
+static const symbol s_42[] = { 0xD9, 0x87 };
+static const symbol s_43[] = { 0xD9, 0x88 };
+static const symbol s_44[] = { 0xD9, 0x89 };
+static const symbol s_45[] = { 0xD9, 0x8A };
+static const symbol s_46[] = { 0xD9, 0x84, 0xD8, 0xA7 };
+static const symbol s_47[] = { 0xD9, 0x84, 0xD8, 0xA3 };
+static const symbol s_48[] = { 0xD9, 0x84, 0xD8, 0xA5 };
+static const symbol s_49[] = { 0xD9, 0x84, 0xD8, 0xA2 };
+static const symbol s_50[] = { 0xD8, 0xA1 };
+static const symbol s_51[] = { 0xD8, 0xA7 };
+static const symbol s_52[] = { 0xD9, 0x88 };
+static const symbol s_53[] = { 0xD9, 0x8A };
+static const symbol s_54[] = { 0xD8, 0xA3 };
+static const symbol s_55[] = { 0xD8, 0xA2 };
+static const symbol s_56[] = { 0xD8, 0xA7 };
+static const symbol s_57[] = { 0xD8, 0xA5 };
+static const symbol s_58[] = { 0xD8, 0xA7 };
+static const symbol s_59[] = { 0xD8, 0xA8 };
+static const symbol s_60[] = { 0xD9, 0x83 };
+static const symbol s_61[] = { 0xD9, 0x8A };
+static const symbol s_62[] = { 0xD8, 0xAA };
+static const symbol s_63[] = { 0xD9, 0x86 };
+static const symbol s_64[] = { 0xD8, 0xA3 };
+static const symbol s_65[] = { 0xD8, 0xA7, 0xD8, 0xB3, 0xD8, 0xAA };
+static const symbol s_66[] = { 0xD9, 0x8A };
+
+static int r_Normalize_pre(struct SN_env * z) {
+ int among_var;
+ { int c1 = z->c;
+ while(1) {
+ int c2 = z->c;
+ { int c3 = z->c;
+ z->bra = z->c;
+ among_var = find_among(z, a_0, 144);
+ if (!(among_var)) goto lab3;
+ z->ket = z->c;
+ switch (among_var) {
+ case 1:
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 2:
+ { int ret = slice_from_s(z, 1, s_0);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 3:
+ { int ret = slice_from_s(z, 1, s_1);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 4:
+ { int ret = slice_from_s(z, 1, s_2);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 5:
+ { int ret = slice_from_s(z, 1, s_3);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 6:
+ { int ret = slice_from_s(z, 1, s_4);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 7:
+ { int ret = slice_from_s(z, 1, s_5);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 8:
+ { int ret = slice_from_s(z, 1, s_6);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 9:
+ { int ret = slice_from_s(z, 1, s_7);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 10:
+ { int ret = slice_from_s(z, 1, s_8);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 11:
+ { int ret = slice_from_s(z, 1, s_9);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 12:
+ { int ret = slice_from_s(z, 2, s_10);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 13:
+ { int ret = slice_from_s(z, 2, s_11);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 14:
+ { int ret = slice_from_s(z, 2, s_12);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 15:
+ { int ret = slice_from_s(z, 2, s_13);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 16:
+ { int ret = slice_from_s(z, 2, s_14);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 17:
+ { int ret = slice_from_s(z, 2, s_15);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 18:
+ { int ret = slice_from_s(z, 2, s_16);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 19:
+ { int ret = slice_from_s(z, 2, s_17);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 20:
+ { int ret = slice_from_s(z, 2, s_18);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 21:
+ { int ret = slice_from_s(z, 2, s_19);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 22:
+ { int ret = slice_from_s(z, 2, s_20);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 23:
+ { int ret = slice_from_s(z, 2, s_21);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 24:
+ { int ret = slice_from_s(z, 2, s_22);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 25:
+ { int ret = slice_from_s(z, 2, s_23);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 26:
+ { int ret = slice_from_s(z, 2, s_24);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 27:
+ { int ret = slice_from_s(z, 2, s_25);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 28:
+ { int ret = slice_from_s(z, 2, s_26);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 29:
+ { int ret = slice_from_s(z, 2, s_27);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 30:
+ { int ret = slice_from_s(z, 2, s_28);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 31:
+ { int ret = slice_from_s(z, 2, s_29);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 32:
+ { int ret = slice_from_s(z, 2, s_30);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 33:
+ { int ret = slice_from_s(z, 2, s_31);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 34:
+ { int ret = slice_from_s(z, 2, s_32);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 35:
+ { int ret = slice_from_s(z, 2, s_33);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 36:
+ { int ret = slice_from_s(z, 2, s_34);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 37:
+ { int ret = slice_from_s(z, 2, s_35);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 38:
+ { int ret = slice_from_s(z, 2, s_36);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 39:
+ { int ret = slice_from_s(z, 2, s_37);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 40:
+ { int ret = slice_from_s(z, 2, s_38);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 41:
+ { int ret = slice_from_s(z, 2, s_39);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 42:
+ { int ret = slice_from_s(z, 2, s_40);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 43:
+ { int ret = slice_from_s(z, 2, s_41);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 44:
+ { int ret = slice_from_s(z, 2, s_42);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 45:
+ { int ret = slice_from_s(z, 2, s_43);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 46:
+ { int ret = slice_from_s(z, 2, s_44);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 47:
+ { int ret = slice_from_s(z, 2, s_45);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 48:
+ { int ret = slice_from_s(z, 4, s_46);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 49:
+ { int ret = slice_from_s(z, 4, s_47);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 50:
+ { int ret = slice_from_s(z, 4, s_48);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 51:
+ { int ret = slice_from_s(z, 4, s_49);
+ if (ret < 0) return ret;
+ }
+ break;
+ }
+ goto lab2;
+ lab3:
+ z->c = c3;
+ { int ret = skip_utf8(z->p, z->c, z->l, 1);
+ if (ret < 0) goto lab1;
+ z->c = ret;
+ }
+ }
+ lab2:
+ continue;
+ lab1:
+ z->c = c2;
+ break;
+ }
+ z->c = c1;
+ }
+ return 1;
+}
+
+static int r_Normalize_post(struct SN_env * z) {
+ int among_var;
+ { int c1 = z->c;
+ z->lb = z->c; z->c = z->l;
+
+ z->ket = z->c;
+ if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 5 || !((124 >> (z->p[z->c - 1] & 0x1f)) & 1)) goto lab0;
+ if (!(find_among_b(z, a_1, 5))) goto lab0;
+ z->bra = z->c;
+ { int ret = slice_from_s(z, 2, s_50);
+ if (ret < 0) return ret;
+ }
+ z->c = z->lb;
+ lab0:
+ z->c = c1;
+ }
+ { int c2 = z->c;
+ while(1) {
+ int c3 = z->c;
+ { int c4 = z->c;
+ z->bra = z->c;
+ if (z->c + 1 >= z->l || z->p[z->c + 1] >> 5 != 5 || !((124 >> (z->p[z->c + 1] & 0x1f)) & 1)) goto lab4;
+ among_var = find_among(z, a_2, 5);
+ if (!(among_var)) goto lab4;
+ z->ket = z->c;
+ switch (among_var) {
+ case 1:
+ { int ret = slice_from_s(z, 2, s_51);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 2:
+ { int ret = slice_from_s(z, 2, s_52);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 3:
+ { int ret = slice_from_s(z, 2, s_53);
+ if (ret < 0) return ret;
+ }
+ break;
+ }
+ goto lab3;
+ lab4:
+ z->c = c4;
+ { int ret = skip_utf8(z->p, z->c, z->l, 1);
+ if (ret < 0) goto lab2;
+ z->c = ret;
+ }
+ }
+ lab3:
+ continue;
+ lab2:
+ z->c = c3;
+ break;
+ }
+ z->c = c2;
+ }
+ return 1;
+}
+
+static int r_Checks1(struct SN_env * z) {
+ int among_var;
+ z->bra = z->c;
+ if (z->c + 3 >= z->l || (z->p[z->c + 3] != 132 && z->p[z->c + 3] != 167)) return 0;
+ among_var = find_among(z, a_3, 4);
+ if (!(among_var)) return 0;
+ z->ket = z->c;
+ switch (among_var) {
+ case 1:
+ if (!(len_utf8(z->p) > 4)) return 0;
+ z->I[2] = 1;
+ z->I[1] = 0;
+ z->I[0] = 1;
+ break;
+ case 2:
+ if (!(len_utf8(z->p) > 3)) return 0;
+ z->I[2] = 1;
+ z->I[1] = 0;
+ z->I[0] = 1;
+ break;
+ }
+ return 1;
+}
+
+static int r_Prefix_Step1(struct SN_env * z) {
+ int among_var;
+ z->bra = z->c;
+ if (z->c + 3 >= z->l || z->p[z->c + 3] >> 5 != 5 || !((188 >> (z->p[z->c + 3] & 0x1f)) & 1)) return 0;
+ among_var = find_among(z, a_4, 5);
+ if (!(among_var)) return 0;
+ z->ket = z->c;
+ switch (among_var) {
+ case 1:
+ if (!(len_utf8(z->p) > 3)) return 0;
+ { int ret = slice_from_s(z, 2, s_54);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 2:
+ if (!(len_utf8(z->p) > 3)) return 0;
+ { int ret = slice_from_s(z, 2, s_55);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 3:
+ if (!(len_utf8(z->p) > 3)) return 0;
+ { int ret = slice_from_s(z, 2, s_56);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 4:
+ if (!(len_utf8(z->p) > 3)) return 0;
+ { int ret = slice_from_s(z, 2, s_57);
+ if (ret < 0) return ret;
+ }
+ break;
+ }
+ return 1;
+}
+
+static int r_Prefix_Step2(struct SN_env * z) {
+ z->bra = z->c;
+ if (z->c + 1 >= z->l || (z->p[z->c + 1] != 129 && z->p[z->c + 1] != 136)) return 0;
+ if (!(find_among(z, a_5, 2))) return 0;
+ z->ket = z->c;
+ if (!(len_utf8(z->p) > 3)) return 0;
+ { int c1 = z->c;
+ if (!(eq_s(z, 2, s_58))) goto lab0;
+ return 0;
+ lab0:
+ z->c = c1;
+ }
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ return 1;
+}
+
+static int r_Prefix_Step3a_Noun(struct SN_env * z) {
+ int among_var;
+ z->bra = z->c;
+ if (z->c + 3 >= z->l || (z->p[z->c + 3] != 132 && z->p[z->c + 3] != 167)) return 0;
+ among_var = find_among(z, a_6, 4);
+ if (!(among_var)) return 0;
+ z->ket = z->c;
+ switch (among_var) {
+ case 1:
+ if (!(len_utf8(z->p) > 5)) return 0;
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 2:
+ if (!(len_utf8(z->p) > 4)) return 0;
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ break;
+ }
+ return 1;
+}
+
+static int r_Prefix_Step3b_Noun(struct SN_env * z) {
+ int among_var;
+ z->bra = z->c;
+ if (z->c + 1 >= z->l || (z->p[z->c + 1] != 168 && z->p[z->c + 1] != 131)) return 0;
+ among_var = find_among(z, a_7, 4);
+ if (!(among_var)) return 0;
+ z->ket = z->c;
+ switch (among_var) {
+ case 1:
+ if (!(len_utf8(z->p) > 3)) return 0;
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 2:
+ if (!(len_utf8(z->p) > 3)) return 0;
+ { int ret = slice_from_s(z, 2, s_59);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 3:
+ if (!(len_utf8(z->p) > 3)) return 0;
+ { int ret = slice_from_s(z, 2, s_60);
+ if (ret < 0) return ret;
+ }
+ break;
+ }
+ return 1;
+}
+
+static int r_Prefix_Step3_Verb(struct SN_env * z) {
+ int among_var;
+ z->bra = z->c;
+ among_var = find_among(z, a_8, 4);
+ if (!(among_var)) return 0;
+ z->ket = z->c;
+ switch (among_var) {
+ case 1:
+ if (!(len_utf8(z->p) > 4)) return 0;
+ { int ret = slice_from_s(z, 2, s_61);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 2:
+ if (!(len_utf8(z->p) > 4)) return 0;
+ { int ret = slice_from_s(z, 2, s_62);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 3:
+ if (!(len_utf8(z->p) > 4)) return 0;
+ { int ret = slice_from_s(z, 2, s_63);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 4:
+ if (!(len_utf8(z->p) > 4)) return 0;
+ { int ret = slice_from_s(z, 2, s_64);
+ if (ret < 0) return ret;
+ }
+ break;
+ }
+ return 1;
+}
+
+static int r_Prefix_Step4_Verb(struct SN_env * z) {
+ z->bra = z->c;
+ if (z->c + 5 >= z->l || z->p[z->c + 5] != 170) return 0;
+ if (!(find_among(z, a_9, 3))) return 0;
+ z->ket = z->c;
+ if (!(len_utf8(z->p) > 4)) return 0;
+ z->I[1] = 1;
+ z->I[2] = 0;
+ { int ret = slice_from_s(z, 6, s_65);
+ if (ret < 0) return ret;
+ }
+ return 1;
+}
+
+static int r_Suffix_Noun_Step1a(struct SN_env * z) {
+ int among_var;
+ z->ket = z->c;
+ among_var = find_among_b(z, a_10, 10);
+ if (!(among_var)) return 0;
+ z->bra = z->c;
+ switch (among_var) {
+ case 1:
+ if (!(len_utf8(z->p) >= 4)) return 0;
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 2:
+ if (!(len_utf8(z->p) >= 5)) return 0;
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 3:
+ if (!(len_utf8(z->p) >= 6)) return 0;
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ break;
+ }
+ return 1;
+}
+
+static int r_Suffix_Noun_Step1b(struct SN_env * z) {
+ z->ket = z->c;
+ if (z->c - 1 <= z->lb || z->p[z->c - 1] != 134) return 0;
+ if (!(find_among_b(z, a_11, 1))) return 0;
+ z->bra = z->c;
+ if (!(len_utf8(z->p) > 5)) return 0;
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ return 1;
+}
+
+static int r_Suffix_Noun_Step2a(struct SN_env * z) {
+ z->ket = z->c;
+ if (!(find_among_b(z, a_12, 3))) return 0;
+ z->bra = z->c;
+ if (!(len_utf8(z->p) > 4)) return 0;
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ return 1;
+}
+
+static int r_Suffix_Noun_Step2b(struct SN_env * z) {
+ z->ket = z->c;
+ if (z->c - 3 <= z->lb || z->p[z->c - 1] != 170) return 0;
+ if (!(find_among_b(z, a_13, 1))) return 0;
+ z->bra = z->c;
+ if (!(len_utf8(z->p) >= 5)) return 0;
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ return 1;
+}
+
+static int r_Suffix_Noun_Step2c1(struct SN_env * z) {
+ z->ket = z->c;
+ if (z->c - 1 <= z->lb || z->p[z->c - 1] != 170) return 0;
+ if (!(find_among_b(z, a_14, 1))) return 0;
+ z->bra = z->c;
+ if (!(len_utf8(z->p) >= 4)) return 0;
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ return 1;
+}
+
+static int r_Suffix_Noun_Step2c2(struct SN_env * z) {
+ z->ket = z->c;
+ if (z->c - 1 <= z->lb || z->p[z->c - 1] != 169) return 0;
+ if (!(find_among_b(z, a_15, 1))) return 0;
+ z->bra = z->c;
+ if (!(len_utf8(z->p) >= 4)) return 0;
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ return 1;
+}
+
+static int r_Suffix_Noun_Step3(struct SN_env * z) {
+ z->ket = z->c;
+ if (z->c - 1 <= z->lb || z->p[z->c - 1] != 138) return 0;
+ if (!(find_among_b(z, a_16, 1))) return 0;
+ z->bra = z->c;
+ if (!(len_utf8(z->p) >= 3)) return 0;
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ return 1;
+}
+
+static int r_Suffix_Verb_Step1(struct SN_env * z) {
+ int among_var;
+ z->ket = z->c;
+ among_var = find_among_b(z, a_17, 12);
+ if (!(among_var)) return 0;
+ z->bra = z->c;
+ switch (among_var) {
+ case 1:
+ if (!(len_utf8(z->p) >= 4)) return 0;
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 2:
+ if (!(len_utf8(z->p) >= 5)) return 0;
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 3:
+ if (!(len_utf8(z->p) >= 6)) return 0;
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ break;
+ }
+ return 1;
+}
+
+static int r_Suffix_Verb_Step2a(struct SN_env * z) {
+ int among_var;
+ z->ket = z->c;
+ among_var = find_among_b(z, a_18, 11);
+ if (!(among_var)) return 0;
+ z->bra = z->c;
+ switch (among_var) {
+ case 1:
+ if (!(len_utf8(z->p) >= 4)) return 0;
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 2:
+ if (!(len_utf8(z->p) >= 5)) return 0;
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 3:
+ if (!(len_utf8(z->p) > 5)) return 0;
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 4:
+ if (!(len_utf8(z->p) >= 6)) return 0;
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ break;
+ }
+ return 1;
+}
+
+static int r_Suffix_Verb_Step2b(struct SN_env * z) {
+ z->ket = z->c;
+ if (z->c - 3 <= z->lb || (z->p[z->c - 1] != 133 && z->p[z->c - 1] != 167)) return 0;
+ if (!(find_among_b(z, a_19, 2))) return 0;
+ z->bra = z->c;
+ if (!(len_utf8(z->p) >= 5)) return 0;
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ return 1;
+}
+
+static int r_Suffix_Verb_Step2c(struct SN_env * z) {
+ int among_var;
+ z->ket = z->c;
+ if (z->c - 1 <= z->lb || z->p[z->c - 1] != 136) return 0;
+ among_var = find_among_b(z, a_20, 2);
+ if (!(among_var)) return 0;
+ z->bra = z->c;
+ switch (among_var) {
+ case 1:
+ if (!(len_utf8(z->p) >= 4)) return 0;
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 2:
+ if (!(len_utf8(z->p) >= 6)) return 0;
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ break;
+ }
+ return 1;
+}
+
+static int r_Suffix_All_alef_maqsura(struct SN_env * z) {
+ z->ket = z->c;
+ if (z->c - 1 <= z->lb || z->p[z->c - 1] != 137) return 0;
+ if (!(find_among_b(z, a_21, 1))) return 0;
+ z->bra = z->c;
+ { int ret = slice_from_s(z, 2, s_66);
+ if (ret < 0) return ret;
+ }
+ return 1;
+}
+
+extern int arabic_UTF_8_stem(struct SN_env * z) {
+ z->I[2] = 1;
+ z->I[1] = 1;
+ z->I[0] = 0;
+ { int c1 = z->c;
+ { int ret = r_Checks1(z);
+ if (ret < 0) return ret;
+ }
+ z->c = c1;
+ }
+
+ { int ret = r_Normalize_pre(z);
+ if (ret < 0) return ret;
+ }
+ z->lb = z->c; z->c = z->l;
+
+ { int m2 = z->l - z->c; (void)m2;
+ { int m3 = z->l - z->c; (void)m3;
+ if (!(z->I[1])) goto lab2;
+ { int m4 = z->l - z->c; (void)m4;
+ { int i = 1;
+ while(1) {
+ int m5 = z->l - z->c; (void)m5;
+ { int ret = r_Suffix_Verb_Step1(z);
+ if (ret == 0) goto lab5;
+ if (ret < 0) return ret;
+ }
+ i--;
+ continue;
+ lab5:
+ z->c = z->l - m5;
+ break;
+ }
+ if (i > 0) goto lab4;
+ }
+ { int m6 = z->l - z->c; (void)m6;
+ { int ret = r_Suffix_Verb_Step2a(z);
+ if (ret == 0) goto lab7;
+ if (ret < 0) return ret;
+ }
+ goto lab6;
+ lab7:
+ z->c = z->l - m6;
+ { int ret = r_Suffix_Verb_Step2c(z);
+ if (ret == 0) goto lab8;
+ if (ret < 0) return ret;
+ }
+ goto lab6;
+ lab8:
+ z->c = z->l - m6;
+ { int ret = skip_b_utf8(z->p, z->c, z->lb, 1);
+ if (ret < 0) goto lab4;
+ z->c = ret;
+ }
+ }
+ lab6:
+ goto lab3;
+ lab4:
+ z->c = z->l - m4;
+ { int ret = r_Suffix_Verb_Step2b(z);
+ if (ret == 0) goto lab9;
+ if (ret < 0) return ret;
+ }
+ goto lab3;
+ lab9:
+ z->c = z->l - m4;
+ { int ret = r_Suffix_Verb_Step2a(z);
+ if (ret == 0) goto lab2;
+ if (ret < 0) return ret;
+ }
+ }
+ lab3:
+ goto lab1;
+ lab2:
+ z->c = z->l - m3;
+ if (!(z->I[2])) goto lab10;
+ { int m7 = z->l - z->c; (void)m7;
+ { int m8 = z->l - z->c; (void)m8;
+ { int ret = r_Suffix_Noun_Step2c2(z);
+ if (ret == 0) goto lab13;
+ if (ret < 0) return ret;
+ }
+ goto lab12;
+ lab13:
+ z->c = z->l - m8;
+
+ if (!(z->I[0])) goto lab15;
+ goto lab14;
+ lab15:
+ { int ret = r_Suffix_Noun_Step1a(z);
+ if (ret == 0) goto lab14;
+ if (ret < 0) return ret;
+ }
+ { int m9 = z->l - z->c; (void)m9;
+ { int ret = r_Suffix_Noun_Step2a(z);
+ if (ret == 0) goto lab17;
+ if (ret < 0) return ret;
+ }
+ goto lab16;
+ lab17:
+ z->c = z->l - m9;
+ { int ret = r_Suffix_Noun_Step2b(z);
+ if (ret == 0) goto lab18;
+ if (ret < 0) return ret;
+ }
+ goto lab16;
+ lab18:
+ z->c = z->l - m9;
+ { int ret = r_Suffix_Noun_Step2c1(z);
+ if (ret == 0) goto lab19;
+ if (ret < 0) return ret;
+ }
+ goto lab16;
+ lab19:
+ z->c = z->l - m9;
+ { int ret = skip_b_utf8(z->p, z->c, z->lb, 1);
+ if (ret < 0) goto lab14;
+ z->c = ret;
+ }
+ }
+ lab16:
+ goto lab12;
+ lab14:
+ z->c = z->l - m8;
+ { int ret = r_Suffix_Noun_Step1b(z);
+ if (ret == 0) goto lab20;
+ if (ret < 0) return ret;
+ }
+ { int m10 = z->l - z->c; (void)m10;
+ { int ret = r_Suffix_Noun_Step2a(z);
+ if (ret == 0) goto lab22;
+ if (ret < 0) return ret;
+ }
+ goto lab21;
+ lab22:
+ z->c = z->l - m10;
+ { int ret = r_Suffix_Noun_Step2b(z);
+ if (ret == 0) goto lab23;
+ if (ret < 0) return ret;
+ }
+ goto lab21;
+ lab23:
+ z->c = z->l - m10;
+ { int ret = r_Suffix_Noun_Step2c1(z);
+ if (ret == 0) goto lab20;
+ if (ret < 0) return ret;
+ }
+ }
+ lab21:
+ goto lab12;
+ lab20:
+ z->c = z->l - m8;
+
+ if (!(z->I[0])) goto lab25;
+ goto lab24;
+ lab25:
+ { int ret = r_Suffix_Noun_Step2a(z);
+ if (ret == 0) goto lab24;
+ if (ret < 0) return ret;
+ }
+ goto lab12;
+ lab24:
+ z->c = z->l - m8;
+ { int ret = r_Suffix_Noun_Step2b(z);
+ if (ret == 0) { z->c = z->l - m7; goto lab11; }
+ if (ret < 0) return ret;
+ }
+ }
+ lab12:
+ lab11:
+ ;
+ }
+ { int ret = r_Suffix_Noun_Step3(z);
+ if (ret == 0) goto lab10;
+ if (ret < 0) return ret;
+ }
+ goto lab1;
+ lab10:
+ z->c = z->l - m3;
+ { int ret = r_Suffix_All_alef_maqsura(z);
+ if (ret == 0) goto lab0;
+ if (ret < 0) return ret;
+ }
+ }
+ lab1:
+ lab0:
+ z->c = z->l - m2;
+ }
+ z->c = z->lb;
+ { int c11 = z->c;
+ { int c12 = z->c;
+ { int ret = r_Prefix_Step1(z);
+ if (ret == 0) { z->c = c12; goto lab27; }
+ if (ret < 0) return ret;
+ }
+ lab27:
+ ;
+ }
+ { int c13 = z->c;
+ { int ret = r_Prefix_Step2(z);
+ if (ret == 0) { z->c = c13; goto lab28; }
+ if (ret < 0) return ret;
+ }
+ lab28:
+ ;
+ }
+ { int c14 = z->c;
+ { int ret = r_Prefix_Step3a_Noun(z);
+ if (ret == 0) goto lab30;
+ if (ret < 0) return ret;
+ }
+ goto lab29;
+ lab30:
+ z->c = c14;
+ if (!(z->I[2])) goto lab31;
+ { int ret = r_Prefix_Step3b_Noun(z);
+ if (ret == 0) goto lab31;
+ if (ret < 0) return ret;
+ }
+ goto lab29;
+ lab31:
+ z->c = c14;
+ if (!(z->I[1])) goto lab26;
+ { int c15 = z->c;
+ { int ret = r_Prefix_Step3_Verb(z);
+ if (ret == 0) { z->c = c15; goto lab32; }
+ if (ret < 0) return ret;
+ }
+ lab32:
+ ;
+ }
+ { int ret = r_Prefix_Step4_Verb(z);
+ if (ret == 0) goto lab26;
+ if (ret < 0) return ret;
+ }
+ }
+ lab29:
+ lab26:
+ z->c = c11;
+ }
+
+ { int ret = r_Normalize_post(z);
+ if (ret < 0) return ret;
+ }
+ return 1;
+}
+
+extern struct SN_env * arabic_UTF_8_create_env(void) { return SN_create_env(0, 3); }
+
+extern void arabic_UTF_8_close_env(struct SN_env * z) { SN_close_env(z, 0); }
+
diff --git a/src/backend/snowball/libstemmer/stem_UTF_8_armenian.c b/src/backend/snowball/libstemmer/stem_UTF_8_armenian.c
new file mode 100644
index 0000000..27f9f19
--- /dev/null
+++ b/src/backend/snowball/libstemmer/stem_UTF_8_armenian.c
@@ -0,0 +1,559 @@
+/* Generated by Snowball 2.2.0 - https://snowballstem.org/ */
+
+#include "header.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+extern int armenian_UTF_8_stem(struct SN_env * z);
+#ifdef __cplusplus
+}
+#endif
+static int r_ending(struct SN_env * z);
+static int r_noun(struct SN_env * z);
+static int r_verb(struct SN_env * z);
+static int r_adjective(struct SN_env * z);
+static int r_R2(struct SN_env * z);
+static int r_mark_regions(struct SN_env * z);
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+extern struct SN_env * armenian_UTF_8_create_env(void);
+extern void armenian_UTF_8_close_env(struct SN_env * z);
+
+
+#ifdef __cplusplus
+}
+#endif
+static const symbol s_0_0[6] = { 0xD5, 0xA2, 0xD5, 0xA1, 0xD6, 0x80 };
+static const symbol s_0_1[8] = { 0xD6, 0x80, 0xD5, 0xB8, 0xD6, 0x80, 0xD5, 0xA4 };
+static const symbol s_0_2[10] = { 0xD5, 0xA5, 0xD6, 0x80, 0xD5, 0xB8, 0xD6, 0x80, 0xD5, 0xA4 };
+static const symbol s_0_3[6] = { 0xD5, 0xA1, 0xD5, 0xAC, 0xD5, 0xAB };
+static const symbol s_0_4[6] = { 0xD5, 0xA1, 0xD5, 0xAF, 0xD5, 0xAB };
+static const symbol s_0_5[8] = { 0xD5, 0xB8, 0xD6, 0x80, 0xD5, 0xA1, 0xD5, 0xAF };
+static const symbol s_0_6[4] = { 0xD5, 0xA5, 0xD5, 0xB2 };
+static const symbol s_0_7[8] = { 0xD5, 0xBE, 0xD5, 0xB8, 0xD6, 0x82, 0xD5, 0xB6 };
+static const symbol s_0_8[8] = { 0xD5, 0xA1, 0xD6, 0x80, 0xD5, 0xA1, 0xD5, 0xB6 };
+static const symbol s_0_9[8] = { 0xD5, 0xA1, 0xD5, 0xAF, 0xD5, 0xA1, 0xD5, 0xB6 };
+static const symbol s_0_10[4] = { 0xD5, 0xA5, 0xD5, 0xB6 };
+static const symbol s_0_11[8] = { 0xD5, 0xA5, 0xD6, 0x80, 0xD5, 0xA5, 0xD5, 0xB6 };
+static const symbol s_0_12[8] = { 0xD5, 0xA5, 0xD5, 0xAF, 0xD5, 0xA5, 0xD5, 0xB6 };
+static const symbol s_0_13[8] = { 0xD5, 0xB8, 0xD6, 0x80, 0xD5, 0xA7, 0xD5, 0xB6 };
+static const symbol s_0_14[4] = { 0xD5, 0xAB, 0xD5, 0xB6 };
+static const symbol s_0_15[6] = { 0xD5, 0xA3, 0xD5, 0xAB, 0xD5, 0xB6 };
+static const symbol s_0_16[8] = { 0xD5, 0xB8, 0xD5, 0xBE, 0xD5, 0xAB, 0xD5, 0xB6 };
+static const symbol s_0_17[8] = { 0xD5, 0xAC, 0xD5, 0xA1, 0xD5, 0xB5, 0xD5, 0xB6 };
+static const symbol s_0_18[6] = { 0xD5, 0xBA, 0xD5, 0xA5, 0xD5, 0xBD };
+static const symbol s_0_19[4] = { 0xD5, 0xAB, 0xD5, 0xBE };
+static const symbol s_0_20[4] = { 0xD5, 0xA1, 0xD5, 0xBF };
+static const symbol s_0_21[8] = { 0xD5, 0xA1, 0xD5, 0xBE, 0xD5, 0xA5, 0xD5, 0xBF };
+static const symbol s_0_22[6] = { 0xD5, 0xAF, 0xD5, 0xB8, 0xD5, 0xBF };
+
+static const struct among a_0[23] =
+{
+{ 6, s_0_0, -1, 1, 0},
+{ 8, s_0_1, -1, 1, 0},
+{ 10, s_0_2, 1, 1, 0},
+{ 6, s_0_3, -1, 1, 0},
+{ 6, s_0_4, -1, 1, 0},
+{ 8, s_0_5, -1, 1, 0},
+{ 4, s_0_6, -1, 1, 0},
+{ 8, s_0_7, -1, 1, 0},
+{ 8, s_0_8, -1, 1, 0},
+{ 8, s_0_9, -1, 1, 0},
+{ 4, s_0_10, -1, 1, 0},
+{ 8, s_0_11, 10, 1, 0},
+{ 8, s_0_12, 10, 1, 0},
+{ 8, s_0_13, -1, 1, 0},
+{ 4, s_0_14, -1, 1, 0},
+{ 6, s_0_15, 14, 1, 0},
+{ 8, s_0_16, 14, 1, 0},
+{ 8, s_0_17, -1, 1, 0},
+{ 6, s_0_18, -1, 1, 0},
+{ 4, s_0_19, -1, 1, 0},
+{ 4, s_0_20, -1, 1, 0},
+{ 8, s_0_21, -1, 1, 0},
+{ 6, s_0_22, -1, 1, 0}
+};
+
+static const symbol s_1_0[4] = { 0xD5, 0xA1, 0xD6, 0x80 };
+static const symbol s_1_1[8] = { 0xD5, 0xA1, 0xD6, 0x81, 0xD5, 0xA1, 0xD6, 0x80 };
+static const symbol s_1_2[8] = { 0xD5, 0xA5, 0xD6, 0x81, 0xD5, 0xA1, 0xD6, 0x80 };
+static const symbol s_1_3[10] = { 0xD5, 0xA1, 0xD6, 0x81, 0xD6, 0x80, 0xD5, 0xAB, 0xD6, 0x80 };
+static const symbol s_1_4[8] = { 0xD5, 0xA1, 0xD6, 0x81, 0xD5, 0xAB, 0xD6, 0x80 };
+static const symbol s_1_5[8] = { 0xD5, 0xA5, 0xD6, 0x81, 0xD5, 0xAB, 0xD6, 0x80 };
+static const symbol s_1_6[10] = { 0xD5, 0xBE, 0xD5, 0xA5, 0xD6, 0x81, 0xD5, 0xAB, 0xD6, 0x80 };
+static const symbol s_1_7[10] = { 0xD5, 0xA1, 0xD5, 0xAC, 0xD5, 0xB8, 0xD6, 0x82, 0xD6, 0x81 };
+static const symbol s_1_8[10] = { 0xD5, 0xA5, 0xD5, 0xAC, 0xD5, 0xB8, 0xD6, 0x82, 0xD6, 0x81 };
+static const symbol s_1_9[4] = { 0xD5, 0xA1, 0xD6, 0x81 };
+static const symbol s_1_10[4] = { 0xD5, 0xA5, 0xD6, 0x81 };
+static const symbol s_1_11[10] = { 0xD5, 0xA1, 0xD6, 0x81, 0xD6, 0x80, 0xD5, 0xA5, 0xD6, 0x81 };
+static const symbol s_1_12[8] = { 0xD5, 0xA1, 0xD5, 0xAC, 0xD5, 0xB8, 0xD6, 0x82 };
+static const symbol s_1_13[8] = { 0xD5, 0xA5, 0xD5, 0xAC, 0xD5, 0xB8, 0xD6, 0x82 };
+static const symbol s_1_14[4] = { 0xD5, 0xA1, 0xD6, 0x84 };
+static const symbol s_1_15[6] = { 0xD6, 0x81, 0xD5, 0xA1, 0xD6, 0x84 };
+static const symbol s_1_16[8] = { 0xD5, 0xA1, 0xD6, 0x81, 0xD5, 0xA1, 0xD6, 0x84 };
+static const symbol s_1_17[10] = { 0xD5, 0xA1, 0xD6, 0x81, 0xD6, 0x80, 0xD5, 0xAB, 0xD6, 0x84 };
+static const symbol s_1_18[8] = { 0xD5, 0xA1, 0xD6, 0x81, 0xD5, 0xAB, 0xD6, 0x84 };
+static const symbol s_1_19[8] = { 0xD5, 0xA5, 0xD6, 0x81, 0xD5, 0xAB, 0xD6, 0x84 };
+static const symbol s_1_20[10] = { 0xD5, 0xBE, 0xD5, 0xA5, 0xD6, 0x81, 0xD5, 0xAB, 0xD6, 0x84 };
+static const symbol s_1_21[6] = { 0xD5, 0xA1, 0xD5, 0xB6, 0xD6, 0x84 };
+static const symbol s_1_22[8] = { 0xD6, 0x81, 0xD5, 0xA1, 0xD5, 0xB6, 0xD6, 0x84 };
+static const symbol s_1_23[10] = { 0xD5, 0xA1, 0xD6, 0x81, 0xD5, 0xA1, 0xD5, 0xB6, 0xD6, 0x84 };
+static const symbol s_1_24[12] = { 0xD5, 0xA1, 0xD6, 0x81, 0xD6, 0x80, 0xD5, 0xAB, 0xD5, 0xB6, 0xD6, 0x84 };
+static const symbol s_1_25[10] = { 0xD5, 0xA1, 0xD6, 0x81, 0xD5, 0xAB, 0xD5, 0xB6, 0xD6, 0x84 };
+static const symbol s_1_26[10] = { 0xD5, 0xA5, 0xD6, 0x81, 0xD5, 0xAB, 0xD5, 0xB6, 0xD6, 0x84 };
+static const symbol s_1_27[12] = { 0xD5, 0xBE, 0xD5, 0xA5, 0xD6, 0x81, 0xD5, 0xAB, 0xD5, 0xB6, 0xD6, 0x84 };
+static const symbol s_1_28[2] = { 0xD5, 0xA1 };
+static const symbol s_1_29[6] = { 0xD5, 0xA1, 0xD6, 0x81, 0xD5, 0xA1 };
+static const symbol s_1_30[6] = { 0xD5, 0xA5, 0xD6, 0x81, 0xD5, 0xA1 };
+static const symbol s_1_31[4] = { 0xD5, 0xBE, 0xD5, 0xA5 };
+static const symbol s_1_32[8] = { 0xD5, 0xA1, 0xD6, 0x81, 0xD6, 0x80, 0xD5, 0xAB };
+static const symbol s_1_33[6] = { 0xD5, 0xA1, 0xD6, 0x81, 0xD5, 0xAB };
+static const symbol s_1_34[6] = { 0xD5, 0xA5, 0xD6, 0x81, 0xD5, 0xAB };
+static const symbol s_1_35[8] = { 0xD5, 0xBE, 0xD5, 0xA5, 0xD6, 0x81, 0xD5, 0xAB };
+static const symbol s_1_36[4] = { 0xD5, 0xA1, 0xD5, 0xAC };
+static const symbol s_1_37[6] = { 0xD5, 0xA8, 0xD5, 0xA1, 0xD5, 0xAC };
+static const symbol s_1_38[10] = { 0xD5, 0xA1, 0xD6, 0x81, 0xD5, 0xB6, 0xD5, 0xA1, 0xD5, 0xAC };
+static const symbol s_1_39[8] = { 0xD5, 0xA1, 0xD5, 0xB6, 0xD5, 0xA1, 0xD5, 0xAC };
+static const symbol s_1_40[8] = { 0xD5, 0xA5, 0xD5, 0xB6, 0xD5, 0xA1, 0xD5, 0xAC };
+static const symbol s_1_41[4] = { 0xD5, 0xA5, 0xD5, 0xAC };
+static const symbol s_1_42[6] = { 0xD5, 0xA8, 0xD5, 0xA5, 0xD5, 0xAC };
+static const symbol s_1_43[6] = { 0xD5, 0xB6, 0xD5, 0xA5, 0xD5, 0xAC };
+static const symbol s_1_44[8] = { 0xD6, 0x81, 0xD5, 0xB6, 0xD5, 0xA5, 0xD5, 0xAC };
+static const symbol s_1_45[10] = { 0xD5, 0xA5, 0xD6, 0x81, 0xD5, 0xB6, 0xD5, 0xA5, 0xD5, 0xAC };
+static const symbol s_1_46[6] = { 0xD5, 0xB9, 0xD5, 0xA5, 0xD5, 0xAC };
+static const symbol s_1_47[6] = { 0xD5, 0xBE, 0xD5, 0xA5, 0xD5, 0xAC };
+static const symbol s_1_48[10] = { 0xD5, 0xA1, 0xD6, 0x81, 0xD5, 0xBE, 0xD5, 0xA5, 0xD5, 0xAC };
+static const symbol s_1_49[10] = { 0xD5, 0xA5, 0xD6, 0x81, 0xD5, 0xBE, 0xD5, 0xA5, 0xD5, 0xAC };
+static const symbol s_1_50[6] = { 0xD5, 0xBF, 0xD5, 0xA5, 0xD5, 0xAC };
+static const symbol s_1_51[8] = { 0xD5, 0xA1, 0xD5, 0xBF, 0xD5, 0xA5, 0xD5, 0xAC };
+static const symbol s_1_52[8] = { 0xD5, 0xB8, 0xD5, 0xBF, 0xD5, 0xA5, 0xD5, 0xAC };
+static const symbol s_1_53[10] = { 0xD5, 0xAF, 0xD5, 0xB8, 0xD5, 0xBF, 0xD5, 0xA5, 0xD5, 0xAC };
+static const symbol s_1_54[6] = { 0xD5, 0xBE, 0xD5, 0xA1, 0xD5, 0xAE };
+static const symbol s_1_55[6] = { 0xD5, 0xB8, 0xD6, 0x82, 0xD5, 0xB4 };
+static const symbol s_1_56[8] = { 0xD5, 0xBE, 0xD5, 0xB8, 0xD6, 0x82, 0xD5, 0xB4 };
+static const symbol s_1_57[4] = { 0xD5, 0xA1, 0xD5, 0xB6 };
+static const symbol s_1_58[6] = { 0xD6, 0x81, 0xD5, 0xA1, 0xD5, 0xB6 };
+static const symbol s_1_59[8] = { 0xD5, 0xA1, 0xD6, 0x81, 0xD5, 0xA1, 0xD5, 0xB6 };
+static const symbol s_1_60[10] = { 0xD5, 0xA1, 0xD6, 0x81, 0xD6, 0x80, 0xD5, 0xAB, 0xD5, 0xB6 };
+static const symbol s_1_61[8] = { 0xD5, 0xA1, 0xD6, 0x81, 0xD5, 0xAB, 0xD5, 0xB6 };
+static const symbol s_1_62[8] = { 0xD5, 0xA5, 0xD6, 0x81, 0xD5, 0xAB, 0xD5, 0xB6 };
+static const symbol s_1_63[10] = { 0xD5, 0xBE, 0xD5, 0xA5, 0xD6, 0x81, 0xD5, 0xAB, 0xD5, 0xB6 };
+static const symbol s_1_64[8] = { 0xD5, 0xA1, 0xD5, 0xAC, 0xD5, 0xAB, 0xD5, 0xBD };
+static const symbol s_1_65[8] = { 0xD5, 0xA5, 0xD5, 0xAC, 0xD5, 0xAB, 0xD5, 0xBD };
+static const symbol s_1_66[4] = { 0xD5, 0xA1, 0xD5, 0xBE };
+static const symbol s_1_67[8] = { 0xD5, 0xA1, 0xD6, 0x81, 0xD5, 0xA1, 0xD5, 0xBE };
+static const symbol s_1_68[8] = { 0xD5, 0xA5, 0xD6, 0x81, 0xD5, 0xA1, 0xD5, 0xBE };
+static const symbol s_1_69[8] = { 0xD5, 0xA1, 0xD5, 0xAC, 0xD5, 0xB8, 0xD5, 0xBE };
+static const symbol s_1_70[8] = { 0xD5, 0xA5, 0xD5, 0xAC, 0xD5, 0xB8, 0xD5, 0xBE };
+
+static const struct among a_1[71] =
+{
+{ 4, s_1_0, -1, 1, 0},
+{ 8, s_1_1, 0, 1, 0},
+{ 8, s_1_2, 0, 1, 0},
+{ 10, s_1_3, -1, 1, 0},
+{ 8, s_1_4, -1, 1, 0},
+{ 8, s_1_5, -1, 1, 0},
+{ 10, s_1_6, 5, 1, 0},
+{ 10, s_1_7, -1, 1, 0},
+{ 10, s_1_8, -1, 1, 0},
+{ 4, s_1_9, -1, 1, 0},
+{ 4, s_1_10, -1, 1, 0},
+{ 10, s_1_11, 10, 1, 0},
+{ 8, s_1_12, -1, 1, 0},
+{ 8, s_1_13, -1, 1, 0},
+{ 4, s_1_14, -1, 1, 0},
+{ 6, s_1_15, 14, 1, 0},
+{ 8, s_1_16, 15, 1, 0},
+{ 10, s_1_17, -1, 1, 0},
+{ 8, s_1_18, -1, 1, 0},
+{ 8, s_1_19, -1, 1, 0},
+{ 10, s_1_20, 19, 1, 0},
+{ 6, s_1_21, -1, 1, 0},
+{ 8, s_1_22, 21, 1, 0},
+{ 10, s_1_23, 22, 1, 0},
+{ 12, s_1_24, -1, 1, 0},
+{ 10, s_1_25, -1, 1, 0},
+{ 10, s_1_26, -1, 1, 0},
+{ 12, s_1_27, 26, 1, 0},
+{ 2, s_1_28, -1, 1, 0},
+{ 6, s_1_29, 28, 1, 0},
+{ 6, s_1_30, 28, 1, 0},
+{ 4, s_1_31, -1, 1, 0},
+{ 8, s_1_32, -1, 1, 0},
+{ 6, s_1_33, -1, 1, 0},
+{ 6, s_1_34, -1, 1, 0},
+{ 8, s_1_35, 34, 1, 0},
+{ 4, s_1_36, -1, 1, 0},
+{ 6, s_1_37, 36, 1, 0},
+{ 10, s_1_38, 36, 1, 0},
+{ 8, s_1_39, 36, 1, 0},
+{ 8, s_1_40, 36, 1, 0},
+{ 4, s_1_41, -1, 1, 0},
+{ 6, s_1_42, 41, 1, 0},
+{ 6, s_1_43, 41, 1, 0},
+{ 8, s_1_44, 43, 1, 0},
+{ 10, s_1_45, 44, 1, 0},
+{ 6, s_1_46, 41, 1, 0},
+{ 6, s_1_47, 41, 1, 0},
+{ 10, s_1_48, 47, 1, 0},
+{ 10, s_1_49, 47, 1, 0},
+{ 6, s_1_50, 41, 1, 0},
+{ 8, s_1_51, 50, 1, 0},
+{ 8, s_1_52, 50, 1, 0},
+{ 10, s_1_53, 52, 1, 0},
+{ 6, s_1_54, -1, 1, 0},
+{ 6, s_1_55, -1, 1, 0},
+{ 8, s_1_56, 55, 1, 0},
+{ 4, s_1_57, -1, 1, 0},
+{ 6, s_1_58, 57, 1, 0},
+{ 8, s_1_59, 58, 1, 0},
+{ 10, s_1_60, -1, 1, 0},
+{ 8, s_1_61, -1, 1, 0},
+{ 8, s_1_62, -1, 1, 0},
+{ 10, s_1_63, 62, 1, 0},
+{ 8, s_1_64, -1, 1, 0},
+{ 8, s_1_65, -1, 1, 0},
+{ 4, s_1_66, -1, 1, 0},
+{ 8, s_1_67, 66, 1, 0},
+{ 8, s_1_68, 66, 1, 0},
+{ 8, s_1_69, -1, 1, 0},
+{ 8, s_1_70, -1, 1, 0}
+};
+
+static const symbol s_2_0[6] = { 0xD5, 0xA3, 0xD5, 0xA1, 0xD6, 0x80 };
+static const symbol s_2_1[6] = { 0xD5, 0xBE, 0xD5, 0xB8, 0xD6, 0x80 };
+static const symbol s_2_2[8] = { 0xD5, 0xA1, 0xD5, 0xBE, 0xD5, 0xB8, 0xD6, 0x80 };
+static const symbol s_2_3[8] = { 0xD5, 0xA1, 0xD5, 0xB6, 0xD6, 0x85, 0xD6, 0x81 };
+static const symbol s_2_4[4] = { 0xD5, 0xB8, 0xD6, 0x81 };
+static const symbol s_2_5[4] = { 0xD5, 0xB8, 0xD6, 0x82 };
+static const symbol s_2_6[2] = { 0xD6, 0x84 };
+static const symbol s_2_7[6] = { 0xD5, 0xA1, 0xD6, 0x80, 0xD6, 0x84 };
+static const symbol s_2_8[6] = { 0xD5, 0xB9, 0xD5, 0xA5, 0xD6, 0x84 };
+static const symbol s_2_9[4] = { 0xD5, 0xAB, 0xD6, 0x84 };
+static const symbol s_2_10[8] = { 0xD5, 0xA1, 0xD5, 0xAC, 0xD5, 0xAB, 0xD6, 0x84 };
+static const symbol s_2_11[8] = { 0xD5, 0xA1, 0xD5, 0xB6, 0xD5, 0xAB, 0xD6, 0x84 };
+static const symbol s_2_12[8] = { 0xD5, 0xBE, 0xD5, 0xA1, 0xD5, 0xAE, 0xD6, 0x84 };
+static const symbol s_2_13[8] = { 0xD5, 0xB8, 0xD6, 0x82, 0xD5, 0xB5, 0xD6, 0x84 };
+static const symbol s_2_14[8] = { 0xD5, 0xB8, 0xD6, 0x82, 0xD5, 0xB6, 0xD6, 0x84 };
+static const symbol s_2_15[10] = { 0xD5, 0xB4, 0xD5, 0xB8, 0xD6, 0x82, 0xD5, 0xB6, 0xD6, 0x84 };
+static const symbol s_2_16[6] = { 0xD5, 0xA5, 0xD5, 0xB6, 0xD6, 0x84 };
+static const symbol s_2_17[6] = { 0xD5, 0xB8, 0xD5, 0xB6, 0xD6, 0x84 };
+static const symbol s_2_18[6] = { 0xD5, 0xAB, 0xD5, 0xB9, 0xD6, 0x84 };
+static const symbol s_2_19[6] = { 0xD5, 0xB8, 0xD6, 0x80, 0xD5, 0xA4 };
+static const symbol s_2_20[8] = { 0xD5, 0xB8, 0xD6, 0x82, 0xD5, 0xB5, 0xD5, 0xA9 };
+static const symbol s_2_21[4] = { 0xD6, 0x81, 0xD5, 0xAB };
+static const symbol s_2_22[8] = { 0xD5, 0xB8, 0xD6, 0x82, 0xD5, 0xB0, 0xD5, 0xAB };
+static const symbol s_2_23[4] = { 0xD5, 0xAB, 0xD5, 0xAC };
+static const symbol s_2_24[6] = { 0xD5, 0xB8, 0xD6, 0x82, 0xD5, 0xAF };
+static const symbol s_2_25[4] = { 0xD5, 0xA1, 0xD5, 0xAF };
+static const symbol s_2_26[6] = { 0xD5, 0xB5, 0xD5, 0xA1, 0xD5, 0xAF };
+static const symbol s_2_27[8] = { 0xD5, 0xA1, 0xD5, 0xB6, 0xD5, 0xA1, 0xD5, 0xAF };
+static const symbol s_2_28[4] = { 0xD5, 0xAB, 0xD5, 0xAF };
+static const symbol s_2_29[8] = { 0xD5, 0xB5, 0xD5, 0xB8, 0xD6, 0x82, 0xD5, 0xB6 };
+static const symbol s_2_30[14] = { 0xD5, 0xB8, 0xD6, 0x82, 0xD5, 0xA9, 0xD5, 0xB5, 0xD5, 0xB8, 0xD6, 0x82, 0xD5, 0xB6 };
+static const symbol s_2_31[4] = { 0xD5, 0xA1, 0xD5, 0xB6 };
+static const symbol s_2_32[8] = { 0xD5, 0xA1, 0xD6, 0x80, 0xD5, 0xA1, 0xD5, 0xB6 };
+static const symbol s_2_33[6] = { 0xD5, 0xBA, 0xD5, 0xA1, 0xD5, 0xB6 };
+static const symbol s_2_34[8] = { 0xD5, 0xBD, 0xD5, 0xBF, 0xD5, 0xA1, 0xD5, 0xB6 };
+static const symbol s_2_35[8] = { 0xD5, 0xA5, 0xD5, 0xB2, 0xD5, 0xA7, 0xD5, 0xB6 };
+static const symbol s_2_36[6] = { 0xD5, 0xA1, 0xD5, 0xAE, 0xD5, 0xB8 };
+static const symbol s_2_37[4] = { 0xD5, 0xAB, 0xD5, 0xB9 };
+static const symbol s_2_38[6] = { 0xD5, 0xB8, 0xD6, 0x82, 0xD5, 0xBD };
+static const symbol s_2_39[8] = { 0xD5, 0xB8, 0xD6, 0x82, 0xD5, 0xBD, 0xD5, 0xBF };
+
+static const struct among a_2[40] =
+{
+{ 6, s_2_0, -1, 1, 0},
+{ 6, s_2_1, -1, 1, 0},
+{ 8, s_2_2, 1, 1, 0},
+{ 8, s_2_3, -1, 1, 0},
+{ 4, s_2_4, -1, 1, 0},
+{ 4, s_2_5, -1, 1, 0},
+{ 2, s_2_6, -1, 1, 0},
+{ 6, s_2_7, 6, 1, 0},
+{ 6, s_2_8, 6, 1, 0},
+{ 4, s_2_9, 6, 1, 0},
+{ 8, s_2_10, 9, 1, 0},
+{ 8, s_2_11, 9, 1, 0},
+{ 8, s_2_12, 6, 1, 0},
+{ 8, s_2_13, 6, 1, 0},
+{ 8, s_2_14, 6, 1, 0},
+{ 10, s_2_15, 14, 1, 0},
+{ 6, s_2_16, 6, 1, 0},
+{ 6, s_2_17, 6, 1, 0},
+{ 6, s_2_18, 6, 1, 0},
+{ 6, s_2_19, -1, 1, 0},
+{ 8, s_2_20, -1, 1, 0},
+{ 4, s_2_21, -1, 1, 0},
+{ 8, s_2_22, -1, 1, 0},
+{ 4, s_2_23, -1, 1, 0},
+{ 6, s_2_24, -1, 1, 0},
+{ 4, s_2_25, -1, 1, 0},
+{ 6, s_2_26, 25, 1, 0},
+{ 8, s_2_27, 25, 1, 0},
+{ 4, s_2_28, -1, 1, 0},
+{ 8, s_2_29, -1, 1, 0},
+{ 14, s_2_30, 29, 1, 0},
+{ 4, s_2_31, -1, 1, 0},
+{ 8, s_2_32, 31, 1, 0},
+{ 6, s_2_33, 31, 1, 0},
+{ 8, s_2_34, 31, 1, 0},
+{ 8, s_2_35, -1, 1, 0},
+{ 6, s_2_36, -1, 1, 0},
+{ 4, s_2_37, -1, 1, 0},
+{ 6, s_2_38, -1, 1, 0},
+{ 8, s_2_39, -1, 1, 0}
+};
+
+static const symbol s_3_0[4] = { 0xD5, 0xA5, 0xD6, 0x80 };
+static const symbol s_3_1[6] = { 0xD5, 0xB6, 0xD5, 0xA5, 0xD6, 0x80 };
+static const symbol s_3_2[2] = { 0xD6, 0x81 };
+static const symbol s_3_3[6] = { 0xD5, 0xB8, 0xD6, 0x82, 0xD6, 0x81 };
+static const symbol s_3_4[4] = { 0xD5, 0xAB, 0xD6, 0x81 };
+static const symbol s_3_5[8] = { 0xD5, 0xA5, 0xD6, 0x80, 0xD5, 0xAB, 0xD6, 0x81 };
+static const symbol s_3_6[10] = { 0xD5, 0xB6, 0xD5, 0xA5, 0xD6, 0x80, 0xD5, 0xAB, 0xD6, 0x81 };
+static const symbol s_3_7[6] = { 0xD6, 0x81, 0xD5, 0xAB, 0xD6, 0x81 };
+static const symbol s_3_8[10] = { 0xD5, 0xBE, 0xD5, 0xA1, 0xD5, 0xB6, 0xD5, 0xAB, 0xD6, 0x81 };
+static const symbol s_3_9[8] = { 0xD5, 0xB8, 0xD5, 0xBB, 0xD5, 0xAB, 0xD6, 0x81 };
+static const symbol s_3_10[6] = { 0xD5, 0xBE, 0xD5, 0xAB, 0xD6, 0x81 };
+static const symbol s_3_11[4] = { 0xD5, 0xB8, 0xD6, 0x81 };
+static const symbol s_3_12[4] = { 0xD5, 0xBD, 0xD5, 0xA1 };
+static const symbol s_3_13[4] = { 0xD5, 0xBE, 0xD5, 0xA1 };
+static const symbol s_3_14[6] = { 0xD5, 0xA1, 0xD5, 0xB4, 0xD5, 0xA2 };
+static const symbol s_3_15[2] = { 0xD5, 0xA4 };
+static const symbol s_3_16[6] = { 0xD5, 0xA5, 0xD6, 0x80, 0xD5, 0xA4 };
+static const symbol s_3_17[8] = { 0xD5, 0xB6, 0xD5, 0xA5, 0xD6, 0x80, 0xD5, 0xA4 };
+static const symbol s_3_18[6] = { 0xD5, 0xB8, 0xD6, 0x82, 0xD5, 0xA4 };
+static const symbol s_3_19[6] = { 0xD5, 0xA1, 0xD5, 0xB6, 0xD5, 0xA4 };
+static const symbol s_3_20[14] = { 0xD5, 0xB8, 0xD6, 0x82, 0xD5, 0xA9, 0xD5, 0xB5, 0xD5, 0xA1, 0xD5, 0xB6, 0xD5, 0xA4 };
+static const symbol s_3_21[8] = { 0xD5, 0xBE, 0xD5, 0xA1, 0xD5, 0xB6, 0xD5, 0xA4 };
+static const symbol s_3_22[6] = { 0xD5, 0xB8, 0xD5, 0xBB, 0xD5, 0xA4 };
+static const symbol s_3_23[2] = { 0xD5, 0xA8 };
+static const symbol s_3_24[6] = { 0xD5, 0xA5, 0xD6, 0x80, 0xD5, 0xA8 };
+static const symbol s_3_25[8] = { 0xD5, 0xB6, 0xD5, 0xA5, 0xD6, 0x80, 0xD5, 0xA8 };
+static const symbol s_3_26[6] = { 0xD5, 0xA1, 0xD5, 0xB6, 0xD5, 0xA8 };
+static const symbol s_3_27[14] = { 0xD5, 0xB8, 0xD6, 0x82, 0xD5, 0xA9, 0xD5, 0xB5, 0xD5, 0xA1, 0xD5, 0xB6, 0xD5, 0xA8 };
+static const symbol s_3_28[8] = { 0xD5, 0xBE, 0xD5, 0xA1, 0xD5, 0xB6, 0xD5, 0xA8 };
+static const symbol s_3_29[6] = { 0xD5, 0xB8, 0xD5, 0xBB, 0xD5, 0xA8 };
+static const symbol s_3_30[2] = { 0xD5, 0xAB };
+static const symbol s_3_31[6] = { 0xD5, 0xA5, 0xD6, 0x80, 0xD5, 0xAB };
+static const symbol s_3_32[8] = { 0xD5, 0xB6, 0xD5, 0xA5, 0xD6, 0x80, 0xD5, 0xAB };
+static const symbol s_3_33[4] = { 0xD5, 0xBE, 0xD5, 0xAB };
+static const symbol s_3_34[10] = { 0xD5, 0xA5, 0xD6, 0x80, 0xD5, 0xB8, 0xD6, 0x82, 0xD5, 0xB4 };
+static const symbol s_3_35[12] = { 0xD5, 0xB6, 0xD5, 0xA5, 0xD6, 0x80, 0xD5, 0xB8, 0xD6, 0x82, 0xD5, 0xB4 };
+static const symbol s_3_36[10] = { 0xD5, 0xA1, 0xD5, 0xB6, 0xD5, 0xB8, 0xD6, 0x82, 0xD5, 0xB4 };
+static const symbol s_3_37[2] = { 0xD5, 0xB6 };
+static const symbol s_3_38[6] = { 0xD5, 0xA5, 0xD6, 0x80, 0xD5, 0xB6 };
+static const symbol s_3_39[8] = { 0xD5, 0xB6, 0xD5, 0xA5, 0xD6, 0x80, 0xD5, 0xB6 };
+static const symbol s_3_40[6] = { 0xD5, 0xB8, 0xD6, 0x82, 0xD5, 0xB6 };
+static const symbol s_3_41[4] = { 0xD5, 0xA1, 0xD5, 0xB6 };
+static const symbol s_3_42[12] = { 0xD5, 0xB8, 0xD6, 0x82, 0xD5, 0xA9, 0xD5, 0xB5, 0xD5, 0xA1, 0xD5, 0xB6 };
+static const symbol s_3_43[6] = { 0xD5, 0xBE, 0xD5, 0xA1, 0xD5, 0xB6 };
+static const symbol s_3_44[4] = { 0xD5, 0xAB, 0xD5, 0xB6 };
+static const symbol s_3_45[8] = { 0xD5, 0xA5, 0xD6, 0x80, 0xD5, 0xAB, 0xD5, 0xB6 };
+static const symbol s_3_46[10] = { 0xD5, 0xB6, 0xD5, 0xA5, 0xD6, 0x80, 0xD5, 0xAB, 0xD5, 0xB6 };
+static const symbol s_3_47[14] = { 0xD5, 0xB8, 0xD6, 0x82, 0xD5, 0xA9, 0xD5, 0xB5, 0xD5, 0xA1, 0xD5, 0xB6, 0xD5, 0xB6 };
+static const symbol s_3_48[4] = { 0xD5, 0xB8, 0xD5, 0xBB };
+static const symbol s_3_49[14] = { 0xD5, 0xB8, 0xD6, 0x82, 0xD5, 0xA9, 0xD5, 0xB5, 0xD5, 0xA1, 0xD5, 0xB6, 0xD5, 0xBD };
+static const symbol s_3_50[8] = { 0xD5, 0xBE, 0xD5, 0xA1, 0xD5, 0xB6, 0xD5, 0xBD };
+static const symbol s_3_51[6] = { 0xD5, 0xB8, 0xD5, 0xBB, 0xD5, 0xBD };
+static const symbol s_3_52[4] = { 0xD5, 0xB8, 0xD5, 0xBE };
+static const symbol s_3_53[8] = { 0xD5, 0xA5, 0xD6, 0x80, 0xD5, 0xB8, 0xD5, 0xBE };
+static const symbol s_3_54[10] = { 0xD5, 0xB6, 0xD5, 0xA5, 0xD6, 0x80, 0xD5, 0xB8, 0xD5, 0xBE };
+static const symbol s_3_55[8] = { 0xD5, 0xA1, 0xD5, 0xB6, 0xD5, 0xB8, 0xD5, 0xBE };
+static const symbol s_3_56[6] = { 0xD5, 0xBE, 0xD5, 0xB8, 0xD5, 0xBE };
+
+static const struct among a_3[57] =
+{
+{ 4, s_3_0, -1, 1, 0},
+{ 6, s_3_1, 0, 1, 0},
+{ 2, s_3_2, -1, 1, 0},
+{ 6, s_3_3, 2, 1, 0},
+{ 4, s_3_4, 2, 1, 0},
+{ 8, s_3_5, 4, 1, 0},
+{ 10, s_3_6, 5, 1, 0},
+{ 6, s_3_7, 4, 1, 0},
+{ 10, s_3_8, 4, 1, 0},
+{ 8, s_3_9, 4, 1, 0},
+{ 6, s_3_10, 4, 1, 0},
+{ 4, s_3_11, 2, 1, 0},
+{ 4, s_3_12, -1, 1, 0},
+{ 4, s_3_13, -1, 1, 0},
+{ 6, s_3_14, -1, 1, 0},
+{ 2, s_3_15, -1, 1, 0},
+{ 6, s_3_16, 15, 1, 0},
+{ 8, s_3_17, 16, 1, 0},
+{ 6, s_3_18, 15, 1, 0},
+{ 6, s_3_19, 15, 1, 0},
+{ 14, s_3_20, 19, 1, 0},
+{ 8, s_3_21, 19, 1, 0},
+{ 6, s_3_22, 15, 1, 0},
+{ 2, s_3_23, -1, 1, 0},
+{ 6, s_3_24, 23, 1, 0},
+{ 8, s_3_25, 24, 1, 0},
+{ 6, s_3_26, 23, 1, 0},
+{ 14, s_3_27, 26, 1, 0},
+{ 8, s_3_28, 26, 1, 0},
+{ 6, s_3_29, 23, 1, 0},
+{ 2, s_3_30, -1, 1, 0},
+{ 6, s_3_31, 30, 1, 0},
+{ 8, s_3_32, 31, 1, 0},
+{ 4, s_3_33, 30, 1, 0},
+{ 10, s_3_34, -1, 1, 0},
+{ 12, s_3_35, 34, 1, 0},
+{ 10, s_3_36, -1, 1, 0},
+{ 2, s_3_37, -1, 1, 0},
+{ 6, s_3_38, 37, 1, 0},
+{ 8, s_3_39, 38, 1, 0},
+{ 6, s_3_40, 37, 1, 0},
+{ 4, s_3_41, 37, 1, 0},
+{ 12, s_3_42, 41, 1, 0},
+{ 6, s_3_43, 41, 1, 0},
+{ 4, s_3_44, 37, 1, 0},
+{ 8, s_3_45, 44, 1, 0},
+{ 10, s_3_46, 45, 1, 0},
+{ 14, s_3_47, 37, 1, 0},
+{ 4, s_3_48, -1, 1, 0},
+{ 14, s_3_49, -1, 1, 0},
+{ 8, s_3_50, -1, 1, 0},
+{ 6, s_3_51, -1, 1, 0},
+{ 4, s_3_52, -1, 1, 0},
+{ 8, s_3_53, 52, 1, 0},
+{ 10, s_3_54, 53, 1, 0},
+{ 8, s_3_55, 52, 1, 0},
+{ 6, s_3_56, 52, 1, 0}
+};
+
+static const unsigned char g_v[] = { 209, 4, 128, 0, 18 };
+
+
+static int r_mark_regions(struct SN_env * z) {
+ z->I[1] = z->l;
+ z->I[0] = z->l;
+ { int c1 = z->c;
+ {
+ int ret = out_grouping_U(z, g_v, 1377, 1413, 1);
+ if (ret < 0) goto lab0;
+ z->c += ret;
+ }
+ z->I[1] = z->c;
+ {
+ int ret = in_grouping_U(z, g_v, 1377, 1413, 1);
+ if (ret < 0) goto lab0;
+ z->c += ret;
+ }
+ {
+ int ret = out_grouping_U(z, g_v, 1377, 1413, 1);
+ if (ret < 0) goto lab0;
+ z->c += ret;
+ }
+ {
+ int ret = in_grouping_U(z, g_v, 1377, 1413, 1);
+ if (ret < 0) goto lab0;
+ z->c += ret;
+ }
+ z->I[0] = z->c;
+ lab0:
+ z->c = c1;
+ }
+ return 1;
+}
+
+static int r_R2(struct SN_env * z) {
+ if (!(z->I[0] <= z->c)) return 0;
+ return 1;
+}
+
+static int r_adjective(struct SN_env * z) {
+ z->ket = z->c;
+ if (!(find_among_b(z, a_0, 23))) return 0;
+ z->bra = z->c;
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ return 1;
+}
+
+static int r_verb(struct SN_env * z) {
+ z->ket = z->c;
+ if (!(find_among_b(z, a_1, 71))) return 0;
+ z->bra = z->c;
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ return 1;
+}
+
+static int r_noun(struct SN_env * z) {
+ z->ket = z->c;
+ if (!(find_among_b(z, a_2, 40))) return 0;
+ z->bra = z->c;
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ return 1;
+}
+
+static int r_ending(struct SN_env * z) {
+ z->ket = z->c;
+ if (!(find_among_b(z, a_3, 57))) return 0;
+ z->bra = z->c;
+ { int ret = r_R2(z);
+ if (ret <= 0) return ret;
+ }
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ return 1;
+}
+
+extern int armenian_UTF_8_stem(struct SN_env * z) {
+
+ { int ret = r_mark_regions(z);
+ if (ret < 0) return ret;
+ }
+ z->lb = z->c; z->c = z->l;
+
+
+ { int mlimit1;
+ if (z->c < z->I[1]) return 0;
+ mlimit1 = z->lb; z->lb = z->I[1];
+ { int m2 = z->l - z->c; (void)m2;
+ { int ret = r_ending(z);
+ if (ret < 0) return ret;
+ }
+ z->c = z->l - m2;
+ }
+ { int m3 = z->l - z->c; (void)m3;
+ { int ret = r_verb(z);
+ if (ret < 0) return ret;
+ }
+ z->c = z->l - m3;
+ }
+ { int m4 = z->l - z->c; (void)m4;
+ { int ret = r_adjective(z);
+ if (ret < 0) return ret;
+ }
+ z->c = z->l - m4;
+ }
+ { int m5 = z->l - z->c; (void)m5;
+ { int ret = r_noun(z);
+ if (ret < 0) return ret;
+ }
+ z->c = z->l - m5;
+ }
+ z->lb = mlimit1;
+ }
+ z->c = z->lb;
+ return 1;
+}
+
+extern struct SN_env * armenian_UTF_8_create_env(void) { return SN_create_env(0, 2); }
+
+extern void armenian_UTF_8_close_env(struct SN_env * z) { SN_close_env(z, 0); }
+
diff --git a/src/backend/snowball/libstemmer/stem_UTF_8_basque.c b/src/backend/snowball/libstemmer/stem_UTF_8_basque.c
new file mode 100644
index 0000000..03316b1
--- /dev/null
+++ b/src/backend/snowball/libstemmer/stem_UTF_8_basque.c
@@ -0,0 +1,1184 @@
+/* Generated by Snowball 2.2.0 - https://snowballstem.org/ */
+
+#include "header.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+extern int basque_UTF_8_stem(struct SN_env * z);
+#ifdef __cplusplus
+}
+#endif
+static int r_R1(struct SN_env * z);
+static int r_R2(struct SN_env * z);
+static int r_RV(struct SN_env * z);
+static int r_mark_regions(struct SN_env * z);
+static int r_adjetiboak(struct SN_env * z);
+static int r_izenak(struct SN_env * z);
+static int r_aditzak(struct SN_env * z);
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+extern struct SN_env * basque_UTF_8_create_env(void);
+extern void basque_UTF_8_close_env(struct SN_env * z);
+
+
+#ifdef __cplusplus
+}
+#endif
+static const symbol s_0_0[4] = { 'i', 'd', 'e', 'a' };
+static const symbol s_0_1[5] = { 'b', 'i', 'd', 'e', 'a' };
+static const symbol s_0_2[5] = { 'k', 'i', 'd', 'e', 'a' };
+static const symbol s_0_3[5] = { 'p', 'i', 'd', 'e', 'a' };
+static const symbol s_0_4[6] = { 'k', 'u', 'n', 'd', 'e', 'a' };
+static const symbol s_0_5[5] = { 'g', 'a', 'l', 'e', 'a' };
+static const symbol s_0_6[6] = { 't', 'a', 'i', 'l', 'e', 'a' };
+static const symbol s_0_7[7] = { 't', 'z', 'a', 'i', 'l', 'e', 'a' };
+static const symbol s_0_8[5] = { 'g', 'u', 'n', 'e', 'a' };
+static const symbol s_0_9[5] = { 'k', 'u', 'n', 'e', 'a' };
+static const symbol s_0_10[5] = { 't', 'z', 'a', 'g', 'a' };
+static const symbol s_0_11[4] = { 'g', 'a', 'i', 'a' };
+static const symbol s_0_12[5] = { 'a', 'l', 'd', 'i', 'a' };
+static const symbol s_0_13[6] = { 't', 'a', 'l', 'd', 'i', 'a' };
+static const symbol s_0_14[5] = { 'k', 'a', 'r', 'i', 'a' };
+static const symbol s_0_15[6] = { 'g', 'a', 'r', 'r', 'i', 'a' };
+static const symbol s_0_16[6] = { 'k', 'a', 'r', 'r', 'i', 'a' };
+static const symbol s_0_17[2] = { 'k', 'a' };
+static const symbol s_0_18[5] = { 't', 'z', 'a', 'k', 'a' };
+static const symbol s_0_19[2] = { 'l', 'a' };
+static const symbol s_0_20[4] = { 'm', 'e', 'n', 'a' };
+static const symbol s_0_21[4] = { 'p', 'e', 'n', 'a' };
+static const symbol s_0_22[4] = { 'k', 'i', 'n', 'a' };
+static const symbol s_0_23[5] = { 'e', 'z', 'i', 'n', 'a' };
+static const symbol s_0_24[6] = { 't', 'e', 'z', 'i', 'n', 'a' };
+static const symbol s_0_25[4] = { 'k', 'u', 'n', 'a' };
+static const symbol s_0_26[4] = { 't', 'u', 'n', 'a' };
+static const symbol s_0_27[6] = { 'k', 'i', 'z', 'u', 'n', 'a' };
+static const symbol s_0_28[3] = { 'e', 'r', 'a' };
+static const symbol s_0_29[4] = { 'b', 'e', 'r', 'a' };
+static const symbol s_0_30[7] = { 'a', 'r', 'a', 'b', 'e', 'r', 'a' };
+static const symbol s_0_31[4] = { 'k', 'e', 'r', 'a' };
+static const symbol s_0_32[4] = { 'p', 'e', 'r', 'a' };
+static const symbol s_0_33[4] = { 'o', 'r', 'r', 'a' };
+static const symbol s_0_34[5] = { 'k', 'o', 'r', 'r', 'a' };
+static const symbol s_0_35[4] = { 'd', 'u', 'r', 'a' };
+static const symbol s_0_36[4] = { 'g', 'u', 'r', 'a' };
+static const symbol s_0_37[4] = { 'k', 'u', 'r', 'a' };
+static const symbol s_0_38[4] = { 't', 'u', 'r', 'a' };
+static const symbol s_0_39[3] = { 'e', 't', 'a' };
+static const symbol s_0_40[4] = { 'k', 'e', 't', 'a' };
+static const symbol s_0_41[6] = { 'g', 'a', 'i', 'l', 'u', 'a' };
+static const symbol s_0_42[3] = { 'e', 'z', 'a' };
+static const symbol s_0_43[6] = { 'e', 'r', 'r', 'e', 'z', 'a' };
+static const symbol s_0_44[3] = { 't', 'z', 'a' };
+static const symbol s_0_45[6] = { 'g', 'a', 'i', 't', 'z', 'a' };
+static const symbol s_0_46[6] = { 'k', 'a', 'i', 't', 'z', 'a' };
+static const symbol s_0_47[6] = { 'k', 'u', 'n', 't', 'z', 'a' };
+static const symbol s_0_48[3] = { 'i', 'd', 'e' };
+static const symbol s_0_49[4] = { 'b', 'i', 'd', 'e' };
+static const symbol s_0_50[4] = { 'k', 'i', 'd', 'e' };
+static const symbol s_0_51[4] = { 'p', 'i', 'd', 'e' };
+static const symbol s_0_52[5] = { 'k', 'u', 'n', 'd', 'e' };
+static const symbol s_0_53[5] = { 't', 'z', 'a', 'k', 'e' };
+static const symbol s_0_54[5] = { 't', 'z', 'e', 'k', 'e' };
+static const symbol s_0_55[2] = { 'l', 'e' };
+static const symbol s_0_56[4] = { 'g', 'a', 'l', 'e' };
+static const symbol s_0_57[5] = { 't', 'a', 'i', 'l', 'e' };
+static const symbol s_0_58[6] = { 't', 'z', 'a', 'i', 'l', 'e' };
+static const symbol s_0_59[4] = { 'g', 'u', 'n', 'e' };
+static const symbol s_0_60[4] = { 'k', 'u', 'n', 'e' };
+static const symbol s_0_61[3] = { 't', 'z', 'e' };
+static const symbol s_0_62[4] = { 'a', 't', 'z', 'e' };
+static const symbol s_0_63[3] = { 'g', 'a', 'i' };
+static const symbol s_0_64[4] = { 'a', 'l', 'd', 'i' };
+static const symbol s_0_65[5] = { 't', 'a', 'l', 'd', 'i' };
+static const symbol s_0_66[2] = { 'k', 'i' };
+static const symbol s_0_67[3] = { 'a', 'r', 'i' };
+static const symbol s_0_68[4] = { 'k', 'a', 'r', 'i' };
+static const symbol s_0_69[4] = { 'l', 'a', 'r', 'i' };
+static const symbol s_0_70[4] = { 't', 'a', 'r', 'i' };
+static const symbol s_0_71[5] = { 'e', 't', 'a', 'r', 'i' };
+static const symbol s_0_72[5] = { 'g', 'a', 'r', 'r', 'i' };
+static const symbol s_0_73[5] = { 'k', 'a', 'r', 'r', 'i' };
+static const symbol s_0_74[5] = { 'a', 'r', 'a', 'z', 'i' };
+static const symbol s_0_75[6] = { 't', 'a', 'r', 'a', 'z', 'i' };
+static const symbol s_0_76[2] = { 'a', 'n' };
+static const symbol s_0_77[3] = { 'e', 'a', 'n' };
+static const symbol s_0_78[4] = { 'r', 'e', 'a', 'n' };
+static const symbol s_0_79[3] = { 'k', 'a', 'n' };
+static const symbol s_0_80[4] = { 'e', 't', 'a', 'n' };
+static const symbol s_0_81[7] = { 'a', 't', 's', 'e', 'd', 'e', 'n' };
+static const symbol s_0_82[3] = { 'm', 'e', 'n' };
+static const symbol s_0_83[3] = { 'p', 'e', 'n' };
+static const symbol s_0_84[3] = { 'k', 'i', 'n' };
+static const symbol s_0_85[5] = { 'r', 'e', 'k', 'i', 'n' };
+static const symbol s_0_86[4] = { 'e', 'z', 'i', 'n' };
+static const symbol s_0_87[5] = { 't', 'e', 'z', 'i', 'n' };
+static const symbol s_0_88[3] = { 't', 'u', 'n' };
+static const symbol s_0_89[5] = { 'k', 'i', 'z', 'u', 'n' };
+static const symbol s_0_90[2] = { 'g', 'o' };
+static const symbol s_0_91[3] = { 'a', 'g', 'o' };
+static const symbol s_0_92[3] = { 't', 'i', 'o' };
+static const symbol s_0_93[4] = { 'd', 'a', 'k', 'o' };
+static const symbol s_0_94[2] = { 'o', 'r' };
+static const symbol s_0_95[3] = { 'k', 'o', 'r' };
+static const symbol s_0_96[4] = { 't', 'z', 'a', 't' };
+static const symbol s_0_97[2] = { 'd', 'u' };
+static const symbol s_0_98[5] = { 'g', 'a', 'i', 'l', 'u' };
+static const symbol s_0_99[2] = { 't', 'u' };
+static const symbol s_0_100[3] = { 'a', 't', 'u' };
+static const symbol s_0_101[6] = { 'a', 'l', 'd', 'a', 't', 'u' };
+static const symbol s_0_102[4] = { 't', 'a', 't', 'u' };
+static const symbol s_0_103[6] = { 'b', 'a', 'd', 'i', 't', 'u' };
+static const symbol s_0_104[2] = { 'e', 'z' };
+static const symbol s_0_105[5] = { 'e', 'r', 'r', 'e', 'z' };
+static const symbol s_0_106[4] = { 't', 'z', 'e', 'z' };
+static const symbol s_0_107[5] = { 'g', 'a', 'i', 't', 'z' };
+static const symbol s_0_108[5] = { 'k', 'a', 'i', 't', 'z' };
+
+static const struct among a_0[109] =
+{
+{ 4, s_0_0, -1, 1, 0},
+{ 5, s_0_1, 0, 1, 0},
+{ 5, s_0_2, 0, 1, 0},
+{ 5, s_0_3, 0, 1, 0},
+{ 6, s_0_4, -1, 1, 0},
+{ 5, s_0_5, -1, 1, 0},
+{ 6, s_0_6, -1, 1, 0},
+{ 7, s_0_7, -1, 1, 0},
+{ 5, s_0_8, -1, 1, 0},
+{ 5, s_0_9, -1, 1, 0},
+{ 5, s_0_10, -1, 1, 0},
+{ 4, s_0_11, -1, 1, 0},
+{ 5, s_0_12, -1, 1, 0},
+{ 6, s_0_13, 12, 1, 0},
+{ 5, s_0_14, -1, 1, 0},
+{ 6, s_0_15, -1, 2, 0},
+{ 6, s_0_16, -1, 1, 0},
+{ 2, s_0_17, -1, 1, 0},
+{ 5, s_0_18, 17, 1, 0},
+{ 2, s_0_19, -1, 1, 0},
+{ 4, s_0_20, -1, 1, 0},
+{ 4, s_0_21, -1, 1, 0},
+{ 4, s_0_22, -1, 1, 0},
+{ 5, s_0_23, -1, 1, 0},
+{ 6, s_0_24, 23, 1, 0},
+{ 4, s_0_25, -1, 1, 0},
+{ 4, s_0_26, -1, 1, 0},
+{ 6, s_0_27, -1, 1, 0},
+{ 3, s_0_28, -1, 1, 0},
+{ 4, s_0_29, 28, 1, 0},
+{ 7, s_0_30, 29, 4, 0},
+{ 4, s_0_31, 28, 1, 0},
+{ 4, s_0_32, 28, 1, 0},
+{ 4, s_0_33, -1, 1, 0},
+{ 5, s_0_34, 33, 1, 0},
+{ 4, s_0_35, -1, 1, 0},
+{ 4, s_0_36, -1, 1, 0},
+{ 4, s_0_37, -1, 1, 0},
+{ 4, s_0_38, -1, 1, 0},
+{ 3, s_0_39, -1, 1, 0},
+{ 4, s_0_40, 39, 1, 0},
+{ 6, s_0_41, -1, 1, 0},
+{ 3, s_0_42, -1, 1, 0},
+{ 6, s_0_43, 42, 1, 0},
+{ 3, s_0_44, -1, 2, 0},
+{ 6, s_0_45, 44, 1, 0},
+{ 6, s_0_46, 44, 1, 0},
+{ 6, s_0_47, 44, 1, 0},
+{ 3, s_0_48, -1, 1, 0},
+{ 4, s_0_49, 48, 1, 0},
+{ 4, s_0_50, 48, 1, 0},
+{ 4, s_0_51, 48, 1, 0},
+{ 5, s_0_52, -1, 1, 0},
+{ 5, s_0_53, -1, 1, 0},
+{ 5, s_0_54, -1, 1, 0},
+{ 2, s_0_55, -1, 1, 0},
+{ 4, s_0_56, 55, 1, 0},
+{ 5, s_0_57, 55, 1, 0},
+{ 6, s_0_58, 55, 1, 0},
+{ 4, s_0_59, -1, 1, 0},
+{ 4, s_0_60, -1, 1, 0},
+{ 3, s_0_61, -1, 1, 0},
+{ 4, s_0_62, 61, 1, 0},
+{ 3, s_0_63, -1, 1, 0},
+{ 4, s_0_64, -1, 1, 0},
+{ 5, s_0_65, 64, 1, 0},
+{ 2, s_0_66, -1, 1, 0},
+{ 3, s_0_67, -1, 1, 0},
+{ 4, s_0_68, 67, 1, 0},
+{ 4, s_0_69, 67, 1, 0},
+{ 4, s_0_70, 67, 1, 0},
+{ 5, s_0_71, 70, 1, 0},
+{ 5, s_0_72, -1, 2, 0},
+{ 5, s_0_73, -1, 1, 0},
+{ 5, s_0_74, -1, 1, 0},
+{ 6, s_0_75, 74, 1, 0},
+{ 2, s_0_76, -1, 1, 0},
+{ 3, s_0_77, 76, 1, 0},
+{ 4, s_0_78, 77, 1, 0},
+{ 3, s_0_79, 76, 1, 0},
+{ 4, s_0_80, 76, 1, 0},
+{ 7, s_0_81, -1, 3, 0},
+{ 3, s_0_82, -1, 1, 0},
+{ 3, s_0_83, -1, 1, 0},
+{ 3, s_0_84, -1, 1, 0},
+{ 5, s_0_85, 84, 1, 0},
+{ 4, s_0_86, -1, 1, 0},
+{ 5, s_0_87, 86, 1, 0},
+{ 3, s_0_88, -1, 1, 0},
+{ 5, s_0_89, -1, 1, 0},
+{ 2, s_0_90, -1, 1, 0},
+{ 3, s_0_91, 90, 1, 0},
+{ 3, s_0_92, -1, 1, 0},
+{ 4, s_0_93, -1, 1, 0},
+{ 2, s_0_94, -1, 1, 0},
+{ 3, s_0_95, 94, 1, 0},
+{ 4, s_0_96, -1, 1, 0},
+{ 2, s_0_97, -1, 1, 0},
+{ 5, s_0_98, -1, 1, 0},
+{ 2, s_0_99, -1, 1, 0},
+{ 3, s_0_100, 99, 1, 0},
+{ 6, s_0_101, 100, 1, 0},
+{ 4, s_0_102, 100, 1, 0},
+{ 6, s_0_103, 99, 5, 0},
+{ 2, s_0_104, -1, 1, 0},
+{ 5, s_0_105, 104, 1, 0},
+{ 4, s_0_106, 104, 1, 0},
+{ 5, s_0_107, -1, 1, 0},
+{ 5, s_0_108, -1, 1, 0}
+};
+
+static const symbol s_1_0[3] = { 'a', 'd', 'a' };
+static const symbol s_1_1[4] = { 'k', 'a', 'd', 'a' };
+static const symbol s_1_2[4] = { 'a', 'n', 'd', 'a' };
+static const symbol s_1_3[5] = { 'd', 'e', 'n', 'd', 'a' };
+static const symbol s_1_4[5] = { 'g', 'a', 'b', 'e', 'a' };
+static const symbol s_1_5[5] = { 'k', 'a', 'b', 'e', 'a' };
+static const symbol s_1_6[5] = { 'a', 'l', 'd', 'e', 'a' };
+static const symbol s_1_7[6] = { 'k', 'a', 'l', 'd', 'e', 'a' };
+static const symbol s_1_8[6] = { 't', 'a', 'l', 'd', 'e', 'a' };
+static const symbol s_1_9[5] = { 'o', 'r', 'd', 'e', 'a' };
+static const symbol s_1_10[5] = { 'z', 'a', 'l', 'e', 'a' };
+static const symbol s_1_11[6] = { 't', 'z', 'a', 'l', 'e', 'a' };
+static const symbol s_1_12[5] = { 'g', 'i', 'l', 'e', 'a' };
+static const symbol s_1_13[4] = { 'e', 'm', 'e', 'a' };
+static const symbol s_1_14[5] = { 'k', 'u', 'm', 'e', 'a' };
+static const symbol s_1_15[3] = { 'n', 'e', 'a' };
+static const symbol s_1_16[4] = { 'e', 'n', 'e', 'a' };
+static const symbol s_1_17[6] = { 'z', 'i', 'o', 'n', 'e', 'a' };
+static const symbol s_1_18[4] = { 'u', 'n', 'e', 'a' };
+static const symbol s_1_19[5] = { 'g', 'u', 'n', 'e', 'a' };
+static const symbol s_1_20[3] = { 'p', 'e', 'a' };
+static const symbol s_1_21[6] = { 'a', 'u', 'r', 'r', 'e', 'a' };
+static const symbol s_1_22[3] = { 't', 'e', 'a' };
+static const symbol s_1_23[5] = { 'k', 'o', 't', 'e', 'a' };
+static const symbol s_1_24[5] = { 'a', 'r', 't', 'e', 'a' };
+static const symbol s_1_25[5] = { 'o', 's', 't', 'e', 'a' };
+static const symbol s_1_26[5] = { 'e', 't', 'x', 'e', 'a' };
+static const symbol s_1_27[2] = { 'g', 'a' };
+static const symbol s_1_28[4] = { 'a', 'n', 'g', 'a' };
+static const symbol s_1_29[4] = { 'g', 'a', 'i', 'a' };
+static const symbol s_1_30[5] = { 'a', 'l', 'd', 'i', 'a' };
+static const symbol s_1_31[6] = { 't', 'a', 'l', 'd', 'i', 'a' };
+static const symbol s_1_32[6] = { 'h', 'a', 'n', 'd', 'i', 'a' };
+static const symbol s_1_33[6] = { 'm', 'e', 'n', 'd', 'i', 'a' };
+static const symbol s_1_34[4] = { 'g', 'e', 'i', 'a' };
+static const symbol s_1_35[4] = { 'e', 'g', 'i', 'a' };
+static const symbol s_1_36[5] = { 'd', 'e', 'g', 'i', 'a' };
+static const symbol s_1_37[5] = { 't', 'e', 'g', 'i', 'a' };
+static const symbol s_1_38[5] = { 'n', 'a', 'h', 'i', 'a' };
+static const symbol s_1_39[4] = { 'o', 'h', 'i', 'a' };
+static const symbol s_1_40[3] = { 'k', 'i', 'a' };
+static const symbol s_1_41[5] = { 't', 'o', 'k', 'i', 'a' };
+static const symbol s_1_42[3] = { 'o', 'i', 'a' };
+static const symbol s_1_43[4] = { 'k', 'o', 'i', 'a' };
+static const symbol s_1_44[4] = { 'a', 'r', 'i', 'a' };
+static const symbol s_1_45[5] = { 'k', 'a', 'r', 'i', 'a' };
+static const symbol s_1_46[5] = { 'l', 'a', 'r', 'i', 'a' };
+static const symbol s_1_47[5] = { 't', 'a', 'r', 'i', 'a' };
+static const symbol s_1_48[4] = { 'e', 'r', 'i', 'a' };
+static const symbol s_1_49[5] = { 'k', 'e', 'r', 'i', 'a' };
+static const symbol s_1_50[5] = { 't', 'e', 'r', 'i', 'a' };
+static const symbol s_1_51[6] = { 'g', 'a', 'r', 'r', 'i', 'a' };
+static const symbol s_1_52[6] = { 'l', 'a', 'r', 'r', 'i', 'a' };
+static const symbol s_1_53[6] = { 'k', 'i', 'r', 'r', 'i', 'a' };
+static const symbol s_1_54[5] = { 'd', 'u', 'r', 'i', 'a' };
+static const symbol s_1_55[4] = { 'a', 's', 'i', 'a' };
+static const symbol s_1_56[3] = { 't', 'i', 'a' };
+static const symbol s_1_57[4] = { 'e', 'z', 'i', 'a' };
+static const symbol s_1_58[5] = { 'b', 'i', 'z', 'i', 'a' };
+static const symbol s_1_59[6] = { 'o', 'n', 't', 'z', 'i', 'a' };
+static const symbol s_1_60[2] = { 'k', 'a' };
+static const symbol s_1_61[4] = { 'j', 'o', 'k', 'a' };
+static const symbol s_1_62[5] = { 'a', 'u', 'r', 'k', 'a' };
+static const symbol s_1_63[3] = { 's', 'k', 'a' };
+static const symbol s_1_64[3] = { 'x', 'k', 'a' };
+static const symbol s_1_65[3] = { 'z', 'k', 'a' };
+static const symbol s_1_66[6] = { 'g', 'i', 'b', 'e', 'l', 'a' };
+static const symbol s_1_67[4] = { 'g', 'e', 'l', 'a' };
+static const symbol s_1_68[5] = { 'k', 'a', 'i', 'l', 'a' };
+static const symbol s_1_69[5] = { 's', 'k', 'i', 'l', 'a' };
+static const symbol s_1_70[4] = { 't', 'i', 'l', 'a' };
+static const symbol s_1_71[3] = { 'o', 'l', 'a' };
+static const symbol s_1_72[2] = { 'n', 'a' };
+static const symbol s_1_73[4] = { 'k', 'a', 'n', 'a' };
+static const symbol s_1_74[3] = { 'e', 'n', 'a' };
+static const symbol s_1_75[7] = { 'g', 'a', 'r', 'r', 'e', 'n', 'a' };
+static const symbol s_1_76[7] = { 'g', 'e', 'r', 'r', 'e', 'n', 'a' };
+static const symbol s_1_77[6] = { 'u', 'r', 'r', 'e', 'n', 'a' };
+static const symbol s_1_78[5] = { 'z', 'a', 'i', 'n', 'a' };
+static const symbol s_1_79[6] = { 't', 'z', 'a', 'i', 'n', 'a' };
+static const symbol s_1_80[4] = { 'k', 'i', 'n', 'a' };
+static const symbol s_1_81[4] = { 'm', 'i', 'n', 'a' };
+static const symbol s_1_82[5] = { 'g', 'a', 'r', 'n', 'a' };
+static const symbol s_1_83[3] = { 'u', 'n', 'a' };
+static const symbol s_1_84[4] = { 'd', 'u', 'n', 'a' };
+static const symbol s_1_85[5] = { 'a', 's', 'u', 'n', 'a' };
+static const symbol s_1_86[6] = { 't', 'a', 's', 'u', 'n', 'a' };
+static const symbol s_1_87[5] = { 'o', 'n', 'd', 'o', 'a' };
+static const symbol s_1_88[6] = { 'k', 'o', 'n', 'd', 'o', 'a' };
+static const symbol s_1_89[4] = { 'n', 'g', 'o', 'a' };
+static const symbol s_1_90[4] = { 'z', 'i', 'o', 'a' };
+static const symbol s_1_91[3] = { 'k', 'o', 'a' };
+static const symbol s_1_92[5] = { 't', 'a', 'k', 'o', 'a' };
+static const symbol s_1_93[4] = { 'z', 'k', 'o', 'a' };
+static const symbol s_1_94[3] = { 'n', 'o', 'a' };
+static const symbol s_1_95[5] = { 'z', 'i', 'n', 'o', 'a' };
+static const symbol s_1_96[4] = { 'a', 'r', 'o', 'a' };
+static const symbol s_1_97[5] = { 't', 'a', 'r', 'o', 'a' };
+static const symbol s_1_98[5] = { 'z', 'a', 'r', 'o', 'a' };
+static const symbol s_1_99[4] = { 'e', 'r', 'o', 'a' };
+static const symbol s_1_100[4] = { 'o', 'r', 'o', 'a' };
+static const symbol s_1_101[4] = { 'o', 's', 'o', 'a' };
+static const symbol s_1_102[3] = { 't', 'o', 'a' };
+static const symbol s_1_103[4] = { 't', 't', 'o', 'a' };
+static const symbol s_1_104[4] = { 'z', 't', 'o', 'a' };
+static const symbol s_1_105[4] = { 't', 'x', 'o', 'a' };
+static const symbol s_1_106[4] = { 't', 'z', 'o', 'a' };
+static const symbol s_1_107[4] = { 0xC3, 0xB1, 'o', 'a' };
+static const symbol s_1_108[2] = { 'r', 'a' };
+static const symbol s_1_109[3] = { 'a', 'r', 'a' };
+static const symbol s_1_110[4] = { 'd', 'a', 'r', 'a' };
+static const symbol s_1_111[5] = { 'l', 'i', 'a', 'r', 'a' };
+static const symbol s_1_112[5] = { 't', 'i', 'a', 'r', 'a' };
+static const symbol s_1_113[4] = { 't', 'a', 'r', 'a' };
+static const symbol s_1_114[5] = { 'e', 't', 'a', 'r', 'a' };
+static const symbol s_1_115[5] = { 't', 'z', 'a', 'r', 'a' };
+static const symbol s_1_116[4] = { 'b', 'e', 'r', 'a' };
+static const symbol s_1_117[4] = { 'k', 'e', 'r', 'a' };
+static const symbol s_1_118[4] = { 'p', 'e', 'r', 'a' };
+static const symbol s_1_119[3] = { 'o', 'r', 'a' };
+static const symbol s_1_120[6] = { 't', 'z', 'a', 'r', 'r', 'a' };
+static const symbol s_1_121[5] = { 'k', 'o', 'r', 'r', 'a' };
+static const symbol s_1_122[3] = { 't', 'r', 'a' };
+static const symbol s_1_123[2] = { 's', 'a' };
+static const symbol s_1_124[3] = { 'o', 's', 'a' };
+static const symbol s_1_125[2] = { 't', 'a' };
+static const symbol s_1_126[3] = { 'e', 't', 'a' };
+static const symbol s_1_127[4] = { 'k', 'e', 't', 'a' };
+static const symbol s_1_128[3] = { 's', 't', 'a' };
+static const symbol s_1_129[3] = { 'd', 'u', 'a' };
+static const symbol s_1_130[6] = { 'm', 'e', 'n', 'd', 'u', 'a' };
+static const symbol s_1_131[5] = { 'o', 'r', 'd', 'u', 'a' };
+static const symbol s_1_132[5] = { 'l', 'e', 'k', 'u', 'a' };
+static const symbol s_1_133[5] = { 'b', 'u', 'r', 'u', 'a' };
+static const symbol s_1_134[5] = { 'd', 'u', 'r', 'u', 'a' };
+static const symbol s_1_135[4] = { 't', 's', 'u', 'a' };
+static const symbol s_1_136[3] = { 't', 'u', 'a' };
+static const symbol s_1_137[6] = { 'm', 'e', 'n', 't', 'u', 'a' };
+static const symbol s_1_138[5] = { 'e', 's', 't', 'u', 'a' };
+static const symbol s_1_139[4] = { 't', 'x', 'u', 'a' };
+static const symbol s_1_140[3] = { 'z', 'u', 'a' };
+static const symbol s_1_141[4] = { 't', 'z', 'u', 'a' };
+static const symbol s_1_142[2] = { 'z', 'a' };
+static const symbol s_1_143[3] = { 'e', 'z', 'a' };
+static const symbol s_1_144[5] = { 'e', 'r', 'o', 'z', 'a' };
+static const symbol s_1_145[3] = { 't', 'z', 'a' };
+static const symbol s_1_146[6] = { 'k', 'o', 'i', 't', 'z', 'a' };
+static const symbol s_1_147[5] = { 'a', 'n', 't', 'z', 'a' };
+static const symbol s_1_148[6] = { 'g', 'i', 'n', 't', 'z', 'a' };
+static const symbol s_1_149[6] = { 'k', 'i', 'n', 't', 'z', 'a' };
+static const symbol s_1_150[6] = { 'k', 'u', 'n', 't', 'z', 'a' };
+static const symbol s_1_151[4] = { 'g', 'a', 'b', 'e' };
+static const symbol s_1_152[4] = { 'k', 'a', 'b', 'e' };
+static const symbol s_1_153[4] = { 'k', 'i', 'd', 'e' };
+static const symbol s_1_154[4] = { 'a', 'l', 'd', 'e' };
+static const symbol s_1_155[5] = { 'k', 'a', 'l', 'd', 'e' };
+static const symbol s_1_156[5] = { 't', 'a', 'l', 'd', 'e' };
+static const symbol s_1_157[4] = { 'o', 'r', 'd', 'e' };
+static const symbol s_1_158[2] = { 'g', 'e' };
+static const symbol s_1_159[4] = { 'z', 'a', 'l', 'e' };
+static const symbol s_1_160[5] = { 't', 'z', 'a', 'l', 'e' };
+static const symbol s_1_161[4] = { 'g', 'i', 'l', 'e' };
+static const symbol s_1_162[3] = { 'e', 'm', 'e' };
+static const symbol s_1_163[4] = { 'k', 'u', 'm', 'e' };
+static const symbol s_1_164[2] = { 'n', 'e' };
+static const symbol s_1_165[5] = { 'z', 'i', 'o', 'n', 'e' };
+static const symbol s_1_166[3] = { 'u', 'n', 'e' };
+static const symbol s_1_167[4] = { 'g', 'u', 'n', 'e' };
+static const symbol s_1_168[2] = { 'p', 'e' };
+static const symbol s_1_169[5] = { 'a', 'u', 'r', 'r', 'e' };
+static const symbol s_1_170[2] = { 't', 'e' };
+static const symbol s_1_171[4] = { 'k', 'o', 't', 'e' };
+static const symbol s_1_172[4] = { 'a', 'r', 't', 'e' };
+static const symbol s_1_173[4] = { 'o', 's', 't', 'e' };
+static const symbol s_1_174[4] = { 'e', 't', 'x', 'e' };
+static const symbol s_1_175[3] = { 'g', 'a', 'i' };
+static const symbol s_1_176[2] = { 'd', 'i' };
+static const symbol s_1_177[4] = { 'a', 'l', 'd', 'i' };
+static const symbol s_1_178[5] = { 't', 'a', 'l', 'd', 'i' };
+static const symbol s_1_179[5] = { 'g', 'e', 'l', 'd', 'i' };
+static const symbol s_1_180[5] = { 'h', 'a', 'n', 'd', 'i' };
+static const symbol s_1_181[5] = { 'm', 'e', 'n', 'd', 'i' };
+static const symbol s_1_182[3] = { 'g', 'e', 'i' };
+static const symbol s_1_183[3] = { 'e', 'g', 'i' };
+static const symbol s_1_184[4] = { 'd', 'e', 'g', 'i' };
+static const symbol s_1_185[4] = { 't', 'e', 'g', 'i' };
+static const symbol s_1_186[4] = { 'n', 'a', 'h', 'i' };
+static const symbol s_1_187[3] = { 'o', 'h', 'i' };
+static const symbol s_1_188[2] = { 'k', 'i' };
+static const symbol s_1_189[4] = { 't', 'o', 'k', 'i' };
+static const symbol s_1_190[2] = { 'o', 'i' };
+static const symbol s_1_191[3] = { 'g', 'o', 'i' };
+static const symbol s_1_192[3] = { 'k', 'o', 'i' };
+static const symbol s_1_193[3] = { 'a', 'r', 'i' };
+static const symbol s_1_194[4] = { 'k', 'a', 'r', 'i' };
+static const symbol s_1_195[4] = { 'l', 'a', 'r', 'i' };
+static const symbol s_1_196[4] = { 't', 'a', 'r', 'i' };
+static const symbol s_1_197[5] = { 'g', 'a', 'r', 'r', 'i' };
+static const symbol s_1_198[5] = { 'l', 'a', 'r', 'r', 'i' };
+static const symbol s_1_199[5] = { 'k', 'i', 'r', 'r', 'i' };
+static const symbol s_1_200[4] = { 'd', 'u', 'r', 'i' };
+static const symbol s_1_201[3] = { 'a', 's', 'i' };
+static const symbol s_1_202[2] = { 't', 'i' };
+static const symbol s_1_203[5] = { 'o', 'n', 't', 'z', 'i' };
+static const symbol s_1_204[3] = { 0xC3, 0xB1, 'i' };
+static const symbol s_1_205[2] = { 'a', 'k' };
+static const symbol s_1_206[2] = { 'e', 'k' };
+static const symbol s_1_207[5] = { 't', 'a', 'r', 'i', 'k' };
+static const symbol s_1_208[5] = { 'g', 'i', 'b', 'e', 'l' };
+static const symbol s_1_209[3] = { 'a', 'i', 'l' };
+static const symbol s_1_210[4] = { 'k', 'a', 'i', 'l' };
+static const symbol s_1_211[3] = { 'k', 'a', 'n' };
+static const symbol s_1_212[3] = { 't', 'a', 'n' };
+static const symbol s_1_213[4] = { 'e', 't', 'a', 'n' };
+static const symbol s_1_214[2] = { 'e', 'n' };
+static const symbol s_1_215[3] = { 'r', 'e', 'n' };
+static const symbol s_1_216[6] = { 'g', 'a', 'r', 'r', 'e', 'n' };
+static const symbol s_1_217[6] = { 'g', 'e', 'r', 'r', 'e', 'n' };
+static const symbol s_1_218[5] = { 'u', 'r', 'r', 'e', 'n' };
+static const symbol s_1_219[3] = { 't', 'e', 'n' };
+static const symbol s_1_220[4] = { 't', 'z', 'e', 'n' };
+static const symbol s_1_221[4] = { 'z', 'a', 'i', 'n' };
+static const symbol s_1_222[5] = { 't', 'z', 'a', 'i', 'n' };
+static const symbol s_1_223[3] = { 'k', 'i', 'n' };
+static const symbol s_1_224[3] = { 'm', 'i', 'n' };
+static const symbol s_1_225[3] = { 'd', 'u', 'n' };
+static const symbol s_1_226[4] = { 'a', 's', 'u', 'n' };
+static const symbol s_1_227[5] = { 't', 'a', 's', 'u', 'n' };
+static const symbol s_1_228[5] = { 'a', 'i', 'z', 'u', 'n' };
+static const symbol s_1_229[4] = { 'o', 'n', 'd', 'o' };
+static const symbol s_1_230[5] = { 'k', 'o', 'n', 'd', 'o' };
+static const symbol s_1_231[2] = { 'g', 'o' };
+static const symbol s_1_232[3] = { 'n', 'g', 'o' };
+static const symbol s_1_233[3] = { 'z', 'i', 'o' };
+static const symbol s_1_234[2] = { 'k', 'o' };
+static const symbol s_1_235[5] = { 't', 'r', 'a', 'k', 'o' };
+static const symbol s_1_236[4] = { 't', 'a', 'k', 'o' };
+static const symbol s_1_237[5] = { 'e', 't', 'a', 'k', 'o' };
+static const symbol s_1_238[3] = { 'e', 'k', 'o' };
+static const symbol s_1_239[6] = { 't', 'a', 'r', 'i', 'k', 'o' };
+static const symbol s_1_240[3] = { 's', 'k', 'o' };
+static const symbol s_1_241[4] = { 't', 'u', 'k', 'o' };
+static const symbol s_1_242[8] = { 'm', 'i', 'n', 'u', 't', 'u', 'k', 'o' };
+static const symbol s_1_243[3] = { 'z', 'k', 'o' };
+static const symbol s_1_244[2] = { 'n', 'o' };
+static const symbol s_1_245[4] = { 'z', 'i', 'n', 'o' };
+static const symbol s_1_246[2] = { 'r', 'o' };
+static const symbol s_1_247[3] = { 'a', 'r', 'o' };
+static const symbol s_1_248[5] = { 'i', 'g', 'a', 'r', 'o' };
+static const symbol s_1_249[4] = { 't', 'a', 'r', 'o' };
+static const symbol s_1_250[4] = { 'z', 'a', 'r', 'o' };
+static const symbol s_1_251[3] = { 'e', 'r', 'o' };
+static const symbol s_1_252[4] = { 'g', 'i', 'r', 'o' };
+static const symbol s_1_253[3] = { 'o', 'r', 'o' };
+static const symbol s_1_254[3] = { 'o', 's', 'o' };
+static const symbol s_1_255[2] = { 't', 'o' };
+static const symbol s_1_256[3] = { 't', 't', 'o' };
+static const symbol s_1_257[3] = { 'z', 't', 'o' };
+static const symbol s_1_258[3] = { 't', 'x', 'o' };
+static const symbol s_1_259[3] = { 't', 'z', 'o' };
+static const symbol s_1_260[6] = { 'g', 'i', 'n', 't', 'z', 'o' };
+static const symbol s_1_261[3] = { 0xC3, 0xB1, 'o' };
+static const symbol s_1_262[2] = { 'z', 'p' };
+static const symbol s_1_263[2] = { 'a', 'r' };
+static const symbol s_1_264[3] = { 'd', 'a', 'r' };
+static const symbol s_1_265[5] = { 'b', 'e', 'h', 'a', 'r' };
+static const symbol s_1_266[5] = { 'z', 'e', 'h', 'a', 'r' };
+static const symbol s_1_267[4] = { 'l', 'i', 'a', 'r' };
+static const symbol s_1_268[4] = { 't', 'i', 'a', 'r' };
+static const symbol s_1_269[3] = { 't', 'a', 'r' };
+static const symbol s_1_270[4] = { 't', 'z', 'a', 'r' };
+static const symbol s_1_271[2] = { 'o', 'r' };
+static const symbol s_1_272[3] = { 'k', 'o', 'r' };
+static const symbol s_1_273[2] = { 'o', 's' };
+static const symbol s_1_274[3] = { 'k', 'e', 't' };
+static const symbol s_1_275[2] = { 'd', 'u' };
+static const symbol s_1_276[5] = { 'm', 'e', 'n', 'd', 'u' };
+static const symbol s_1_277[4] = { 'o', 'r', 'd', 'u' };
+static const symbol s_1_278[4] = { 'l', 'e', 'k', 'u' };
+static const symbol s_1_279[4] = { 'b', 'u', 'r', 'u' };
+static const symbol s_1_280[4] = { 'd', 'u', 'r', 'u' };
+static const symbol s_1_281[3] = { 't', 's', 'u' };
+static const symbol s_1_282[2] = { 't', 'u' };
+static const symbol s_1_283[4] = { 't', 'a', 't', 'u' };
+static const symbol s_1_284[5] = { 'm', 'e', 'n', 't', 'u' };
+static const symbol s_1_285[4] = { 'e', 's', 't', 'u' };
+static const symbol s_1_286[3] = { 't', 'x', 'u' };
+static const symbol s_1_287[2] = { 'z', 'u' };
+static const symbol s_1_288[3] = { 't', 'z', 'u' };
+static const symbol s_1_289[6] = { 'g', 'i', 'n', 't', 'z', 'u' };
+static const symbol s_1_290[1] = { 'z' };
+static const symbol s_1_291[2] = { 'e', 'z' };
+static const symbol s_1_292[4] = { 'e', 'r', 'o', 'z' };
+static const symbol s_1_293[2] = { 't', 'z' };
+static const symbol s_1_294[5] = { 'k', 'o', 'i', 't', 'z' };
+
+static const struct among a_1[295] =
+{
+{ 3, s_1_0, -1, 1, 0},
+{ 4, s_1_1, 0, 1, 0},
+{ 4, s_1_2, -1, 1, 0},
+{ 5, s_1_3, -1, 1, 0},
+{ 5, s_1_4, -1, 1, 0},
+{ 5, s_1_5, -1, 1, 0},
+{ 5, s_1_6, -1, 1, 0},
+{ 6, s_1_7, 6, 1, 0},
+{ 6, s_1_8, 6, 1, 0},
+{ 5, s_1_9, -1, 1, 0},
+{ 5, s_1_10, -1, 1, 0},
+{ 6, s_1_11, 10, 1, 0},
+{ 5, s_1_12, -1, 1, 0},
+{ 4, s_1_13, -1, 1, 0},
+{ 5, s_1_14, -1, 1, 0},
+{ 3, s_1_15, -1, 1, 0},
+{ 4, s_1_16, 15, 1, 0},
+{ 6, s_1_17, 15, 1, 0},
+{ 4, s_1_18, 15, 1, 0},
+{ 5, s_1_19, 18, 1, 0},
+{ 3, s_1_20, -1, 1, 0},
+{ 6, s_1_21, -1, 1, 0},
+{ 3, s_1_22, -1, 1, 0},
+{ 5, s_1_23, 22, 1, 0},
+{ 5, s_1_24, 22, 1, 0},
+{ 5, s_1_25, 22, 1, 0},
+{ 5, s_1_26, -1, 1, 0},
+{ 2, s_1_27, -1, 1, 0},
+{ 4, s_1_28, 27, 1, 0},
+{ 4, s_1_29, -1, 1, 0},
+{ 5, s_1_30, -1, 1, 0},
+{ 6, s_1_31, 30, 1, 0},
+{ 6, s_1_32, -1, 1, 0},
+{ 6, s_1_33, -1, 1, 0},
+{ 4, s_1_34, -1, 1, 0},
+{ 4, s_1_35, -1, 1, 0},
+{ 5, s_1_36, 35, 1, 0},
+{ 5, s_1_37, 35, 1, 0},
+{ 5, s_1_38, -1, 1, 0},
+{ 4, s_1_39, -1, 1, 0},
+{ 3, s_1_40, -1, 1, 0},
+{ 5, s_1_41, 40, 1, 0},
+{ 3, s_1_42, -1, 1, 0},
+{ 4, s_1_43, 42, 1, 0},
+{ 4, s_1_44, -1, 1, 0},
+{ 5, s_1_45, 44, 1, 0},
+{ 5, s_1_46, 44, 1, 0},
+{ 5, s_1_47, 44, 1, 0},
+{ 4, s_1_48, -1, 1, 0},
+{ 5, s_1_49, 48, 1, 0},
+{ 5, s_1_50, 48, 1, 0},
+{ 6, s_1_51, -1, 2, 0},
+{ 6, s_1_52, -1, 1, 0},
+{ 6, s_1_53, -1, 1, 0},
+{ 5, s_1_54, -1, 1, 0},
+{ 4, s_1_55, -1, 1, 0},
+{ 3, s_1_56, -1, 1, 0},
+{ 4, s_1_57, -1, 1, 0},
+{ 5, s_1_58, -1, 1, 0},
+{ 6, s_1_59, -1, 1, 0},
+{ 2, s_1_60, -1, 1, 0},
+{ 4, s_1_61, 60, 3, 0},
+{ 5, s_1_62, 60, 10, 0},
+{ 3, s_1_63, 60, 1, 0},
+{ 3, s_1_64, 60, 1, 0},
+{ 3, s_1_65, 60, 1, 0},
+{ 6, s_1_66, -1, 1, 0},
+{ 4, s_1_67, -1, 1, 0},
+{ 5, s_1_68, -1, 1, 0},
+{ 5, s_1_69, -1, 1, 0},
+{ 4, s_1_70, -1, 1, 0},
+{ 3, s_1_71, -1, 1, 0},
+{ 2, s_1_72, -1, 1, 0},
+{ 4, s_1_73, 72, 1, 0},
+{ 3, s_1_74, 72, 1, 0},
+{ 7, s_1_75, 74, 1, 0},
+{ 7, s_1_76, 74, 1, 0},
+{ 6, s_1_77, 74, 1, 0},
+{ 5, s_1_78, 72, 1, 0},
+{ 6, s_1_79, 78, 1, 0},
+{ 4, s_1_80, 72, 1, 0},
+{ 4, s_1_81, 72, 1, 0},
+{ 5, s_1_82, 72, 1, 0},
+{ 3, s_1_83, 72, 1, 0},
+{ 4, s_1_84, 83, 1, 0},
+{ 5, s_1_85, 83, 1, 0},
+{ 6, s_1_86, 85, 1, 0},
+{ 5, s_1_87, -1, 1, 0},
+{ 6, s_1_88, 87, 1, 0},
+{ 4, s_1_89, -1, 1, 0},
+{ 4, s_1_90, -1, 1, 0},
+{ 3, s_1_91, -1, 1, 0},
+{ 5, s_1_92, 91, 1, 0},
+{ 4, s_1_93, 91, 1, 0},
+{ 3, s_1_94, -1, 1, 0},
+{ 5, s_1_95, 94, 1, 0},
+{ 4, s_1_96, -1, 1, 0},
+{ 5, s_1_97, 96, 1, 0},
+{ 5, s_1_98, 96, 1, 0},
+{ 4, s_1_99, -1, 1, 0},
+{ 4, s_1_100, -1, 1, 0},
+{ 4, s_1_101, -1, 1, 0},
+{ 3, s_1_102, -1, 1, 0},
+{ 4, s_1_103, 102, 1, 0},
+{ 4, s_1_104, 102, 1, 0},
+{ 4, s_1_105, -1, 1, 0},
+{ 4, s_1_106, -1, 1, 0},
+{ 4, s_1_107, -1, 1, 0},
+{ 2, s_1_108, -1, 1, 0},
+{ 3, s_1_109, 108, 1, 0},
+{ 4, s_1_110, 109, 1, 0},
+{ 5, s_1_111, 109, 1, 0},
+{ 5, s_1_112, 109, 1, 0},
+{ 4, s_1_113, 109, 1, 0},
+{ 5, s_1_114, 113, 1, 0},
+{ 5, s_1_115, 109, 1, 0},
+{ 4, s_1_116, 108, 1, 0},
+{ 4, s_1_117, 108, 1, 0},
+{ 4, s_1_118, 108, 1, 0},
+{ 3, s_1_119, 108, 2, 0},
+{ 6, s_1_120, 108, 1, 0},
+{ 5, s_1_121, 108, 1, 0},
+{ 3, s_1_122, 108, 1, 0},
+{ 2, s_1_123, -1, 1, 0},
+{ 3, s_1_124, 123, 1, 0},
+{ 2, s_1_125, -1, 1, 0},
+{ 3, s_1_126, 125, 1, 0},
+{ 4, s_1_127, 126, 1, 0},
+{ 3, s_1_128, 125, 1, 0},
+{ 3, s_1_129, -1, 1, 0},
+{ 6, s_1_130, 129, 1, 0},
+{ 5, s_1_131, 129, 1, 0},
+{ 5, s_1_132, -1, 1, 0},
+{ 5, s_1_133, -1, 1, 0},
+{ 5, s_1_134, -1, 1, 0},
+{ 4, s_1_135, -1, 1, 0},
+{ 3, s_1_136, -1, 1, 0},
+{ 6, s_1_137, 136, 1, 0},
+{ 5, s_1_138, 136, 1, 0},
+{ 4, s_1_139, -1, 1, 0},
+{ 3, s_1_140, -1, 1, 0},
+{ 4, s_1_141, 140, 1, 0},
+{ 2, s_1_142, -1, 1, 0},
+{ 3, s_1_143, 142, 1, 0},
+{ 5, s_1_144, 142, 1, 0},
+{ 3, s_1_145, 142, 2, 0},
+{ 6, s_1_146, 145, 1, 0},
+{ 5, s_1_147, 145, 1, 0},
+{ 6, s_1_148, 145, 1, 0},
+{ 6, s_1_149, 145, 1, 0},
+{ 6, s_1_150, 145, 1, 0},
+{ 4, s_1_151, -1, 1, 0},
+{ 4, s_1_152, -1, 1, 0},
+{ 4, s_1_153, -1, 1, 0},
+{ 4, s_1_154, -1, 1, 0},
+{ 5, s_1_155, 154, 1, 0},
+{ 5, s_1_156, 154, 1, 0},
+{ 4, s_1_157, -1, 1, 0},
+{ 2, s_1_158, -1, 1, 0},
+{ 4, s_1_159, -1, 1, 0},
+{ 5, s_1_160, 159, 1, 0},
+{ 4, s_1_161, -1, 1, 0},
+{ 3, s_1_162, -1, 1, 0},
+{ 4, s_1_163, -1, 1, 0},
+{ 2, s_1_164, -1, 1, 0},
+{ 5, s_1_165, 164, 1, 0},
+{ 3, s_1_166, 164, 1, 0},
+{ 4, s_1_167, 166, 1, 0},
+{ 2, s_1_168, -1, 1, 0},
+{ 5, s_1_169, -1, 1, 0},
+{ 2, s_1_170, -1, 1, 0},
+{ 4, s_1_171, 170, 1, 0},
+{ 4, s_1_172, 170, 1, 0},
+{ 4, s_1_173, 170, 1, 0},
+{ 4, s_1_174, -1, 1, 0},
+{ 3, s_1_175, -1, 1, 0},
+{ 2, s_1_176, -1, 1, 0},
+{ 4, s_1_177, 176, 1, 0},
+{ 5, s_1_178, 177, 1, 0},
+{ 5, s_1_179, 176, 8, 0},
+{ 5, s_1_180, 176, 1, 0},
+{ 5, s_1_181, 176, 1, 0},
+{ 3, s_1_182, -1, 1, 0},
+{ 3, s_1_183, -1, 1, 0},
+{ 4, s_1_184, 183, 1, 0},
+{ 4, s_1_185, 183, 1, 0},
+{ 4, s_1_186, -1, 1, 0},
+{ 3, s_1_187, -1, 1, 0},
+{ 2, s_1_188, -1, 1, 0},
+{ 4, s_1_189, 188, 1, 0},
+{ 2, s_1_190, -1, 1, 0},
+{ 3, s_1_191, 190, 1, 0},
+{ 3, s_1_192, 190, 1, 0},
+{ 3, s_1_193, -1, 1, 0},
+{ 4, s_1_194, 193, 1, 0},
+{ 4, s_1_195, 193, 1, 0},
+{ 4, s_1_196, 193, 1, 0},
+{ 5, s_1_197, -1, 2, 0},
+{ 5, s_1_198, -1, 1, 0},
+{ 5, s_1_199, -1, 1, 0},
+{ 4, s_1_200, -1, 1, 0},
+{ 3, s_1_201, -1, 1, 0},
+{ 2, s_1_202, -1, 1, 0},
+{ 5, s_1_203, -1, 1, 0},
+{ 3, s_1_204, -1, 1, 0},
+{ 2, s_1_205, -1, 1, 0},
+{ 2, s_1_206, -1, 1, 0},
+{ 5, s_1_207, -1, 1, 0},
+{ 5, s_1_208, -1, 1, 0},
+{ 3, s_1_209, -1, 1, 0},
+{ 4, s_1_210, 209, 1, 0},
+{ 3, s_1_211, -1, 1, 0},
+{ 3, s_1_212, -1, 1, 0},
+{ 4, s_1_213, 212, 1, 0},
+{ 2, s_1_214, -1, 4, 0},
+{ 3, s_1_215, 214, 2, 0},
+{ 6, s_1_216, 215, 1, 0},
+{ 6, s_1_217, 215, 1, 0},
+{ 5, s_1_218, 215, 1, 0},
+{ 3, s_1_219, 214, 4, 0},
+{ 4, s_1_220, 214, 4, 0},
+{ 4, s_1_221, -1, 1, 0},
+{ 5, s_1_222, 221, 1, 0},
+{ 3, s_1_223, -1, 1, 0},
+{ 3, s_1_224, -1, 1, 0},
+{ 3, s_1_225, -1, 1, 0},
+{ 4, s_1_226, -1, 1, 0},
+{ 5, s_1_227, 226, 1, 0},
+{ 5, s_1_228, -1, 1, 0},
+{ 4, s_1_229, -1, 1, 0},
+{ 5, s_1_230, 229, 1, 0},
+{ 2, s_1_231, -1, 1, 0},
+{ 3, s_1_232, 231, 1, 0},
+{ 3, s_1_233, -1, 1, 0},
+{ 2, s_1_234, -1, 1, 0},
+{ 5, s_1_235, 234, 5, 0},
+{ 4, s_1_236, 234, 1, 0},
+{ 5, s_1_237, 236, 1, 0},
+{ 3, s_1_238, 234, 1, 0},
+{ 6, s_1_239, 234, 1, 0},
+{ 3, s_1_240, 234, 1, 0},
+{ 4, s_1_241, 234, 1, 0},
+{ 8, s_1_242, 241, 6, 0},
+{ 3, s_1_243, 234, 1, 0},
+{ 2, s_1_244, -1, 1, 0},
+{ 4, s_1_245, 244, 1, 0},
+{ 2, s_1_246, -1, 1, 0},
+{ 3, s_1_247, 246, 1, 0},
+{ 5, s_1_248, 247, 9, 0},
+{ 4, s_1_249, 247, 1, 0},
+{ 4, s_1_250, 247, 1, 0},
+{ 3, s_1_251, 246, 1, 0},
+{ 4, s_1_252, 246, 1, 0},
+{ 3, s_1_253, 246, 1, 0},
+{ 3, s_1_254, -1, 1, 0},
+{ 2, s_1_255, -1, 1, 0},
+{ 3, s_1_256, 255, 1, 0},
+{ 3, s_1_257, 255, 1, 0},
+{ 3, s_1_258, -1, 1, 0},
+{ 3, s_1_259, -1, 1, 0},
+{ 6, s_1_260, 259, 1, 0},
+{ 3, s_1_261, -1, 1, 0},
+{ 2, s_1_262, -1, 1, 0},
+{ 2, s_1_263, -1, 1, 0},
+{ 3, s_1_264, 263, 1, 0},
+{ 5, s_1_265, 263, 1, 0},
+{ 5, s_1_266, 263, 7, 0},
+{ 4, s_1_267, 263, 1, 0},
+{ 4, s_1_268, 263, 1, 0},
+{ 3, s_1_269, 263, 1, 0},
+{ 4, s_1_270, 263, 1, 0},
+{ 2, s_1_271, -1, 2, 0},
+{ 3, s_1_272, 271, 1, 0},
+{ 2, s_1_273, -1, 1, 0},
+{ 3, s_1_274, -1, 1, 0},
+{ 2, s_1_275, -1, 1, 0},
+{ 5, s_1_276, 275, 1, 0},
+{ 4, s_1_277, 275, 1, 0},
+{ 4, s_1_278, -1, 1, 0},
+{ 4, s_1_279, -1, 2, 0},
+{ 4, s_1_280, -1, 1, 0},
+{ 3, s_1_281, -1, 1, 0},
+{ 2, s_1_282, -1, 1, 0},
+{ 4, s_1_283, 282, 4, 0},
+{ 5, s_1_284, 282, 1, 0},
+{ 4, s_1_285, 282, 1, 0},
+{ 3, s_1_286, -1, 1, 0},
+{ 2, s_1_287, -1, 1, 0},
+{ 3, s_1_288, 287, 1, 0},
+{ 6, s_1_289, 288, 1, 0},
+{ 1, s_1_290, -1, 1, 0},
+{ 2, s_1_291, 290, 1, 0},
+{ 4, s_1_292, 290, 1, 0},
+{ 2, s_1_293, 290, 1, 0},
+{ 5, s_1_294, 293, 1, 0}
+};
+
+static const symbol s_2_0[4] = { 'z', 'l', 'e', 'a' };
+static const symbol s_2_1[5] = { 'k', 'e', 'r', 'i', 'a' };
+static const symbol s_2_2[2] = { 'l', 'a' };
+static const symbol s_2_3[3] = { 'e', 'r', 'a' };
+static const symbol s_2_4[4] = { 'd', 'a', 'd', 'e' };
+static const symbol s_2_5[4] = { 't', 'a', 'd', 'e' };
+static const symbol s_2_6[4] = { 'd', 'a', 't', 'e' };
+static const symbol s_2_7[4] = { 't', 'a', 't', 'e' };
+static const symbol s_2_8[2] = { 'g', 'i' };
+static const symbol s_2_9[2] = { 'k', 'i' };
+static const symbol s_2_10[2] = { 'i', 'k' };
+static const symbol s_2_11[5] = { 'l', 'a', 'n', 'i', 'k' };
+static const symbol s_2_12[3] = { 'r', 'i', 'k' };
+static const symbol s_2_13[5] = { 'l', 'a', 'r', 'i', 'k' };
+static const symbol s_2_14[4] = { 'z', 't', 'i', 'k' };
+static const symbol s_2_15[2] = { 'g', 'o' };
+static const symbol s_2_16[2] = { 'r', 'o' };
+static const symbol s_2_17[3] = { 'e', 'r', 'o' };
+static const symbol s_2_18[2] = { 't', 'o' };
+
+static const struct among a_2[19] =
+{
+{ 4, s_2_0, -1, 2, 0},
+{ 5, s_2_1, -1, 1, 0},
+{ 2, s_2_2, -1, 1, 0},
+{ 3, s_2_3, -1, 1, 0},
+{ 4, s_2_4, -1, 1, 0},
+{ 4, s_2_5, -1, 1, 0},
+{ 4, s_2_6, -1, 1, 0},
+{ 4, s_2_7, -1, 1, 0},
+{ 2, s_2_8, -1, 1, 0},
+{ 2, s_2_9, -1, 1, 0},
+{ 2, s_2_10, -1, 1, 0},
+{ 5, s_2_11, 10, 1, 0},
+{ 3, s_2_12, 10, 1, 0},
+{ 5, s_2_13, 12, 1, 0},
+{ 4, s_2_14, 10, 1, 0},
+{ 2, s_2_15, -1, 1, 0},
+{ 2, s_2_16, -1, 1, 0},
+{ 3, s_2_17, 16, 1, 0},
+{ 2, s_2_18, -1, 1, 0}
+};
+
+static const unsigned char g_v[] = { 17, 65, 16 };
+
+static const symbol s_0[] = { 'a', 't', 's', 'e', 'd', 'e', 'n' };
+static const symbol s_1[] = { 'a', 'r', 'a', 'b', 'e', 'r', 'a' };
+static const symbol s_2[] = { 'b', 'a', 'd', 'i', 't', 'u' };
+static const symbol s_3[] = { 'j', 'o', 'k' };
+static const symbol s_4[] = { 't', 'r', 'a' };
+static const symbol s_5[] = { 'm', 'i', 'n', 'u', 't', 'u' };
+static const symbol s_6[] = { 'z', 'e', 'h', 'a', 'r' };
+static const symbol s_7[] = { 'g', 'e', 'l', 'd', 'i' };
+static const symbol s_8[] = { 'i', 'g', 'a', 'r', 'o' };
+static const symbol s_9[] = { 'a', 'u', 'r', 'k', 'a' };
+static const symbol s_10[] = { 'z' };
+
+static int r_mark_regions(struct SN_env * z) {
+ z->I[2] = z->l;
+ z->I[1] = z->l;
+ z->I[0] = z->l;
+ { int c1 = z->c;
+ { int c2 = z->c;
+ if (in_grouping_U(z, g_v, 97, 117, 0)) goto lab2;
+ { int c3 = z->c;
+ if (out_grouping_U(z, g_v, 97, 117, 0)) goto lab4;
+ {
+ int ret = out_grouping_U(z, g_v, 97, 117, 1);
+ if (ret < 0) goto lab4;
+ z->c += ret;
+ }
+ goto lab3;
+ lab4:
+ z->c = c3;
+ if (in_grouping_U(z, g_v, 97, 117, 0)) goto lab2;
+ {
+ int ret = in_grouping_U(z, g_v, 97, 117, 1);
+ if (ret < 0) goto lab2;
+ z->c += ret;
+ }
+ }
+ lab3:
+ goto lab1;
+ lab2:
+ z->c = c2;
+ if (out_grouping_U(z, g_v, 97, 117, 0)) goto lab0;
+ { int c4 = z->c;
+ if (out_grouping_U(z, g_v, 97, 117, 0)) goto lab6;
+ {
+ int ret = out_grouping_U(z, g_v, 97, 117, 1);
+ if (ret < 0) goto lab6;
+ z->c += ret;
+ }
+ goto lab5;
+ lab6:
+ z->c = c4;
+ if (in_grouping_U(z, g_v, 97, 117, 0)) goto lab0;
+ { int ret = skip_utf8(z->p, z->c, z->l, 1);
+ if (ret < 0) goto lab0;
+ z->c = ret;
+ }
+ }
+ lab5:
+ ;
+ }
+ lab1:
+ z->I[2] = z->c;
+ lab0:
+ z->c = c1;
+ }
+ { int c5 = z->c;
+ {
+ int ret = out_grouping_U(z, g_v, 97, 117, 1);
+ if (ret < 0) goto lab7;
+ z->c += ret;
+ }
+ {
+ int ret = in_grouping_U(z, g_v, 97, 117, 1);
+ if (ret < 0) goto lab7;
+ z->c += ret;
+ }
+ z->I[1] = z->c;
+ {
+ int ret = out_grouping_U(z, g_v, 97, 117, 1);
+ if (ret < 0) goto lab7;
+ z->c += ret;
+ }
+ {
+ int ret = in_grouping_U(z, g_v, 97, 117, 1);
+ if (ret < 0) goto lab7;
+ z->c += ret;
+ }
+ z->I[0] = z->c;
+ lab7:
+ z->c = c5;
+ }
+ return 1;
+}
+
+static int r_RV(struct SN_env * z) {
+ if (!(z->I[2] <= z->c)) return 0;
+ return 1;
+}
+
+static int r_R2(struct SN_env * z) {
+ if (!(z->I[0] <= z->c)) return 0;
+ return 1;
+}
+
+static int r_R1(struct SN_env * z) {
+ if (!(z->I[1] <= z->c)) return 0;
+ return 1;
+}
+
+static int r_aditzak(struct SN_env * z) {
+ int among_var;
+ z->ket = z->c;
+ if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((70566434 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
+ among_var = find_among_b(z, a_0, 109);
+ if (!(among_var)) return 0;
+ z->bra = z->c;
+ switch (among_var) {
+ case 1:
+ { int ret = r_RV(z);
+ if (ret <= 0) return ret;
+ }
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 2:
+ { int ret = r_R2(z);
+ if (ret <= 0) return ret;
+ }
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 3:
+ { int ret = slice_from_s(z, 7, s_0);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 4:
+ { int ret = slice_from_s(z, 7, s_1);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 5:
+ { int ret = slice_from_s(z, 6, s_2);
+ if (ret < 0) return ret;
+ }
+ break;
+ }
+ return 1;
+}
+
+static int r_izenak(struct SN_env * z) {
+ int among_var;
+ z->ket = z->c;
+ if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((71162402 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
+ among_var = find_among_b(z, a_1, 295);
+ if (!(among_var)) return 0;
+ z->bra = z->c;
+ switch (among_var) {
+ case 1:
+ { int ret = r_RV(z);
+ if (ret <= 0) return ret;
+ }
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 2:
+ { int ret = r_R2(z);
+ if (ret <= 0) return ret;
+ }
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 3:
+ { int ret = slice_from_s(z, 3, s_3);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 4:
+ { int ret = r_R1(z);
+ if (ret <= 0) return ret;
+ }
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 5:
+ { int ret = slice_from_s(z, 3, s_4);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 6:
+ { int ret = slice_from_s(z, 6, s_5);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 7:
+ { int ret = slice_from_s(z, 5, s_6);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 8:
+ { int ret = slice_from_s(z, 5, s_7);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 9:
+ { int ret = slice_from_s(z, 5, s_8);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 10:
+ { int ret = slice_from_s(z, 5, s_9);
+ if (ret < 0) return ret;
+ }
+ break;
+ }
+ return 1;
+}
+
+static int r_adjetiboak(struct SN_env * z) {
+ int among_var;
+ z->ket = z->c;
+ if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((35362 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
+ among_var = find_among_b(z, a_2, 19);
+ if (!(among_var)) return 0;
+ z->bra = z->c;
+ switch (among_var) {
+ case 1:
+ { int ret = r_RV(z);
+ if (ret <= 0) return ret;
+ }
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 2:
+ { int ret = slice_from_s(z, 1, s_10);
+ if (ret < 0) return ret;
+ }
+ break;
+ }
+ return 1;
+}
+
+extern int basque_UTF_8_stem(struct SN_env * z) {
+
+ { int ret = r_mark_regions(z);
+ if (ret < 0) return ret;
+ }
+ z->lb = z->c; z->c = z->l;
+
+ while(1) {
+ int m1 = z->l - z->c; (void)m1;
+ { int ret = r_aditzak(z);
+ if (ret == 0) goto lab0;
+ if (ret < 0) return ret;
+ }
+ continue;
+ lab0:
+ z->c = z->l - m1;
+ break;
+ }
+ while(1) {
+ int m2 = z->l - z->c; (void)m2;
+ { int ret = r_izenak(z);
+ if (ret == 0) goto lab1;
+ if (ret < 0) return ret;
+ }
+ continue;
+ lab1:
+ z->c = z->l - m2;
+ break;
+ }
+ { int m3 = z->l - z->c; (void)m3;
+ { int ret = r_adjetiboak(z);
+ if (ret < 0) return ret;
+ }
+ z->c = z->l - m3;
+ }
+ z->c = z->lb;
+ return 1;
+}
+
+extern struct SN_env * basque_UTF_8_create_env(void) { return SN_create_env(0, 3); }
+
+extern void basque_UTF_8_close_env(struct SN_env * z) { SN_close_env(z, 0); }
+
diff --git a/src/backend/snowball/libstemmer/stem_UTF_8_catalan.c b/src/backend/snowball/libstemmer/stem_UTF_8_catalan.c
new file mode 100644
index 0000000..a215aab
--- /dev/null
+++ b/src/backend/snowball/libstemmer/stem_UTF_8_catalan.c
@@ -0,0 +1,1449 @@
+/* Generated by Snowball 2.2.0 - https://snowballstem.org/ */
+
+#include "header.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+extern int catalan_UTF_8_stem(struct SN_env * z);
+#ifdef __cplusplus
+}
+#endif
+static int r_residual_suffix(struct SN_env * z);
+static int r_verb_suffix(struct SN_env * z);
+static int r_standard_suffix(struct SN_env * z);
+static int r_attached_pronoun(struct SN_env * z);
+static int r_R2(struct SN_env * z);
+static int r_R1(struct SN_env * z);
+static int r_mark_regions(struct SN_env * z);
+static int r_cleaning(struct SN_env * z);
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+extern struct SN_env * catalan_UTF_8_create_env(void);
+extern void catalan_UTF_8_close_env(struct SN_env * z);
+
+
+#ifdef __cplusplus
+}
+#endif
+static const symbol s_0_1[2] = { 0xC2, 0xB7 };
+static const symbol s_0_2[2] = { 0xC3, 0xA0 };
+static const symbol s_0_3[2] = { 0xC3, 0xA1 };
+static const symbol s_0_4[2] = { 0xC3, 0xA8 };
+static const symbol s_0_5[2] = { 0xC3, 0xA9 };
+static const symbol s_0_6[2] = { 0xC3, 0xAC };
+static const symbol s_0_7[2] = { 0xC3, 0xAD };
+static const symbol s_0_8[2] = { 0xC3, 0xAF };
+static const symbol s_0_9[2] = { 0xC3, 0xB2 };
+static const symbol s_0_10[2] = { 0xC3, 0xB3 };
+static const symbol s_0_11[2] = { 0xC3, 0xBA };
+static const symbol s_0_12[2] = { 0xC3, 0xBC };
+
+static const struct among a_0[13] =
+{
+{ 0, 0, -1, 7, 0},
+{ 2, s_0_1, 0, 6, 0},
+{ 2, s_0_2, 0, 1, 0},
+{ 2, s_0_3, 0, 1, 0},
+{ 2, s_0_4, 0, 2, 0},
+{ 2, s_0_5, 0, 2, 0},
+{ 2, s_0_6, 0, 3, 0},
+{ 2, s_0_7, 0, 3, 0},
+{ 2, s_0_8, 0, 3, 0},
+{ 2, s_0_9, 0, 4, 0},
+{ 2, s_0_10, 0, 4, 0},
+{ 2, s_0_11, 0, 5, 0},
+{ 2, s_0_12, 0, 5, 0}
+};
+
+static const symbol s_1_0[2] = { 'l', 'a' };
+static const symbol s_1_1[3] = { '-', 'l', 'a' };
+static const symbol s_1_2[4] = { 's', 'e', 'l', 'a' };
+static const symbol s_1_3[2] = { 'l', 'e' };
+static const symbol s_1_4[2] = { 'm', 'e' };
+static const symbol s_1_5[3] = { '-', 'm', 'e' };
+static const symbol s_1_6[2] = { 's', 'e' };
+static const symbol s_1_7[3] = { '-', 't', 'e' };
+static const symbol s_1_8[2] = { 'h', 'i' };
+static const symbol s_1_9[3] = { '\'', 'h', 'i' };
+static const symbol s_1_10[2] = { 'l', 'i' };
+static const symbol s_1_11[3] = { '-', 'l', 'i' };
+static const symbol s_1_12[2] = { '\'', 'l' };
+static const symbol s_1_13[2] = { '\'', 'm' };
+static const symbol s_1_14[2] = { '-', 'm' };
+static const symbol s_1_15[2] = { '\'', 'n' };
+static const symbol s_1_16[2] = { '-', 'n' };
+static const symbol s_1_17[2] = { 'h', 'o' };
+static const symbol s_1_18[3] = { '\'', 'h', 'o' };
+static const symbol s_1_19[2] = { 'l', 'o' };
+static const symbol s_1_20[4] = { 's', 'e', 'l', 'o' };
+static const symbol s_1_21[2] = { '\'', 's' };
+static const symbol s_1_22[3] = { 'l', 'a', 's' };
+static const symbol s_1_23[5] = { 's', 'e', 'l', 'a', 's' };
+static const symbol s_1_24[3] = { 'l', 'e', 's' };
+static const symbol s_1_25[4] = { '-', 'l', 'e', 's' };
+static const symbol s_1_26[3] = { '\'', 'l', 's' };
+static const symbol s_1_27[3] = { '-', 'l', 's' };
+static const symbol s_1_28[3] = { '\'', 'n', 's' };
+static const symbol s_1_29[3] = { '-', 'n', 's' };
+static const symbol s_1_30[3] = { 'e', 'n', 's' };
+static const symbol s_1_31[3] = { 'l', 'o', 's' };
+static const symbol s_1_32[5] = { 's', 'e', 'l', 'o', 's' };
+static const symbol s_1_33[3] = { 'n', 'o', 's' };
+static const symbol s_1_34[4] = { '-', 'n', 'o', 's' };
+static const symbol s_1_35[3] = { 'v', 'o', 's' };
+static const symbol s_1_36[2] = { 'u', 's' };
+static const symbol s_1_37[3] = { '-', 'u', 's' };
+static const symbol s_1_38[2] = { '\'', 't' };
+
+static const struct among a_1[39] =
+{
+{ 2, s_1_0, -1, 1, 0},
+{ 3, s_1_1, 0, 1, 0},
+{ 4, s_1_2, 0, 1, 0},
+{ 2, s_1_3, -1, 1, 0},
+{ 2, s_1_4, -1, 1, 0},
+{ 3, s_1_5, 4, 1, 0},
+{ 2, s_1_6, -1, 1, 0},
+{ 3, s_1_7, -1, 1, 0},
+{ 2, s_1_8, -1, 1, 0},
+{ 3, s_1_9, 8, 1, 0},
+{ 2, s_1_10, -1, 1, 0},
+{ 3, s_1_11, 10, 1, 0},
+{ 2, s_1_12, -1, 1, 0},
+{ 2, s_1_13, -1, 1, 0},
+{ 2, s_1_14, -1, 1, 0},
+{ 2, s_1_15, -1, 1, 0},
+{ 2, s_1_16, -1, 1, 0},
+{ 2, s_1_17, -1, 1, 0},
+{ 3, s_1_18, 17, 1, 0},
+{ 2, s_1_19, -1, 1, 0},
+{ 4, s_1_20, 19, 1, 0},
+{ 2, s_1_21, -1, 1, 0},
+{ 3, s_1_22, -1, 1, 0},
+{ 5, s_1_23, 22, 1, 0},
+{ 3, s_1_24, -1, 1, 0},
+{ 4, s_1_25, 24, 1, 0},
+{ 3, s_1_26, -1, 1, 0},
+{ 3, s_1_27, -1, 1, 0},
+{ 3, s_1_28, -1, 1, 0},
+{ 3, s_1_29, -1, 1, 0},
+{ 3, s_1_30, -1, 1, 0},
+{ 3, s_1_31, -1, 1, 0},
+{ 5, s_1_32, 31, 1, 0},
+{ 3, s_1_33, -1, 1, 0},
+{ 4, s_1_34, 33, 1, 0},
+{ 3, s_1_35, -1, 1, 0},
+{ 2, s_1_36, -1, 1, 0},
+{ 3, s_1_37, 36, 1, 0},
+{ 2, s_1_38, -1, 1, 0}
+};
+
+static const symbol s_2_0[3] = { 'i', 'c', 'a' };
+static const symbol s_2_1[7] = { 'l', 0xC3, 0xB3, 'g', 'i', 'c', 'a' };
+static const symbol s_2_2[4] = { 'e', 'n', 'c', 'a' };
+static const symbol s_2_3[3] = { 'a', 'd', 'a' };
+static const symbol s_2_4[5] = { 'a', 'n', 'c', 'i', 'a' };
+static const symbol s_2_5[5] = { 'e', 'n', 'c', 'i', 'a' };
+static const symbol s_2_6[6] = { 0xC3, 0xA8, 'n', 'c', 'i', 'a' };
+static const symbol s_2_7[5] = { 0xC3, 0xAD, 'c', 'i', 'a' };
+static const symbol s_2_8[5] = { 'l', 'o', 'g', 'i', 'a' };
+static const symbol s_2_9[4] = { 'i', 'n', 'i', 'a' };
+static const symbol s_2_10[6] = { 0xC3, 0xAD, 'i', 'n', 'i', 'a' };
+static const symbol s_2_11[4] = { 'e', 'r', 'i', 'a' };
+static const symbol s_2_12[5] = { 0xC3, 0xA0, 'r', 'i', 'a' };
+static const symbol s_2_13[7] = { 'a', 't', 0xC3, 0xB2, 'r', 'i', 'a' };
+static const symbol s_2_14[4] = { 'a', 'l', 'l', 'a' };
+static const symbol s_2_15[4] = { 'e', 'l', 'l', 'a' };
+static const symbol s_2_16[6] = { 0xC3, 0xAD, 'v', 'o', 'l', 'a' };
+static const symbol s_2_17[3] = { 'i', 'm', 'a' };
+static const symbol s_2_18[7] = { 0xC3, 0xAD, 's', 's', 'i', 'm', 'a' };
+static const symbol s_2_19[9] = { 'q', 'u', 0xC3, 0xAD, 's', 's', 'i', 'm', 'a' };
+static const symbol s_2_20[3] = { 'a', 'n', 'a' };
+static const symbol s_2_21[3] = { 'i', 'n', 'a' };
+static const symbol s_2_22[3] = { 'e', 'r', 'a' };
+static const symbol s_2_23[5] = { 's', 'f', 'e', 'r', 'a' };
+static const symbol s_2_24[3] = { 'o', 'r', 'a' };
+static const symbol s_2_25[4] = { 'd', 'o', 'r', 'a' };
+static const symbol s_2_26[5] = { 'a', 'd', 'o', 'r', 'a' };
+static const symbol s_2_27[5] = { 'a', 'd', 'u', 'r', 'a' };
+static const symbol s_2_28[3] = { 'e', 's', 'a' };
+static const symbol s_2_29[3] = { 'o', 's', 'a' };
+static const symbol s_2_30[4] = { 'a', 's', 's', 'a' };
+static const symbol s_2_31[4] = { 'e', 's', 's', 'a' };
+static const symbol s_2_32[4] = { 'i', 's', 's', 'a' };
+static const symbol s_2_33[3] = { 'e', 't', 'a' };
+static const symbol s_2_34[3] = { 'i', 't', 'a' };
+static const symbol s_2_35[3] = { 'o', 't', 'a' };
+static const symbol s_2_36[4] = { 'i', 's', 't', 'a' };
+static const symbol s_2_37[7] = { 'i', 'a', 'l', 'i', 's', 't', 'a' };
+static const symbol s_2_38[7] = { 'i', 'o', 'n', 'i', 's', 't', 'a' };
+static const symbol s_2_39[3] = { 'i', 'v', 'a' };
+static const symbol s_2_40[5] = { 'a', 't', 'i', 'v', 'a' };
+static const symbol s_2_41[4] = { 'n', 0xC3, 0xA7, 'a' };
+static const symbol s_2_42[6] = { 'l', 'o', 'g', 0xC3, 0xAD, 'a' };
+static const symbol s_2_43[2] = { 'i', 'c' };
+static const symbol s_2_44[6] = { 0xC3, 0xAD, 's', 't', 'i', 'c' };
+static const symbol s_2_45[3] = { 'e', 'n', 'c' };
+static const symbol s_2_46[3] = { 'e', 's', 'c' };
+static const symbol s_2_47[2] = { 'u', 'd' };
+static const symbol s_2_48[4] = { 'a', 't', 'g', 'e' };
+static const symbol s_2_49[3] = { 'b', 'l', 'e' };
+static const symbol s_2_50[4] = { 'a', 'b', 'l', 'e' };
+static const symbol s_2_51[4] = { 'i', 'b', 'l', 'e' };
+static const symbol s_2_52[4] = { 'i', 's', 'm', 'e' };
+static const symbol s_2_53[7] = { 'i', 'a', 'l', 'i', 's', 'm', 'e' };
+static const symbol s_2_54[7] = { 'i', 'o', 'n', 'i', 's', 'm', 'e' };
+static const symbol s_2_55[6] = { 'i', 'v', 'i', 's', 'm', 'e' };
+static const symbol s_2_56[4] = { 'a', 'i', 'r', 'e' };
+static const symbol s_2_57[4] = { 'i', 'c', 't', 'e' };
+static const symbol s_2_58[4] = { 'i', 's', 't', 'e' };
+static const symbol s_2_59[3] = { 'i', 'c', 'i' };
+static const symbol s_2_60[4] = { 0xC3, 0xAD, 'c', 'i' };
+static const symbol s_2_61[4] = { 'l', 'o', 'g', 'i' };
+static const symbol s_2_62[3] = { 'a', 'r', 'i' };
+static const symbol s_2_63[4] = { 't', 'o', 'r', 'i' };
+static const symbol s_2_64[2] = { 'a', 'l' };
+static const symbol s_2_65[2] = { 'i', 'l' };
+static const symbol s_2_66[3] = { 'a', 'l', 'l' };
+static const symbol s_2_67[3] = { 'e', 'l', 'l' };
+static const symbol s_2_68[5] = { 0xC3, 0xAD, 'v', 'o', 'l' };
+static const symbol s_2_69[4] = { 'i', 's', 'a', 'm' };
+static const symbol s_2_70[5] = { 'i', 's', 's', 'e', 'm' };
+static const symbol s_2_71[6] = { 0xC3, 0xAC, 's', 's', 'e', 'm' };
+static const symbol s_2_72[6] = { 0xC3, 0xAD, 's', 's', 'e', 'm' };
+static const symbol s_2_73[6] = { 0xC3, 0xAD, 's', 's', 'i', 'm' };
+static const symbol s_2_74[8] = { 'q', 'u', 0xC3, 0xAD, 's', 's', 'i', 'm' };
+static const symbol s_2_75[4] = { 'a', 'm', 'e', 'n' };
+static const symbol s_2_76[6] = { 0xC3, 0xAC, 's', 's', 'i', 'n' };
+static const symbol s_2_77[2] = { 'a', 'r' };
+static const symbol s_2_78[6] = { 'i', 'f', 'i', 'c', 'a', 'r' };
+static const symbol s_2_79[4] = { 'e', 'g', 'a', 'r' };
+static const symbol s_2_80[4] = { 'e', 'j', 'a', 'r' };
+static const symbol s_2_81[4] = { 'i', 't', 'a', 'r' };
+static const symbol s_2_82[5] = { 'i', 't', 'z', 'a', 'r' };
+static const symbol s_2_83[3] = { 'f', 'e', 'r' };
+static const symbol s_2_84[2] = { 'o', 'r' };
+static const symbol s_2_85[3] = { 'd', 'o', 'r' };
+static const symbol s_2_86[3] = { 'd', 'u', 'r' };
+static const symbol s_2_87[5] = { 'd', 'o', 'r', 'a', 's' };
+static const symbol s_2_88[3] = { 'i', 'c', 's' };
+static const symbol s_2_89[7] = { 'l', 0xC3, 0xB3, 'g', 'i', 'c', 's' };
+static const symbol s_2_90[3] = { 'u', 'd', 's' };
+static const symbol s_2_91[4] = { 'n', 'c', 'e', 's' };
+static const symbol s_2_92[4] = { 'a', 'd', 'e', 's' };
+static const symbol s_2_93[6] = { 'a', 'n', 'c', 'i', 'e', 's' };
+static const symbol s_2_94[6] = { 'e', 'n', 'c', 'i', 'e', 's' };
+static const symbol s_2_95[7] = { 0xC3, 0xA8, 'n', 'c', 'i', 'e', 's' };
+static const symbol s_2_96[6] = { 0xC3, 0xAD, 'c', 'i', 'e', 's' };
+static const symbol s_2_97[6] = { 'l', 'o', 'g', 'i', 'e', 's' };
+static const symbol s_2_98[5] = { 'i', 'n', 'i', 'e', 's' };
+static const symbol s_2_99[6] = { 0xC3, 0xAD, 'n', 'i', 'e', 's' };
+static const symbol s_2_100[5] = { 'e', 'r', 'i', 'e', 's' };
+static const symbol s_2_101[6] = { 0xC3, 0xA0, 'r', 'i', 'e', 's' };
+static const symbol s_2_102[8] = { 'a', 't', 0xC3, 0xB2, 'r', 'i', 'e', 's' };
+static const symbol s_2_103[4] = { 'b', 'l', 'e', 's' };
+static const symbol s_2_104[5] = { 'a', 'b', 'l', 'e', 's' };
+static const symbol s_2_105[5] = { 'i', 'b', 'l', 'e', 's' };
+static const symbol s_2_106[4] = { 'i', 'm', 'e', 's' };
+static const symbol s_2_107[8] = { 0xC3, 0xAD, 's', 's', 'i', 'm', 'e', 's' };
+static const symbol s_2_108[10] = { 'q', 'u', 0xC3, 0xAD, 's', 's', 'i', 'm', 'e', 's' };
+static const symbol s_2_109[6] = { 'f', 'o', 'r', 'm', 'e', 's' };
+static const symbol s_2_110[5] = { 'i', 's', 'm', 'e', 's' };
+static const symbol s_2_111[8] = { 'i', 'a', 'l', 'i', 's', 'm', 'e', 's' };
+static const symbol s_2_112[4] = { 'i', 'n', 'e', 's' };
+static const symbol s_2_113[4] = { 'e', 'r', 'e', 's' };
+static const symbol s_2_114[4] = { 'o', 'r', 'e', 's' };
+static const symbol s_2_115[5] = { 'd', 'o', 'r', 'e', 's' };
+static const symbol s_2_116[6] = { 'i', 'd', 'o', 'r', 'e', 's' };
+static const symbol s_2_117[5] = { 'd', 'u', 'r', 'e', 's' };
+static const symbol s_2_118[4] = { 'e', 's', 'e', 's' };
+static const symbol s_2_119[4] = { 'o', 's', 'e', 's' };
+static const symbol s_2_120[5] = { 'a', 's', 's', 'e', 's' };
+static const symbol s_2_121[5] = { 'i', 'c', 't', 'e', 's' };
+static const symbol s_2_122[4] = { 'i', 't', 'e', 's' };
+static const symbol s_2_123[4] = { 'o', 't', 'e', 's' };
+static const symbol s_2_124[5] = { 'i', 's', 't', 'e', 's' };
+static const symbol s_2_125[8] = { 'i', 'a', 'l', 'i', 's', 't', 'e', 's' };
+static const symbol s_2_126[8] = { 'i', 'o', 'n', 'i', 's', 't', 'e', 's' };
+static const symbol s_2_127[5] = { 'i', 'q', 'u', 'e', 's' };
+static const symbol s_2_128[9] = { 'l', 0xC3, 0xB3, 'g', 'i', 'q', 'u', 'e', 's' };
+static const symbol s_2_129[4] = { 'i', 'v', 'e', 's' };
+static const symbol s_2_130[6] = { 'a', 't', 'i', 'v', 'e', 's' };
+static const symbol s_2_131[7] = { 'l', 'o', 'g', 0xC3, 0xAD, 'e', 's' };
+static const symbol s_2_132[10] = { 'a', 'l', 'l', 'e', 'n', 'g', 0xC3, 0xBC, 'e', 's' };
+static const symbol s_2_133[4] = { 'i', 'c', 'i', 's' };
+static const symbol s_2_134[5] = { 0xC3, 0xAD, 'c', 'i', 's' };
+static const symbol s_2_135[5] = { 'l', 'o', 'g', 'i', 's' };
+static const symbol s_2_136[4] = { 'a', 'r', 'i', 's' };
+static const symbol s_2_137[5] = { 't', 'o', 'r', 'i', 's' };
+static const symbol s_2_138[2] = { 'l', 's' };
+static const symbol s_2_139[3] = { 'a', 'l', 's' };
+static const symbol s_2_140[4] = { 'e', 'l', 'l', 's' };
+static const symbol s_2_141[3] = { 'i', 'm', 's' };
+static const symbol s_2_142[7] = { 0xC3, 0xAD, 's', 's', 'i', 'm', 's' };
+static const symbol s_2_143[9] = { 'q', 'u', 0xC3, 0xAD, 's', 's', 'i', 'm', 's' };
+static const symbol s_2_144[4] = { 'i', 'o', 'n', 's' };
+static const symbol s_2_145[5] = { 'c', 'i', 'o', 'n', 's' };
+static const symbol s_2_146[6] = { 'a', 'c', 'i', 'o', 'n', 's' };
+static const symbol s_2_147[4] = { 'e', 's', 'o', 's' };
+static const symbol s_2_148[4] = { 'o', 's', 'o', 's' };
+static const symbol s_2_149[5] = { 'a', 's', 's', 'o', 's' };
+static const symbol s_2_150[5] = { 'i', 's', 's', 'o', 's' };
+static const symbol s_2_151[3] = { 'e', 'r', 's' };
+static const symbol s_2_152[3] = { 'o', 'r', 's' };
+static const symbol s_2_153[4] = { 'd', 'o', 'r', 's' };
+static const symbol s_2_154[5] = { 'a', 'd', 'o', 'r', 's' };
+static const symbol s_2_155[5] = { 'i', 'd', 'o', 'r', 's' };
+static const symbol s_2_156[3] = { 'a', 't', 's' };
+static const symbol s_2_157[5] = { 'i', 't', 'a', 't', 's' };
+static const symbol s_2_158[8] = { 'b', 'i', 'l', 'i', 't', 'a', 't', 's' };
+static const symbol s_2_159[7] = { 'i', 'v', 'i', 't', 'a', 't', 's' };
+static const symbol s_2_160[9] = { 'a', 't', 'i', 'v', 'i', 't', 'a', 't', 's' };
+static const symbol s_2_161[6] = { 0xC3, 0xAF, 't', 'a', 't', 's' };
+static const symbol s_2_162[3] = { 'e', 't', 's' };
+static const symbol s_2_163[4] = { 'a', 'n', 't', 's' };
+static const symbol s_2_164[4] = { 'e', 'n', 't', 's' };
+static const symbol s_2_165[5] = { 'm', 'e', 'n', 't', 's' };
+static const symbol s_2_166[6] = { 'a', 'm', 'e', 'n', 't', 's' };
+static const symbol s_2_167[3] = { 'o', 't', 's' };
+static const symbol s_2_168[3] = { 'u', 't', 's' };
+static const symbol s_2_169[3] = { 'i', 'u', 's' };
+static const symbol s_2_170[5] = { 't', 'r', 'i', 'u', 's' };
+static const symbol s_2_171[5] = { 'a', 't', 'i', 'u', 's' };
+static const symbol s_2_172[3] = { 0xC3, 0xA8, 's' };
+static const symbol s_2_173[3] = { 0xC3, 0xA9, 's' };
+static const symbol s_2_174[3] = { 0xC3, 0xAD, 's' };
+static const symbol s_2_175[4] = { 'd', 0xC3, 0xAD, 's' };
+static const symbol s_2_176[3] = { 0xC3, 0xB3, 's' };
+static const symbol s_2_177[4] = { 'i', 't', 'a', 't' };
+static const symbol s_2_178[7] = { 'b', 'i', 'l', 'i', 't', 'a', 't' };
+static const symbol s_2_179[6] = { 'i', 'v', 'i', 't', 'a', 't' };
+static const symbol s_2_180[8] = { 'a', 't', 'i', 'v', 'i', 't', 'a', 't' };
+static const symbol s_2_181[5] = { 0xC3, 0xAF, 't', 'a', 't' };
+static const symbol s_2_182[2] = { 'e', 't' };
+static const symbol s_2_183[3] = { 'a', 'n', 't' };
+static const symbol s_2_184[3] = { 'e', 'n', 't' };
+static const symbol s_2_185[4] = { 'i', 'e', 'n', 't' };
+static const symbol s_2_186[4] = { 'm', 'e', 'n', 't' };
+static const symbol s_2_187[5] = { 'a', 'm', 'e', 'n', 't' };
+static const symbol s_2_188[7] = { 'i', 's', 'a', 'm', 'e', 'n', 't' };
+static const symbol s_2_189[2] = { 'o', 't' };
+static const symbol s_2_190[5] = { 'i', 's', 's', 'e', 'u' };
+static const symbol s_2_191[6] = { 0xC3, 0xAC, 's', 's', 'e', 'u' };
+static const symbol s_2_192[6] = { 0xC3, 0xAD, 's', 's', 'e', 'u' };
+static const symbol s_2_193[4] = { 't', 'r', 'i', 'u' };
+static const symbol s_2_194[6] = { 0xC3, 0xAD, 's', 's', 'i', 'u' };
+static const symbol s_2_195[4] = { 'a', 't', 'i', 'u' };
+static const symbol s_2_196[2] = { 0xC3, 0xB3 };
+static const symbol s_2_197[3] = { 'i', 0xC3, 0xB3 };
+static const symbol s_2_198[4] = { 'c', 'i', 0xC3, 0xB3 };
+static const symbol s_2_199[5] = { 'a', 'c', 'i', 0xC3, 0xB3 };
+
+static const struct among a_2[200] =
+{
+{ 3, s_2_0, -1, 4, 0},
+{ 7, s_2_1, 0, 3, 0},
+{ 4, s_2_2, -1, 1, 0},
+{ 3, s_2_3, -1, 2, 0},
+{ 5, s_2_4, -1, 1, 0},
+{ 5, s_2_5, -1, 1, 0},
+{ 6, s_2_6, -1, 1, 0},
+{ 5, s_2_7, -1, 1, 0},
+{ 5, s_2_8, -1, 3, 0},
+{ 4, s_2_9, -1, 1, 0},
+{ 6, s_2_10, 9, 1, 0},
+{ 4, s_2_11, -1, 1, 0},
+{ 5, s_2_12, -1, 1, 0},
+{ 7, s_2_13, -1, 1, 0},
+{ 4, s_2_14, -1, 1, 0},
+{ 4, s_2_15, -1, 1, 0},
+{ 6, s_2_16, -1, 1, 0},
+{ 3, s_2_17, -1, 1, 0},
+{ 7, s_2_18, 17, 1, 0},
+{ 9, s_2_19, 18, 5, 0},
+{ 3, s_2_20, -1, 1, 0},
+{ 3, s_2_21, -1, 1, 0},
+{ 3, s_2_22, -1, 1, 0},
+{ 5, s_2_23, 22, 1, 0},
+{ 3, s_2_24, -1, 1, 0},
+{ 4, s_2_25, 24, 1, 0},
+{ 5, s_2_26, 25, 1, 0},
+{ 5, s_2_27, -1, 1, 0},
+{ 3, s_2_28, -1, 1, 0},
+{ 3, s_2_29, -1, 1, 0},
+{ 4, s_2_30, -1, 1, 0},
+{ 4, s_2_31, -1, 1, 0},
+{ 4, s_2_32, -1, 1, 0},
+{ 3, s_2_33, -1, 1, 0},
+{ 3, s_2_34, -1, 1, 0},
+{ 3, s_2_35, -1, 1, 0},
+{ 4, s_2_36, -1, 1, 0},
+{ 7, s_2_37, 36, 1, 0},
+{ 7, s_2_38, 36, 1, 0},
+{ 3, s_2_39, -1, 1, 0},
+{ 5, s_2_40, 39, 1, 0},
+{ 4, s_2_41, -1, 1, 0},
+{ 6, s_2_42, -1, 3, 0},
+{ 2, s_2_43, -1, 4, 0},
+{ 6, s_2_44, 43, 1, 0},
+{ 3, s_2_45, -1, 1, 0},
+{ 3, s_2_46, -1, 1, 0},
+{ 2, s_2_47, -1, 1, 0},
+{ 4, s_2_48, -1, 1, 0},
+{ 3, s_2_49, -1, 1, 0},
+{ 4, s_2_50, 49, 1, 0},
+{ 4, s_2_51, 49, 1, 0},
+{ 4, s_2_52, -1, 1, 0},
+{ 7, s_2_53, 52, 1, 0},
+{ 7, s_2_54, 52, 1, 0},
+{ 6, s_2_55, 52, 1, 0},
+{ 4, s_2_56, -1, 1, 0},
+{ 4, s_2_57, -1, 1, 0},
+{ 4, s_2_58, -1, 1, 0},
+{ 3, s_2_59, -1, 1, 0},
+{ 4, s_2_60, -1, 1, 0},
+{ 4, s_2_61, -1, 3, 0},
+{ 3, s_2_62, -1, 1, 0},
+{ 4, s_2_63, -1, 1, 0},
+{ 2, s_2_64, -1, 1, 0},
+{ 2, s_2_65, -1, 1, 0},
+{ 3, s_2_66, -1, 1, 0},
+{ 3, s_2_67, -1, 1, 0},
+{ 5, s_2_68, -1, 1, 0},
+{ 4, s_2_69, -1, 1, 0},
+{ 5, s_2_70, -1, 1, 0},
+{ 6, s_2_71, -1, 1, 0},
+{ 6, s_2_72, -1, 1, 0},
+{ 6, s_2_73, -1, 1, 0},
+{ 8, s_2_74, 73, 5, 0},
+{ 4, s_2_75, -1, 1, 0},
+{ 6, s_2_76, -1, 1, 0},
+{ 2, s_2_77, -1, 1, 0},
+{ 6, s_2_78, 77, 1, 0},
+{ 4, s_2_79, 77, 1, 0},
+{ 4, s_2_80, 77, 1, 0},
+{ 4, s_2_81, 77, 1, 0},
+{ 5, s_2_82, 77, 1, 0},
+{ 3, s_2_83, -1, 1, 0},
+{ 2, s_2_84, -1, 1, 0},
+{ 3, s_2_85, 84, 1, 0},
+{ 3, s_2_86, -1, 1, 0},
+{ 5, s_2_87, -1, 1, 0},
+{ 3, s_2_88, -1, 4, 0},
+{ 7, s_2_89, 88, 3, 0},
+{ 3, s_2_90, -1, 1, 0},
+{ 4, s_2_91, -1, 1, 0},
+{ 4, s_2_92, -1, 2, 0},
+{ 6, s_2_93, -1, 1, 0},
+{ 6, s_2_94, -1, 1, 0},
+{ 7, s_2_95, -1, 1, 0},
+{ 6, s_2_96, -1, 1, 0},
+{ 6, s_2_97, -1, 3, 0},
+{ 5, s_2_98, -1, 1, 0},
+{ 6, s_2_99, -1, 1, 0},
+{ 5, s_2_100, -1, 1, 0},
+{ 6, s_2_101, -1, 1, 0},
+{ 8, s_2_102, -1, 1, 0},
+{ 4, s_2_103, -1, 1, 0},
+{ 5, s_2_104, 103, 1, 0},
+{ 5, s_2_105, 103, 1, 0},
+{ 4, s_2_106, -1, 1, 0},
+{ 8, s_2_107, 106, 1, 0},
+{ 10, s_2_108, 107, 5, 0},
+{ 6, s_2_109, -1, 1, 0},
+{ 5, s_2_110, -1, 1, 0},
+{ 8, s_2_111, 110, 1, 0},
+{ 4, s_2_112, -1, 1, 0},
+{ 4, s_2_113, -1, 1, 0},
+{ 4, s_2_114, -1, 1, 0},
+{ 5, s_2_115, 114, 1, 0},
+{ 6, s_2_116, 115, 1, 0},
+{ 5, s_2_117, -1, 1, 0},
+{ 4, s_2_118, -1, 1, 0},
+{ 4, s_2_119, -1, 1, 0},
+{ 5, s_2_120, -1, 1, 0},
+{ 5, s_2_121, -1, 1, 0},
+{ 4, s_2_122, -1, 1, 0},
+{ 4, s_2_123, -1, 1, 0},
+{ 5, s_2_124, -1, 1, 0},
+{ 8, s_2_125, 124, 1, 0},
+{ 8, s_2_126, 124, 1, 0},
+{ 5, s_2_127, -1, 4, 0},
+{ 9, s_2_128, 127, 3, 0},
+{ 4, s_2_129, -1, 1, 0},
+{ 6, s_2_130, 129, 1, 0},
+{ 7, s_2_131, -1, 3, 0},
+{ 10, s_2_132, -1, 1, 0},
+{ 4, s_2_133, -1, 1, 0},
+{ 5, s_2_134, -1, 1, 0},
+{ 5, s_2_135, -1, 3, 0},
+{ 4, s_2_136, -1, 1, 0},
+{ 5, s_2_137, -1, 1, 0},
+{ 2, s_2_138, -1, 1, 0},
+{ 3, s_2_139, 138, 1, 0},
+{ 4, s_2_140, 138, 1, 0},
+{ 3, s_2_141, -1, 1, 0},
+{ 7, s_2_142, 141, 1, 0},
+{ 9, s_2_143, 142, 5, 0},
+{ 4, s_2_144, -1, 1, 0},
+{ 5, s_2_145, 144, 1, 0},
+{ 6, s_2_146, 145, 2, 0},
+{ 4, s_2_147, -1, 1, 0},
+{ 4, s_2_148, -1, 1, 0},
+{ 5, s_2_149, -1, 1, 0},
+{ 5, s_2_150, -1, 1, 0},
+{ 3, s_2_151, -1, 1, 0},
+{ 3, s_2_152, -1, 1, 0},
+{ 4, s_2_153, 152, 1, 0},
+{ 5, s_2_154, 153, 1, 0},
+{ 5, s_2_155, 153, 1, 0},
+{ 3, s_2_156, -1, 1, 0},
+{ 5, s_2_157, 156, 1, 0},
+{ 8, s_2_158, 157, 1, 0},
+{ 7, s_2_159, 157, 1, 0},
+{ 9, s_2_160, 159, 1, 0},
+{ 6, s_2_161, 156, 1, 0},
+{ 3, s_2_162, -1, 1, 0},
+{ 4, s_2_163, -1, 1, 0},
+{ 4, s_2_164, -1, 1, 0},
+{ 5, s_2_165, 164, 1, 0},
+{ 6, s_2_166, 165, 1, 0},
+{ 3, s_2_167, -1, 1, 0},
+{ 3, s_2_168, -1, 1, 0},
+{ 3, s_2_169, -1, 1, 0},
+{ 5, s_2_170, 169, 1, 0},
+{ 5, s_2_171, 169, 1, 0},
+{ 3, s_2_172, -1, 1, 0},
+{ 3, s_2_173, -1, 1, 0},
+{ 3, s_2_174, -1, 1, 0},
+{ 4, s_2_175, 174, 1, 0},
+{ 3, s_2_176, -1, 1, 0},
+{ 4, s_2_177, -1, 1, 0},
+{ 7, s_2_178, 177, 1, 0},
+{ 6, s_2_179, 177, 1, 0},
+{ 8, s_2_180, 179, 1, 0},
+{ 5, s_2_181, -1, 1, 0},
+{ 2, s_2_182, -1, 1, 0},
+{ 3, s_2_183, -1, 1, 0},
+{ 3, s_2_184, -1, 1, 0},
+{ 4, s_2_185, 184, 1, 0},
+{ 4, s_2_186, 184, 1, 0},
+{ 5, s_2_187, 186, 1, 0},
+{ 7, s_2_188, 187, 1, 0},
+{ 2, s_2_189, -1, 1, 0},
+{ 5, s_2_190, -1, 1, 0},
+{ 6, s_2_191, -1, 1, 0},
+{ 6, s_2_192, -1, 1, 0},
+{ 4, s_2_193, -1, 1, 0},
+{ 6, s_2_194, -1, 1, 0},
+{ 4, s_2_195, -1, 1, 0},
+{ 2, s_2_196, -1, 1, 0},
+{ 3, s_2_197, 196, 1, 0},
+{ 4, s_2_198, 197, 1, 0},
+{ 5, s_2_199, 198, 1, 0}
+};
+
+static const symbol s_3_0[3] = { 'a', 'b', 'a' };
+static const symbol s_3_1[4] = { 'e', 's', 'c', 'a' };
+static const symbol s_3_2[4] = { 'i', 's', 'c', 'a' };
+static const symbol s_3_3[5] = { 0xC3, 0xAF, 's', 'c', 'a' };
+static const symbol s_3_4[3] = { 'a', 'd', 'a' };
+static const symbol s_3_5[3] = { 'i', 'd', 'a' };
+static const symbol s_3_6[3] = { 'u', 'd', 'a' };
+static const symbol s_3_7[4] = { 0xC3, 0xAF, 'd', 'a' };
+static const symbol s_3_8[2] = { 'i', 'a' };
+static const symbol s_3_9[4] = { 'a', 'r', 'i', 'a' };
+static const symbol s_3_10[4] = { 'i', 'r', 'i', 'a' };
+static const symbol s_3_11[3] = { 'a', 'r', 'a' };
+static const symbol s_3_12[4] = { 'i', 'e', 'r', 'a' };
+static const symbol s_3_13[3] = { 'i', 'r', 'a' };
+static const symbol s_3_14[5] = { 'a', 'd', 'o', 'r', 'a' };
+static const symbol s_3_15[4] = { 0xC3, 0xAF, 'r', 'a' };
+static const symbol s_3_16[3] = { 'a', 'v', 'a' };
+static const symbol s_3_17[3] = { 'i', 'x', 'a' };
+static const symbol s_3_18[4] = { 'i', 't', 'z', 'a' };
+static const symbol s_3_19[3] = { 0xC3, 0xAD, 'a' };
+static const symbol s_3_20[5] = { 'a', 'r', 0xC3, 0xAD, 'a' };
+static const symbol s_3_21[5] = { 'e', 'r', 0xC3, 0xAD, 'a' };
+static const symbol s_3_22[5] = { 'i', 'r', 0xC3, 0xAD, 'a' };
+static const symbol s_3_23[3] = { 0xC3, 0xAF, 'a' };
+static const symbol s_3_24[3] = { 'i', 's', 'c' };
+static const symbol s_3_25[4] = { 0xC3, 0xAF, 's', 'c' };
+static const symbol s_3_26[2] = { 'a', 'd' };
+static const symbol s_3_27[2] = { 'e', 'd' };
+static const symbol s_3_28[2] = { 'i', 'd' };
+static const symbol s_3_29[2] = { 'i', 'e' };
+static const symbol s_3_30[2] = { 'r', 'e' };
+static const symbol s_3_31[3] = { 'd', 'r', 'e' };
+static const symbol s_3_32[3] = { 'a', 's', 'e' };
+static const symbol s_3_33[4] = { 'i', 'e', 's', 'e' };
+static const symbol s_3_34[4] = { 'a', 's', 't', 'e' };
+static const symbol s_3_35[4] = { 'i', 's', 't', 'e' };
+static const symbol s_3_36[2] = { 'i', 'i' };
+static const symbol s_3_37[3] = { 'i', 'n', 'i' };
+static const symbol s_3_38[5] = { 'e', 's', 'q', 'u', 'i' };
+static const symbol s_3_39[4] = { 'e', 'i', 'x', 'i' };
+static const symbol s_3_40[4] = { 'i', 't', 'z', 'i' };
+static const symbol s_3_41[2] = { 'a', 'm' };
+static const symbol s_3_42[2] = { 'e', 'm' };
+static const symbol s_3_43[4] = { 'a', 'r', 'e', 'm' };
+static const symbol s_3_44[4] = { 'i', 'r', 'e', 'm' };
+static const symbol s_3_45[5] = { 0xC3, 0xA0, 'r', 'e', 'm' };
+static const symbol s_3_46[5] = { 0xC3, 0xAD, 'r', 'e', 'm' };
+static const symbol s_3_47[6] = { 0xC3, 0xA0, 's', 's', 'e', 'm' };
+static const symbol s_3_48[6] = { 0xC3, 0xA9, 's', 's', 'e', 'm' };
+static const symbol s_3_49[5] = { 'i', 'g', 'u', 'e', 'm' };
+static const symbol s_3_50[6] = { 0xC3, 0xAF, 'g', 'u', 'e', 'm' };
+static const symbol s_3_51[4] = { 'a', 'v', 'e', 'm' };
+static const symbol s_3_52[5] = { 0xC3, 0xA0, 'v', 'e', 'm' };
+static const symbol s_3_53[5] = { 0xC3, 0xA1, 'v', 'e', 'm' };
+static const symbol s_3_54[6] = { 'i', 'r', 0xC3, 0xAC, 'e', 'm' };
+static const symbol s_3_55[4] = { 0xC3, 0xAD, 'e', 'm' };
+static const symbol s_3_56[6] = { 'a', 'r', 0xC3, 0xAD, 'e', 'm' };
+static const symbol s_3_57[6] = { 'i', 'r', 0xC3, 0xAD, 'e', 'm' };
+static const symbol s_3_58[5] = { 'a', 's', 's', 'i', 'm' };
+static const symbol s_3_59[5] = { 'e', 's', 's', 'i', 'm' };
+static const symbol s_3_60[5] = { 'i', 's', 's', 'i', 'm' };
+static const symbol s_3_61[6] = { 0xC3, 0xA0, 's', 's', 'i', 'm' };
+static const symbol s_3_62[6] = { 0xC3, 0xA8, 's', 's', 'i', 'm' };
+static const symbol s_3_63[6] = { 0xC3, 0xA9, 's', 's', 'i', 'm' };
+static const symbol s_3_64[6] = { 0xC3, 0xAD, 's', 's', 'i', 'm' };
+static const symbol s_3_65[3] = { 0xC3, 0xAF, 'm' };
+static const symbol s_3_66[2] = { 'a', 'n' };
+static const symbol s_3_67[4] = { 'a', 'b', 'a', 'n' };
+static const symbol s_3_68[5] = { 'a', 'r', 'i', 'a', 'n' };
+static const symbol s_3_69[4] = { 'a', 'r', 'a', 'n' };
+static const symbol s_3_70[5] = { 'i', 'e', 'r', 'a', 'n' };
+static const symbol s_3_71[4] = { 'i', 'r', 'a', 'n' };
+static const symbol s_3_72[4] = { 0xC3, 0xAD, 'a', 'n' };
+static const symbol s_3_73[6] = { 'a', 'r', 0xC3, 0xAD, 'a', 'n' };
+static const symbol s_3_74[6] = { 'e', 'r', 0xC3, 0xAD, 'a', 'n' };
+static const symbol s_3_75[6] = { 'i', 'r', 0xC3, 0xAD, 'a', 'n' };
+static const symbol s_3_76[2] = { 'e', 'n' };
+static const symbol s_3_77[3] = { 'i', 'e', 'n' };
+static const symbol s_3_78[5] = { 'a', 'r', 'i', 'e', 'n' };
+static const symbol s_3_79[5] = { 'i', 'r', 'i', 'e', 'n' };
+static const symbol s_3_80[4] = { 'a', 'r', 'e', 'n' };
+static const symbol s_3_81[4] = { 'e', 'r', 'e', 'n' };
+static const symbol s_3_82[4] = { 'i', 'r', 'e', 'n' };
+static const symbol s_3_83[5] = { 0xC3, 0xA0, 'r', 'e', 'n' };
+static const symbol s_3_84[5] = { 0xC3, 0xAF, 'r', 'e', 'n' };
+static const symbol s_3_85[4] = { 'a', 's', 'e', 'n' };
+static const symbol s_3_86[5] = { 'i', 'e', 's', 'e', 'n' };
+static const symbol s_3_87[5] = { 'a', 's', 's', 'e', 'n' };
+static const symbol s_3_88[5] = { 'e', 's', 's', 'e', 'n' };
+static const symbol s_3_89[5] = { 'i', 's', 's', 'e', 'n' };
+static const symbol s_3_90[6] = { 0xC3, 0xA9, 's', 's', 'e', 'n' };
+static const symbol s_3_91[6] = { 0xC3, 0xAF, 's', 's', 'e', 'n' };
+static const symbol s_3_92[6] = { 'e', 's', 'q', 'u', 'e', 'n' };
+static const symbol s_3_93[6] = { 'i', 's', 'q', 'u', 'e', 'n' };
+static const symbol s_3_94[7] = { 0xC3, 0xAF, 's', 'q', 'u', 'e', 'n' };
+static const symbol s_3_95[4] = { 'a', 'v', 'e', 'n' };
+static const symbol s_3_96[4] = { 'i', 'x', 'e', 'n' };
+static const symbol s_3_97[5] = { 'e', 'i', 'x', 'e', 'n' };
+static const symbol s_3_98[5] = { 0xC3, 0xAF, 'x', 'e', 'n' };
+static const symbol s_3_99[4] = { 0xC3, 0xAF, 'e', 'n' };
+static const symbol s_3_100[2] = { 'i', 'n' };
+static const symbol s_3_101[4] = { 'i', 'n', 'i', 'n' };
+static const symbol s_3_102[3] = { 's', 'i', 'n' };
+static const symbol s_3_103[4] = { 'i', 's', 'i', 'n' };
+static const symbol s_3_104[5] = { 'a', 's', 's', 'i', 'n' };
+static const symbol s_3_105[5] = { 'e', 's', 's', 'i', 'n' };
+static const symbol s_3_106[5] = { 'i', 's', 's', 'i', 'n' };
+static const symbol s_3_107[6] = { 0xC3, 0xAF, 's', 's', 'i', 'n' };
+static const symbol s_3_108[6] = { 'e', 's', 'q', 'u', 'i', 'n' };
+static const symbol s_3_109[5] = { 'e', 'i', 'x', 'i', 'n' };
+static const symbol s_3_110[4] = { 'a', 'r', 'o', 'n' };
+static const symbol s_3_111[5] = { 'i', 'e', 'r', 'o', 'n' };
+static const symbol s_3_112[5] = { 'a', 'r', 0xC3, 0xA1, 'n' };
+static const symbol s_3_113[5] = { 'e', 'r', 0xC3, 0xA1, 'n' };
+static const symbol s_3_114[5] = { 'i', 'r', 0xC3, 0xA1, 'n' };
+static const symbol s_3_115[4] = { 'i', 0xC3, 0xAF, 'n' };
+static const symbol s_3_116[3] = { 'a', 'd', 'o' };
+static const symbol s_3_117[3] = { 'i', 'd', 'o' };
+static const symbol s_3_118[4] = { 'a', 'n', 'd', 'o' };
+static const symbol s_3_119[5] = { 'i', 'e', 'n', 'd', 'o' };
+static const symbol s_3_120[2] = { 'i', 'o' };
+static const symbol s_3_121[3] = { 'i', 'x', 'o' };
+static const symbol s_3_122[4] = { 'e', 'i', 'x', 'o' };
+static const symbol s_3_123[4] = { 0xC3, 0xAF, 'x', 'o' };
+static const symbol s_3_124[4] = { 'i', 't', 'z', 'o' };
+static const symbol s_3_125[2] = { 'a', 'r' };
+static const symbol s_3_126[4] = { 't', 'z', 'a', 'r' };
+static const symbol s_3_127[2] = { 'e', 'r' };
+static const symbol s_3_128[5] = { 'e', 'i', 'x', 'e', 'r' };
+static const symbol s_3_129[2] = { 'i', 'r' };
+static const symbol s_3_130[4] = { 'a', 'd', 'o', 'r' };
+static const symbol s_3_131[2] = { 'a', 's' };
+static const symbol s_3_132[4] = { 'a', 'b', 'a', 's' };
+static const symbol s_3_133[4] = { 'a', 'd', 'a', 's' };
+static const symbol s_3_134[4] = { 'i', 'd', 'a', 's' };
+static const symbol s_3_135[4] = { 'a', 'r', 'a', 's' };
+static const symbol s_3_136[5] = { 'i', 'e', 'r', 'a', 's' };
+static const symbol s_3_137[4] = { 0xC3, 0xAD, 'a', 's' };
+static const symbol s_3_138[6] = { 'a', 'r', 0xC3, 0xAD, 'a', 's' };
+static const symbol s_3_139[6] = { 'e', 'r', 0xC3, 0xAD, 'a', 's' };
+static const symbol s_3_140[6] = { 'i', 'r', 0xC3, 0xAD, 'a', 's' };
+static const symbol s_3_141[3] = { 'i', 'd', 's' };
+static const symbol s_3_142[2] = { 'e', 's' };
+static const symbol s_3_143[4] = { 'a', 'd', 'e', 's' };
+static const symbol s_3_144[4] = { 'i', 'd', 'e', 's' };
+static const symbol s_3_145[4] = { 'u', 'd', 'e', 's' };
+static const symbol s_3_146[5] = { 0xC3, 0xAF, 'd', 'e', 's' };
+static const symbol s_3_147[5] = { 'a', 't', 'g', 'e', 's' };
+static const symbol s_3_148[3] = { 'i', 'e', 's' };
+static const symbol s_3_149[5] = { 'a', 'r', 'i', 'e', 's' };
+static const symbol s_3_150[5] = { 'i', 'r', 'i', 'e', 's' };
+static const symbol s_3_151[4] = { 'a', 'r', 'e', 's' };
+static const symbol s_3_152[4] = { 'i', 'r', 'e', 's' };
+static const symbol s_3_153[6] = { 'a', 'd', 'o', 'r', 'e', 's' };
+static const symbol s_3_154[5] = { 0xC3, 0xAF, 'r', 'e', 's' };
+static const symbol s_3_155[4] = { 'a', 's', 'e', 's' };
+static const symbol s_3_156[5] = { 'i', 'e', 's', 'e', 's' };
+static const symbol s_3_157[5] = { 'a', 's', 's', 'e', 's' };
+static const symbol s_3_158[5] = { 'e', 's', 's', 'e', 's' };
+static const symbol s_3_159[5] = { 'i', 's', 's', 'e', 's' };
+static const symbol s_3_160[6] = { 0xC3, 0xAF, 's', 's', 'e', 's' };
+static const symbol s_3_161[4] = { 'q', 'u', 'e', 's' };
+static const symbol s_3_162[6] = { 'e', 's', 'q', 'u', 'e', 's' };
+static const symbol s_3_163[7] = { 0xC3, 0xAF, 's', 'q', 'u', 'e', 's' };
+static const symbol s_3_164[4] = { 'a', 'v', 'e', 's' };
+static const symbol s_3_165[4] = { 'i', 'x', 'e', 's' };
+static const symbol s_3_166[5] = { 'e', 'i', 'x', 'e', 's' };
+static const symbol s_3_167[5] = { 0xC3, 0xAF, 'x', 'e', 's' };
+static const symbol s_3_168[4] = { 0xC3, 0xAF, 'e', 's' };
+static const symbol s_3_169[5] = { 'a', 'b', 'a', 'i', 's' };
+static const symbol s_3_170[5] = { 'a', 'r', 'a', 'i', 's' };
+static const symbol s_3_171[6] = { 'i', 'e', 'r', 'a', 'i', 's' };
+static const symbol s_3_172[5] = { 0xC3, 0xAD, 'a', 'i', 's' };
+static const symbol s_3_173[7] = { 'a', 'r', 0xC3, 0xAD, 'a', 'i', 's' };
+static const symbol s_3_174[7] = { 'e', 'r', 0xC3, 0xAD, 'a', 'i', 's' };
+static const symbol s_3_175[7] = { 'i', 'r', 0xC3, 0xAD, 'a', 'i', 's' };
+static const symbol s_3_176[5] = { 'a', 's', 'e', 'i', 's' };
+static const symbol s_3_177[6] = { 'i', 'e', 's', 'e', 'i', 's' };
+static const symbol s_3_178[6] = { 'a', 's', 't', 'e', 'i', 's' };
+static const symbol s_3_179[6] = { 'i', 's', 't', 'e', 'i', 's' };
+static const symbol s_3_180[4] = { 'i', 'n', 'i', 's' };
+static const symbol s_3_181[3] = { 's', 'i', 's' };
+static const symbol s_3_182[4] = { 'i', 's', 'i', 's' };
+static const symbol s_3_183[5] = { 'a', 's', 's', 'i', 's' };
+static const symbol s_3_184[5] = { 'e', 's', 's', 'i', 's' };
+static const symbol s_3_185[5] = { 'i', 's', 's', 'i', 's' };
+static const symbol s_3_186[6] = { 0xC3, 0xAF, 's', 's', 'i', 's' };
+static const symbol s_3_187[6] = { 'e', 's', 'q', 'u', 'i', 's' };
+static const symbol s_3_188[5] = { 'e', 'i', 'x', 'i', 's' };
+static const symbol s_3_189[5] = { 'i', 't', 'z', 'i', 's' };
+static const symbol s_3_190[4] = { 0xC3, 0xA1, 'i', 's' };
+static const symbol s_3_191[6] = { 'a', 'r', 0xC3, 0xA9, 'i', 's' };
+static const symbol s_3_192[6] = { 'e', 'r', 0xC3, 0xA9, 'i', 's' };
+static const symbol s_3_193[6] = { 'i', 'r', 0xC3, 0xA9, 'i', 's' };
+static const symbol s_3_194[3] = { 'a', 'm', 's' };
+static const symbol s_3_195[4] = { 'a', 'd', 'o', 's' };
+static const symbol s_3_196[4] = { 'i', 'd', 'o', 's' };
+static const symbol s_3_197[4] = { 'a', 'm', 'o', 's' };
+static const symbol s_3_198[7] = { 0xC3, 0xA1, 'b', 'a', 'm', 'o', 's' };
+static const symbol s_3_199[7] = { 0xC3, 0xA1, 'r', 'a', 'm', 'o', 's' };
+static const symbol s_3_200[8] = { 'i', 0xC3, 0xA9, 'r', 'a', 'm', 'o', 's' };
+static const symbol s_3_201[6] = { 0xC3, 0xAD, 'a', 'm', 'o', 's' };
+static const symbol s_3_202[8] = { 'a', 'r', 0xC3, 0xAD, 'a', 'm', 'o', 's' };
+static const symbol s_3_203[8] = { 'e', 'r', 0xC3, 0xAD, 'a', 'm', 'o', 's' };
+static const symbol s_3_204[8] = { 'i', 'r', 0xC3, 0xAD, 'a', 'm', 'o', 's' };
+static const symbol s_3_205[6] = { 'a', 'r', 'e', 'm', 'o', 's' };
+static const symbol s_3_206[6] = { 'e', 'r', 'e', 'm', 'o', 's' };
+static const symbol s_3_207[6] = { 'i', 'r', 'e', 'm', 'o', 's' };
+static const symbol s_3_208[7] = { 0xC3, 0xA1, 's', 'e', 'm', 'o', 's' };
+static const symbol s_3_209[8] = { 'i', 0xC3, 0xA9, 's', 'e', 'm', 'o', 's' };
+static const symbol s_3_210[4] = { 'i', 'm', 'o', 's' };
+static const symbol s_3_211[5] = { 'a', 'd', 'o', 'r', 's' };
+static const symbol s_3_212[3] = { 'a', 's', 's' };
+static const symbol s_3_213[5] = { 'e', 'r', 'a', 's', 's' };
+static const symbol s_3_214[3] = { 'e', 's', 's' };
+static const symbol s_3_215[3] = { 'a', 't', 's' };
+static const symbol s_3_216[3] = { 'i', 't', 's' };
+static const symbol s_3_217[4] = { 'e', 'n', 't', 's' };
+static const symbol s_3_218[3] = { 0xC3, 0xA0, 's' };
+static const symbol s_3_219[5] = { 'a', 'r', 0xC3, 0xA0, 's' };
+static const symbol s_3_220[5] = { 'i', 'r', 0xC3, 0xA0, 's' };
+static const symbol s_3_221[5] = { 'a', 'r', 0xC3, 0xA1, 's' };
+static const symbol s_3_222[5] = { 'e', 'r', 0xC3, 0xA1, 's' };
+static const symbol s_3_223[5] = { 'i', 'r', 0xC3, 0xA1, 's' };
+static const symbol s_3_224[3] = { 0xC3, 0xA9, 's' };
+static const symbol s_3_225[5] = { 'a', 'r', 0xC3, 0xA9, 's' };
+static const symbol s_3_226[3] = { 0xC3, 0xAD, 's' };
+static const symbol s_3_227[4] = { 'i', 0xC3, 0xAF, 's' };
+static const symbol s_3_228[2] = { 'a', 't' };
+static const symbol s_3_229[2] = { 'i', 't' };
+static const symbol s_3_230[3] = { 'a', 'n', 't' };
+static const symbol s_3_231[3] = { 'e', 'n', 't' };
+static const symbol s_3_232[3] = { 'i', 'n', 't' };
+static const symbol s_3_233[2] = { 'u', 't' };
+static const symbol s_3_234[3] = { 0xC3, 0xAF, 't' };
+static const symbol s_3_235[2] = { 'a', 'u' };
+static const symbol s_3_236[4] = { 'e', 'r', 'a', 'u' };
+static const symbol s_3_237[3] = { 'i', 'e', 'u' };
+static const symbol s_3_238[4] = { 'i', 'n', 'e', 'u' };
+static const symbol s_3_239[4] = { 'a', 'r', 'e', 'u' };
+static const symbol s_3_240[4] = { 'i', 'r', 'e', 'u' };
+static const symbol s_3_241[5] = { 0xC3, 0xA0, 'r', 'e', 'u' };
+static const symbol s_3_242[5] = { 0xC3, 0xAD, 'r', 'e', 'u' };
+static const symbol s_3_243[5] = { 'a', 's', 's', 'e', 'u' };
+static const symbol s_3_244[5] = { 'e', 's', 's', 'e', 'u' };
+static const symbol s_3_245[7] = { 'e', 'r', 'e', 's', 's', 'e', 'u' };
+static const symbol s_3_246[6] = { 0xC3, 0xA0, 's', 's', 'e', 'u' };
+static const symbol s_3_247[6] = { 0xC3, 0xA9, 's', 's', 'e', 'u' };
+static const symbol s_3_248[5] = { 'i', 'g', 'u', 'e', 'u' };
+static const symbol s_3_249[6] = { 0xC3, 0xAF, 'g', 'u', 'e', 'u' };
+static const symbol s_3_250[5] = { 0xC3, 0xA0, 'v', 'e', 'u' };
+static const symbol s_3_251[5] = { 0xC3, 0xA1, 'v', 'e', 'u' };
+static const symbol s_3_252[5] = { 'i', 't', 'z', 'e', 'u' };
+static const symbol s_3_253[4] = { 0xC3, 0xAC, 'e', 'u' };
+static const symbol s_3_254[6] = { 'i', 'r', 0xC3, 0xAC, 'e', 'u' };
+static const symbol s_3_255[4] = { 0xC3, 0xAD, 'e', 'u' };
+static const symbol s_3_256[6] = { 'a', 'r', 0xC3, 0xAD, 'e', 'u' };
+static const symbol s_3_257[6] = { 'i', 'r', 0xC3, 0xAD, 'e', 'u' };
+static const symbol s_3_258[5] = { 'a', 's', 's', 'i', 'u' };
+static const symbol s_3_259[5] = { 'i', 's', 's', 'i', 'u' };
+static const symbol s_3_260[6] = { 0xC3, 0xA0, 's', 's', 'i', 'u' };
+static const symbol s_3_261[6] = { 0xC3, 0xA8, 's', 's', 'i', 'u' };
+static const symbol s_3_262[6] = { 0xC3, 0xA9, 's', 's', 'i', 'u' };
+static const symbol s_3_263[6] = { 0xC3, 0xAD, 's', 's', 'i', 'u' };
+static const symbol s_3_264[3] = { 0xC3, 0xAF, 'u' };
+static const symbol s_3_265[2] = { 'i', 'x' };
+static const symbol s_3_266[3] = { 'e', 'i', 'x' };
+static const symbol s_3_267[3] = { 0xC3, 0xAF, 'x' };
+static const symbol s_3_268[3] = { 'i', 't', 'z' };
+static const symbol s_3_269[3] = { 'i', 0xC3, 0xA0 };
+static const symbol s_3_270[4] = { 'a', 'r', 0xC3, 0xA0 };
+static const symbol s_3_271[4] = { 'i', 'r', 0xC3, 0xA0 };
+static const symbol s_3_272[5] = { 'i', 't', 'z', 0xC3, 0xA0 };
+static const symbol s_3_273[4] = { 'a', 'r', 0xC3, 0xA1 };
+static const symbol s_3_274[4] = { 'e', 'r', 0xC3, 0xA1 };
+static const symbol s_3_275[4] = { 'i', 'r', 0xC3, 0xA1 };
+static const symbol s_3_276[4] = { 'i', 'r', 0xC3, 0xA8 };
+static const symbol s_3_277[4] = { 'a', 'r', 0xC3, 0xA9 };
+static const symbol s_3_278[4] = { 'e', 'r', 0xC3, 0xA9 };
+static const symbol s_3_279[4] = { 'i', 'r', 0xC3, 0xA9 };
+static const symbol s_3_280[2] = { 0xC3, 0xAD };
+static const symbol s_3_281[3] = { 'i', 0xC3, 0xAF };
+static const symbol s_3_282[3] = { 'i', 0xC3, 0xB3 };
+
+static const struct among a_3[283] =
+{
+{ 3, s_3_0, -1, 1, 0},
+{ 4, s_3_1, -1, 1, 0},
+{ 4, s_3_2, -1, 1, 0},
+{ 5, s_3_3, -1, 1, 0},
+{ 3, s_3_4, -1, 1, 0},
+{ 3, s_3_5, -1, 1, 0},
+{ 3, s_3_6, -1, 1, 0},
+{ 4, s_3_7, -1, 1, 0},
+{ 2, s_3_8, -1, 1, 0},
+{ 4, s_3_9, 8, 1, 0},
+{ 4, s_3_10, 8, 1, 0},
+{ 3, s_3_11, -1, 1, 0},
+{ 4, s_3_12, -1, 1, 0},
+{ 3, s_3_13, -1, 1, 0},
+{ 5, s_3_14, -1, 1, 0},
+{ 4, s_3_15, -1, 1, 0},
+{ 3, s_3_16, -1, 1, 0},
+{ 3, s_3_17, -1, 1, 0},
+{ 4, s_3_18, -1, 1, 0},
+{ 3, s_3_19, -1, 1, 0},
+{ 5, s_3_20, 19, 1, 0},
+{ 5, s_3_21, 19, 1, 0},
+{ 5, s_3_22, 19, 1, 0},
+{ 3, s_3_23, -1, 1, 0},
+{ 3, s_3_24, -1, 1, 0},
+{ 4, s_3_25, -1, 1, 0},
+{ 2, s_3_26, -1, 1, 0},
+{ 2, s_3_27, -1, 1, 0},
+{ 2, s_3_28, -1, 1, 0},
+{ 2, s_3_29, -1, 1, 0},
+{ 2, s_3_30, -1, 1, 0},
+{ 3, s_3_31, 30, 1, 0},
+{ 3, s_3_32, -1, 1, 0},
+{ 4, s_3_33, -1, 1, 0},
+{ 4, s_3_34, -1, 1, 0},
+{ 4, s_3_35, -1, 1, 0},
+{ 2, s_3_36, -1, 1, 0},
+{ 3, s_3_37, -1, 1, 0},
+{ 5, s_3_38, -1, 1, 0},
+{ 4, s_3_39, -1, 1, 0},
+{ 4, s_3_40, -1, 1, 0},
+{ 2, s_3_41, -1, 1, 0},
+{ 2, s_3_42, -1, 1, 0},
+{ 4, s_3_43, 42, 1, 0},
+{ 4, s_3_44, 42, 1, 0},
+{ 5, s_3_45, 42, 1, 0},
+{ 5, s_3_46, 42, 1, 0},
+{ 6, s_3_47, 42, 1, 0},
+{ 6, s_3_48, 42, 1, 0},
+{ 5, s_3_49, 42, 1, 0},
+{ 6, s_3_50, 42, 1, 0},
+{ 4, s_3_51, 42, 1, 0},
+{ 5, s_3_52, 42, 1, 0},
+{ 5, s_3_53, 42, 1, 0},
+{ 6, s_3_54, 42, 1, 0},
+{ 4, s_3_55, 42, 1, 0},
+{ 6, s_3_56, 55, 1, 0},
+{ 6, s_3_57, 55, 1, 0},
+{ 5, s_3_58, -1, 1, 0},
+{ 5, s_3_59, -1, 1, 0},
+{ 5, s_3_60, -1, 1, 0},
+{ 6, s_3_61, -1, 1, 0},
+{ 6, s_3_62, -1, 1, 0},
+{ 6, s_3_63, -1, 1, 0},
+{ 6, s_3_64, -1, 1, 0},
+{ 3, s_3_65, -1, 1, 0},
+{ 2, s_3_66, -1, 1, 0},
+{ 4, s_3_67, 66, 1, 0},
+{ 5, s_3_68, 66, 1, 0},
+{ 4, s_3_69, 66, 1, 0},
+{ 5, s_3_70, 66, 1, 0},
+{ 4, s_3_71, 66, 1, 0},
+{ 4, s_3_72, 66, 1, 0},
+{ 6, s_3_73, 72, 1, 0},
+{ 6, s_3_74, 72, 1, 0},
+{ 6, s_3_75, 72, 1, 0},
+{ 2, s_3_76, -1, 1, 0},
+{ 3, s_3_77, 76, 1, 0},
+{ 5, s_3_78, 77, 1, 0},
+{ 5, s_3_79, 77, 1, 0},
+{ 4, s_3_80, 76, 1, 0},
+{ 4, s_3_81, 76, 1, 0},
+{ 4, s_3_82, 76, 1, 0},
+{ 5, s_3_83, 76, 1, 0},
+{ 5, s_3_84, 76, 1, 0},
+{ 4, s_3_85, 76, 1, 0},
+{ 5, s_3_86, 76, 1, 0},
+{ 5, s_3_87, 76, 1, 0},
+{ 5, s_3_88, 76, 1, 0},
+{ 5, s_3_89, 76, 1, 0},
+{ 6, s_3_90, 76, 1, 0},
+{ 6, s_3_91, 76, 1, 0},
+{ 6, s_3_92, 76, 1, 0},
+{ 6, s_3_93, 76, 1, 0},
+{ 7, s_3_94, 76, 1, 0},
+{ 4, s_3_95, 76, 1, 0},
+{ 4, s_3_96, 76, 1, 0},
+{ 5, s_3_97, 96, 1, 0},
+{ 5, s_3_98, 76, 1, 0},
+{ 4, s_3_99, 76, 1, 0},
+{ 2, s_3_100, -1, 1, 0},
+{ 4, s_3_101, 100, 1, 0},
+{ 3, s_3_102, 100, 1, 0},
+{ 4, s_3_103, 102, 1, 0},
+{ 5, s_3_104, 102, 1, 0},
+{ 5, s_3_105, 102, 1, 0},
+{ 5, s_3_106, 102, 1, 0},
+{ 6, s_3_107, 102, 1, 0},
+{ 6, s_3_108, 100, 1, 0},
+{ 5, s_3_109, 100, 1, 0},
+{ 4, s_3_110, -1, 1, 0},
+{ 5, s_3_111, -1, 1, 0},
+{ 5, s_3_112, -1, 1, 0},
+{ 5, s_3_113, -1, 1, 0},
+{ 5, s_3_114, -1, 1, 0},
+{ 4, s_3_115, -1, 1, 0},
+{ 3, s_3_116, -1, 1, 0},
+{ 3, s_3_117, -1, 1, 0},
+{ 4, s_3_118, -1, 2, 0},
+{ 5, s_3_119, -1, 1, 0},
+{ 2, s_3_120, -1, 1, 0},
+{ 3, s_3_121, -1, 1, 0},
+{ 4, s_3_122, 121, 1, 0},
+{ 4, s_3_123, -1, 1, 0},
+{ 4, s_3_124, -1, 1, 0},
+{ 2, s_3_125, -1, 1, 0},
+{ 4, s_3_126, 125, 1, 0},
+{ 2, s_3_127, -1, 1, 0},
+{ 5, s_3_128, 127, 1, 0},
+{ 2, s_3_129, -1, 1, 0},
+{ 4, s_3_130, -1, 1, 0},
+{ 2, s_3_131, -1, 1, 0},
+{ 4, s_3_132, 131, 1, 0},
+{ 4, s_3_133, 131, 1, 0},
+{ 4, s_3_134, 131, 1, 0},
+{ 4, s_3_135, 131, 1, 0},
+{ 5, s_3_136, 131, 1, 0},
+{ 4, s_3_137, 131, 1, 0},
+{ 6, s_3_138, 137, 1, 0},
+{ 6, s_3_139, 137, 1, 0},
+{ 6, s_3_140, 137, 1, 0},
+{ 3, s_3_141, -1, 1, 0},
+{ 2, s_3_142, -1, 1, 0},
+{ 4, s_3_143, 142, 1, 0},
+{ 4, s_3_144, 142, 1, 0},
+{ 4, s_3_145, 142, 1, 0},
+{ 5, s_3_146, 142, 1, 0},
+{ 5, s_3_147, 142, 1, 0},
+{ 3, s_3_148, 142, 1, 0},
+{ 5, s_3_149, 148, 1, 0},
+{ 5, s_3_150, 148, 1, 0},
+{ 4, s_3_151, 142, 1, 0},
+{ 4, s_3_152, 142, 1, 0},
+{ 6, s_3_153, 142, 1, 0},
+{ 5, s_3_154, 142, 1, 0},
+{ 4, s_3_155, 142, 1, 0},
+{ 5, s_3_156, 142, 1, 0},
+{ 5, s_3_157, 142, 1, 0},
+{ 5, s_3_158, 142, 1, 0},
+{ 5, s_3_159, 142, 1, 0},
+{ 6, s_3_160, 142, 1, 0},
+{ 4, s_3_161, 142, 1, 0},
+{ 6, s_3_162, 161, 1, 0},
+{ 7, s_3_163, 161, 1, 0},
+{ 4, s_3_164, 142, 1, 0},
+{ 4, s_3_165, 142, 1, 0},
+{ 5, s_3_166, 165, 1, 0},
+{ 5, s_3_167, 142, 1, 0},
+{ 4, s_3_168, 142, 1, 0},
+{ 5, s_3_169, -1, 1, 0},
+{ 5, s_3_170, -1, 1, 0},
+{ 6, s_3_171, -1, 1, 0},
+{ 5, s_3_172, -1, 1, 0},
+{ 7, s_3_173, 172, 1, 0},
+{ 7, s_3_174, 172, 1, 0},
+{ 7, s_3_175, 172, 1, 0},
+{ 5, s_3_176, -1, 1, 0},
+{ 6, s_3_177, -1, 1, 0},
+{ 6, s_3_178, -1, 1, 0},
+{ 6, s_3_179, -1, 1, 0},
+{ 4, s_3_180, -1, 1, 0},
+{ 3, s_3_181, -1, 1, 0},
+{ 4, s_3_182, 181, 1, 0},
+{ 5, s_3_183, 181, 1, 0},
+{ 5, s_3_184, 181, 1, 0},
+{ 5, s_3_185, 181, 1, 0},
+{ 6, s_3_186, 181, 1, 0},
+{ 6, s_3_187, -1, 1, 0},
+{ 5, s_3_188, -1, 1, 0},
+{ 5, s_3_189, -1, 1, 0},
+{ 4, s_3_190, -1, 1, 0},
+{ 6, s_3_191, -1, 1, 0},
+{ 6, s_3_192, -1, 1, 0},
+{ 6, s_3_193, -1, 1, 0},
+{ 3, s_3_194, -1, 1, 0},
+{ 4, s_3_195, -1, 1, 0},
+{ 4, s_3_196, -1, 1, 0},
+{ 4, s_3_197, -1, 1, 0},
+{ 7, s_3_198, 197, 1, 0},
+{ 7, s_3_199, 197, 1, 0},
+{ 8, s_3_200, 197, 1, 0},
+{ 6, s_3_201, 197, 1, 0},
+{ 8, s_3_202, 201, 1, 0},
+{ 8, s_3_203, 201, 1, 0},
+{ 8, s_3_204, 201, 1, 0},
+{ 6, s_3_205, -1, 1, 0},
+{ 6, s_3_206, -1, 1, 0},
+{ 6, s_3_207, -1, 1, 0},
+{ 7, s_3_208, -1, 1, 0},
+{ 8, s_3_209, -1, 1, 0},
+{ 4, s_3_210, -1, 1, 0},
+{ 5, s_3_211, -1, 1, 0},
+{ 3, s_3_212, -1, 1, 0},
+{ 5, s_3_213, 212, 1, 0},
+{ 3, s_3_214, -1, 1, 0},
+{ 3, s_3_215, -1, 1, 0},
+{ 3, s_3_216, -1, 1, 0},
+{ 4, s_3_217, -1, 1, 0},
+{ 3, s_3_218, -1, 1, 0},
+{ 5, s_3_219, 218, 1, 0},
+{ 5, s_3_220, 218, 1, 0},
+{ 5, s_3_221, -1, 1, 0},
+{ 5, s_3_222, -1, 1, 0},
+{ 5, s_3_223, -1, 1, 0},
+{ 3, s_3_224, -1, 1, 0},
+{ 5, s_3_225, 224, 1, 0},
+{ 3, s_3_226, -1, 1, 0},
+{ 4, s_3_227, -1, 1, 0},
+{ 2, s_3_228, -1, 1, 0},
+{ 2, s_3_229, -1, 1, 0},
+{ 3, s_3_230, -1, 1, 0},
+{ 3, s_3_231, -1, 1, 0},
+{ 3, s_3_232, -1, 1, 0},
+{ 2, s_3_233, -1, 1, 0},
+{ 3, s_3_234, -1, 1, 0},
+{ 2, s_3_235, -1, 1, 0},
+{ 4, s_3_236, 235, 1, 0},
+{ 3, s_3_237, -1, 1, 0},
+{ 4, s_3_238, -1, 1, 0},
+{ 4, s_3_239, -1, 1, 0},
+{ 4, s_3_240, -1, 1, 0},
+{ 5, s_3_241, -1, 1, 0},
+{ 5, s_3_242, -1, 1, 0},
+{ 5, s_3_243, -1, 1, 0},
+{ 5, s_3_244, -1, 1, 0},
+{ 7, s_3_245, 244, 1, 0},
+{ 6, s_3_246, -1, 1, 0},
+{ 6, s_3_247, -1, 1, 0},
+{ 5, s_3_248, -1, 1, 0},
+{ 6, s_3_249, -1, 1, 0},
+{ 5, s_3_250, -1, 1, 0},
+{ 5, s_3_251, -1, 1, 0},
+{ 5, s_3_252, -1, 1, 0},
+{ 4, s_3_253, -1, 1, 0},
+{ 6, s_3_254, 253, 1, 0},
+{ 4, s_3_255, -1, 1, 0},
+{ 6, s_3_256, 255, 1, 0},
+{ 6, s_3_257, 255, 1, 0},
+{ 5, s_3_258, -1, 1, 0},
+{ 5, s_3_259, -1, 1, 0},
+{ 6, s_3_260, -1, 1, 0},
+{ 6, s_3_261, -1, 1, 0},
+{ 6, s_3_262, -1, 1, 0},
+{ 6, s_3_263, -1, 1, 0},
+{ 3, s_3_264, -1, 1, 0},
+{ 2, s_3_265, -1, 1, 0},
+{ 3, s_3_266, 265, 1, 0},
+{ 3, s_3_267, -1, 1, 0},
+{ 3, s_3_268, -1, 1, 0},
+{ 3, s_3_269, -1, 1, 0},
+{ 4, s_3_270, -1, 1, 0},
+{ 4, s_3_271, -1, 1, 0},
+{ 5, s_3_272, -1, 1, 0},
+{ 4, s_3_273, -1, 1, 0},
+{ 4, s_3_274, -1, 1, 0},
+{ 4, s_3_275, -1, 1, 0},
+{ 4, s_3_276, -1, 1, 0},
+{ 4, s_3_277, -1, 1, 0},
+{ 4, s_3_278, -1, 1, 0},
+{ 4, s_3_279, -1, 1, 0},
+{ 2, s_3_280, -1, 1, 0},
+{ 3, s_3_281, -1, 1, 0},
+{ 3, s_3_282, -1, 1, 0}
+};
+
+static const symbol s_4_0[1] = { 'a' };
+static const symbol s_4_1[1] = { 'e' };
+static const symbol s_4_2[1] = { 'i' };
+static const symbol s_4_3[3] = { 0xC3, 0xAF, 'n' };
+static const symbol s_4_4[1] = { 'o' };
+static const symbol s_4_5[2] = { 'i', 'r' };
+static const symbol s_4_6[1] = { 's' };
+static const symbol s_4_7[2] = { 'i', 's' };
+static const symbol s_4_8[2] = { 'o', 's' };
+static const symbol s_4_9[3] = { 0xC3, 0xAF, 's' };
+static const symbol s_4_10[2] = { 'i', 't' };
+static const symbol s_4_11[2] = { 'e', 'u' };
+static const symbol s_4_12[2] = { 'i', 'u' };
+static const symbol s_4_13[3] = { 'i', 'q', 'u' };
+static const symbol s_4_14[3] = { 'i', 't', 'z' };
+static const symbol s_4_15[2] = { 0xC3, 0xA0 };
+static const symbol s_4_16[2] = { 0xC3, 0xA1 };
+static const symbol s_4_17[2] = { 0xC3, 0xA9 };
+static const symbol s_4_18[2] = { 0xC3, 0xAC };
+static const symbol s_4_19[2] = { 0xC3, 0xAD };
+static const symbol s_4_20[2] = { 0xC3, 0xAF };
+static const symbol s_4_21[2] = { 0xC3, 0xB3 };
+
+static const struct among a_4[22] =
+{
+{ 1, s_4_0, -1, 1, 0},
+{ 1, s_4_1, -1, 1, 0},
+{ 1, s_4_2, -1, 1, 0},
+{ 3, s_4_3, -1, 1, 0},
+{ 1, s_4_4, -1, 1, 0},
+{ 2, s_4_5, -1, 1, 0},
+{ 1, s_4_6, -1, 1, 0},
+{ 2, s_4_7, 6, 1, 0},
+{ 2, s_4_8, 6, 1, 0},
+{ 3, s_4_9, 6, 1, 0},
+{ 2, s_4_10, -1, 1, 0},
+{ 2, s_4_11, -1, 1, 0},
+{ 2, s_4_12, -1, 1, 0},
+{ 3, s_4_13, -1, 2, 0},
+{ 3, s_4_14, -1, 1, 0},
+{ 2, s_4_15, -1, 1, 0},
+{ 2, s_4_16, -1, 1, 0},
+{ 2, s_4_17, -1, 1, 0},
+{ 2, s_4_18, -1, 1, 0},
+{ 2, s_4_19, -1, 1, 0},
+{ 2, s_4_20, -1, 1, 0},
+{ 2, s_4_21, -1, 1, 0}
+};
+
+static const unsigned char g_v[] = { 17, 65, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 129, 81, 6, 10 };
+
+static const symbol s_0[] = { 'a' };
+static const symbol s_1[] = { 'e' };
+static const symbol s_2[] = { 'i' };
+static const symbol s_3[] = { 'o' };
+static const symbol s_4[] = { 'u' };
+static const symbol s_5[] = { '.' };
+static const symbol s_6[] = { 'l', 'o', 'g' };
+static const symbol s_7[] = { 'i', 'c' };
+static const symbol s_8[] = { 'c' };
+static const symbol s_9[] = { 'i', 'c' };
+
+static int r_mark_regions(struct SN_env * z) {
+ z->I[1] = z->l;
+ z->I[0] = z->l;
+ { int c1 = z->c;
+ {
+ int ret = out_grouping_U(z, g_v, 97, 252, 1);
+ if (ret < 0) goto lab0;
+ z->c += ret;
+ }
+ {
+ int ret = in_grouping_U(z, g_v, 97, 252, 1);
+ if (ret < 0) goto lab0;
+ z->c += ret;
+ }
+ z->I[1] = z->c;
+ {
+ int ret = out_grouping_U(z, g_v, 97, 252, 1);
+ if (ret < 0) goto lab0;
+ z->c += ret;
+ }
+ {
+ int ret = in_grouping_U(z, g_v, 97, 252, 1);
+ if (ret < 0) goto lab0;
+ z->c += ret;
+ }
+ z->I[0] = z->c;
+ lab0:
+ z->c = c1;
+ }
+ return 1;
+}
+
+static int r_cleaning(struct SN_env * z) {
+ int among_var;
+ while(1) {
+ int c1 = z->c;
+ z->bra = z->c;
+ if (z->c + 1 >= z->l || z->p[z->c + 1] >> 5 != 5 || !((344765187 >> (z->p[z->c + 1] & 0x1f)) & 1)) among_var = 7; else
+ among_var = find_among(z, a_0, 13);
+ if (!(among_var)) goto lab0;
+ z->ket = z->c;
+ switch (among_var) {
+ case 1:
+ { int ret = slice_from_s(z, 1, s_0);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 2:
+ { int ret = slice_from_s(z, 1, s_1);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 3:
+ { int ret = slice_from_s(z, 1, s_2);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 4:
+ { int ret = slice_from_s(z, 1, s_3);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 5:
+ { int ret = slice_from_s(z, 1, s_4);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 6:
+ { int ret = slice_from_s(z, 1, s_5);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 7:
+ { int ret = skip_utf8(z->p, z->c, z->l, 1);
+ if (ret < 0) goto lab0;
+ z->c = ret;
+ }
+ break;
+ }
+ continue;
+ lab0:
+ z->c = c1;
+ break;
+ }
+ return 1;
+}
+
+static int r_R1(struct SN_env * z) {
+ if (!(z->I[1] <= z->c)) return 0;
+ return 1;
+}
+
+static int r_R2(struct SN_env * z) {
+ if (!(z->I[0] <= z->c)) return 0;
+ return 1;
+}
+
+static int r_attached_pronoun(struct SN_env * z) {
+ z->ket = z->c;
+ if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1634850 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
+ if (!(find_among_b(z, a_1, 39))) return 0;
+ z->bra = z->c;
+ { int ret = r_R1(z);
+ if (ret <= 0) return ret;
+ }
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ return 1;
+}
+
+static int r_standard_suffix(struct SN_env * z) {
+ int among_var;
+ z->ket = z->c;
+ among_var = find_among_b(z, a_2, 200);
+ if (!(among_var)) return 0;
+ z->bra = z->c;
+ switch (among_var) {
+ case 1:
+ { int ret = r_R1(z);
+ if (ret <= 0) return ret;
+ }
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 2:
+ { int ret = r_R2(z);
+ if (ret <= 0) return ret;
+ }
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 3:
+ { int ret = r_R2(z);
+ if (ret <= 0) return ret;
+ }
+ { int ret = slice_from_s(z, 3, s_6);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 4:
+ { int ret = r_R2(z);
+ if (ret <= 0) return ret;
+ }
+ { int ret = slice_from_s(z, 2, s_7);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 5:
+ { int ret = r_R1(z);
+ if (ret <= 0) return ret;
+ }
+ { int ret = slice_from_s(z, 1, s_8);
+ if (ret < 0) return ret;
+ }
+ break;
+ }
+ return 1;
+}
+
+static int r_verb_suffix(struct SN_env * z) {
+ int among_var;
+ z->ket = z->c;
+ among_var = find_among_b(z, a_3, 283);
+ if (!(among_var)) return 0;
+ z->bra = z->c;
+ switch (among_var) {
+ case 1:
+ { int ret = r_R1(z);
+ if (ret <= 0) return ret;
+ }
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 2:
+ { int ret = r_R2(z);
+ if (ret <= 0) return ret;
+ }
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ break;
+ }
+ return 1;
+}
+
+static int r_residual_suffix(struct SN_env * z) {
+ int among_var;
+ z->ket = z->c;
+ among_var = find_among_b(z, a_4, 22);
+ if (!(among_var)) return 0;
+ z->bra = z->c;
+ switch (among_var) {
+ case 1:
+ { int ret = r_R1(z);
+ if (ret <= 0) return ret;
+ }
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 2:
+ { int ret = r_R1(z);
+ if (ret <= 0) return ret;
+ }
+ { int ret = slice_from_s(z, 2, s_9);
+ if (ret < 0) return ret;
+ }
+ break;
+ }
+ return 1;
+}
+
+extern int catalan_UTF_8_stem(struct SN_env * z) {
+
+ { int ret = r_mark_regions(z);
+ if (ret < 0) return ret;
+ }
+ z->lb = z->c; z->c = z->l;
+
+ { int m1 = z->l - z->c; (void)m1;
+ { int ret = r_attached_pronoun(z);
+ if (ret < 0) return ret;
+ }
+ z->c = z->l - m1;
+ }
+ { int m2 = z->l - z->c; (void)m2;
+ { int m3 = z->l - z->c; (void)m3;
+ { int ret = r_standard_suffix(z);
+ if (ret == 0) goto lab2;
+ if (ret < 0) return ret;
+ }
+ goto lab1;
+ lab2:
+ z->c = z->l - m3;
+ { int ret = r_verb_suffix(z);
+ if (ret == 0) goto lab0;
+ if (ret < 0) return ret;
+ }
+ }
+ lab1:
+ lab0:
+ z->c = z->l - m2;
+ }
+ { int m4 = z->l - z->c; (void)m4;
+ { int ret = r_residual_suffix(z);
+ if (ret < 0) return ret;
+ }
+ z->c = z->l - m4;
+ }
+ z->c = z->lb;
+ { int c5 = z->c;
+ { int ret = r_cleaning(z);
+ if (ret < 0) return ret;
+ }
+ z->c = c5;
+ }
+ return 1;
+}
+
+extern struct SN_env * catalan_UTF_8_create_env(void) { return SN_create_env(0, 2); }
+
+extern void catalan_UTF_8_close_env(struct SN_env * z) { SN_close_env(z, 0); }
+
diff --git a/src/backend/snowball/libstemmer/stem_UTF_8_danish.c b/src/backend/snowball/libstemmer/stem_UTF_8_danish.c
new file mode 100644
index 0000000..3d60ffc
--- /dev/null
+++ b/src/backend/snowball/libstemmer/stem_UTF_8_danish.c
@@ -0,0 +1,318 @@
+/* Generated by Snowball 2.2.0 - https://snowballstem.org/ */
+
+#include "header.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+extern int danish_UTF_8_stem(struct SN_env * z);
+#ifdef __cplusplus
+}
+#endif
+static int r_undouble(struct SN_env * z);
+static int r_other_suffix(struct SN_env * z);
+static int r_consonant_pair(struct SN_env * z);
+static int r_main_suffix(struct SN_env * z);
+static int r_mark_regions(struct SN_env * z);
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+extern struct SN_env * danish_UTF_8_create_env(void);
+extern void danish_UTF_8_close_env(struct SN_env * z);
+
+
+#ifdef __cplusplus
+}
+#endif
+static const symbol s_0_0[3] = { 'h', 'e', 'd' };
+static const symbol s_0_1[5] = { 'e', 't', 'h', 'e', 'd' };
+static const symbol s_0_2[4] = { 'e', 'r', 'e', 'd' };
+static const symbol s_0_3[1] = { 'e' };
+static const symbol s_0_4[5] = { 'e', 'r', 'e', 'd', 'e' };
+static const symbol s_0_5[4] = { 'e', 'n', 'd', 'e' };
+static const symbol s_0_6[6] = { 'e', 'r', 'e', 'n', 'd', 'e' };
+static const symbol s_0_7[3] = { 'e', 'n', 'e' };
+static const symbol s_0_8[4] = { 'e', 'r', 'n', 'e' };
+static const symbol s_0_9[3] = { 'e', 'r', 'e' };
+static const symbol s_0_10[2] = { 'e', 'n' };
+static const symbol s_0_11[5] = { 'h', 'e', 'd', 'e', 'n' };
+static const symbol s_0_12[4] = { 'e', 'r', 'e', 'n' };
+static const symbol s_0_13[2] = { 'e', 'r' };
+static const symbol s_0_14[5] = { 'h', 'e', 'd', 'e', 'r' };
+static const symbol s_0_15[4] = { 'e', 'r', 'e', 'r' };
+static const symbol s_0_16[1] = { 's' };
+static const symbol s_0_17[4] = { 'h', 'e', 'd', 's' };
+static const symbol s_0_18[2] = { 'e', 's' };
+static const symbol s_0_19[5] = { 'e', 'n', 'd', 'e', 's' };
+static const symbol s_0_20[7] = { 'e', 'r', 'e', 'n', 'd', 'e', 's' };
+static const symbol s_0_21[4] = { 'e', 'n', 'e', 's' };
+static const symbol s_0_22[5] = { 'e', 'r', 'n', 'e', 's' };
+static const symbol s_0_23[4] = { 'e', 'r', 'e', 's' };
+static const symbol s_0_24[3] = { 'e', 'n', 's' };
+static const symbol s_0_25[6] = { 'h', 'e', 'd', 'e', 'n', 's' };
+static const symbol s_0_26[5] = { 'e', 'r', 'e', 'n', 's' };
+static const symbol s_0_27[3] = { 'e', 'r', 's' };
+static const symbol s_0_28[3] = { 'e', 't', 's' };
+static const symbol s_0_29[5] = { 'e', 'r', 'e', 't', 's' };
+static const symbol s_0_30[2] = { 'e', 't' };
+static const symbol s_0_31[4] = { 'e', 'r', 'e', 't' };
+
+static const struct among a_0[32] =
+{
+{ 3, s_0_0, -1, 1, 0},
+{ 5, s_0_1, 0, 1, 0},
+{ 4, s_0_2, -1, 1, 0},
+{ 1, s_0_3, -1, 1, 0},
+{ 5, s_0_4, 3, 1, 0},
+{ 4, s_0_5, 3, 1, 0},
+{ 6, s_0_6, 5, 1, 0},
+{ 3, s_0_7, 3, 1, 0},
+{ 4, s_0_8, 3, 1, 0},
+{ 3, s_0_9, 3, 1, 0},
+{ 2, s_0_10, -1, 1, 0},
+{ 5, s_0_11, 10, 1, 0},
+{ 4, s_0_12, 10, 1, 0},
+{ 2, s_0_13, -1, 1, 0},
+{ 5, s_0_14, 13, 1, 0},
+{ 4, s_0_15, 13, 1, 0},
+{ 1, s_0_16, -1, 2, 0},
+{ 4, s_0_17, 16, 1, 0},
+{ 2, s_0_18, 16, 1, 0},
+{ 5, s_0_19, 18, 1, 0},
+{ 7, s_0_20, 19, 1, 0},
+{ 4, s_0_21, 18, 1, 0},
+{ 5, s_0_22, 18, 1, 0},
+{ 4, s_0_23, 18, 1, 0},
+{ 3, s_0_24, 16, 1, 0},
+{ 6, s_0_25, 24, 1, 0},
+{ 5, s_0_26, 24, 1, 0},
+{ 3, s_0_27, 16, 1, 0},
+{ 3, s_0_28, 16, 1, 0},
+{ 5, s_0_29, 28, 1, 0},
+{ 2, s_0_30, -1, 1, 0},
+{ 4, s_0_31, 30, 1, 0}
+};
+
+static const symbol s_1_0[2] = { 'g', 'd' };
+static const symbol s_1_1[2] = { 'd', 't' };
+static const symbol s_1_2[2] = { 'g', 't' };
+static const symbol s_1_3[2] = { 'k', 't' };
+
+static const struct among a_1[4] =
+{
+{ 2, s_1_0, -1, -1, 0},
+{ 2, s_1_1, -1, -1, 0},
+{ 2, s_1_2, -1, -1, 0},
+{ 2, s_1_3, -1, -1, 0}
+};
+
+static const symbol s_2_0[2] = { 'i', 'g' };
+static const symbol s_2_1[3] = { 'l', 'i', 'g' };
+static const symbol s_2_2[4] = { 'e', 'l', 'i', 'g' };
+static const symbol s_2_3[3] = { 'e', 'l', 's' };
+static const symbol s_2_4[5] = { 'l', 0xC3, 0xB8, 's', 't' };
+
+static const struct among a_2[5] =
+{
+{ 2, s_2_0, -1, 1, 0},
+{ 3, s_2_1, 0, 1, 0},
+{ 4, s_2_2, 1, 1, 0},
+{ 3, s_2_3, -1, 1, 0},
+{ 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 };
+
+static const symbol s_0[] = { 's', 't' };
+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) {
+ z->I[1] = z->l;
+ { int c_test1 = z->c;
+ { int ret = skip_utf8(z->p, z->c, z->l, 3);
+ if (ret < 0) return 0;
+ z->c = ret;
+ }
+ z->I[0] = z->c;
+ z->c = c_test1;
+ }
+ if (out_grouping_U(z, g_v, 97, 248, 1) < 0) return 0;
+ {
+ int ret = in_grouping_U(z, g_v, 97, 248, 1);
+ if (ret < 0) return 0;
+ z->c += ret;
+ }
+ z->I[1] = z->c;
+
+ if (!(z->I[1] < z->I[0])) goto lab0;
+ z->I[1] = z->I[0];
+lab0:
+ return 1;
+}
+
+static int r_main_suffix(struct SN_env * z) {
+ int among_var;
+
+ { int mlimit1;
+ if (z->c < z->I[1]) return 0;
+ mlimit1 = z->lb; z->lb = z->I[1];
+ z->ket = z->c;
+ 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; }
+ among_var = find_among_b(z, a_0, 32);
+ if (!(among_var)) { z->lb = mlimit1; return 0; }
+ z->bra = z->c;
+ z->lb = mlimit1;
+ }
+ switch (among_var) {
+ case 1:
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 2:
+ if (in_grouping_b_U(z, g_s_ending, 97, 229, 0)) return 0;
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ break;
+ }
+ return 1;
+}
+
+static int r_consonant_pair(struct SN_env * z) {
+ { int m_test1 = z->l - z->c;
+
+ { int mlimit2;
+ if (z->c < z->I[1]) return 0;
+ mlimit2 = z->lb; z->lb = z->I[1];
+ z->ket = z->c;
+ if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 100 && z->p[z->c - 1] != 116)) { z->lb = mlimit2; return 0; }
+ if (!(find_among_b(z, a_1, 4))) { z->lb = mlimit2; return 0; }
+ z->bra = z->c;
+ z->lb = mlimit2;
+ }
+ z->c = z->l - m_test1;
+ }
+ { int ret = skip_b_utf8(z->p, z->c, z->lb, 1);
+ if (ret < 0) return 0;
+ z->c = ret;
+ }
+ z->bra = z->c;
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ return 1;
+}
+
+static int r_other_suffix(struct SN_env * z) {
+ int among_var;
+ { int m1 = z->l - z->c; (void)m1;
+ z->ket = z->c;
+ if (!(eq_s_b(z, 2, s_0))) goto lab0;
+ z->bra = z->c;
+ if (!(eq_s_b(z, 2, s_1))) goto lab0;
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ lab0:
+ z->c = z->l - m1;
+ }
+
+ { int mlimit2;
+ if (z->c < z->I[1]) return 0;
+ mlimit2 = z->lb; z->lb = z->I[1];
+ z->ket = z->c;
+ 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; }
+ among_var = find_among_b(z, a_2, 5);
+ if (!(among_var)) { z->lb = mlimit2; return 0; }
+ z->bra = z->c;
+ z->lb = mlimit2;
+ }
+ switch (among_var) {
+ case 1:
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ { int m3 = z->l - z->c; (void)m3;
+ { int ret = r_consonant_pair(z);
+ if (ret < 0) return ret;
+ }
+ z->c = z->l - m3;
+ }
+ break;
+ case 2:
+ { int ret = slice_from_s(z, 4, s_2);
+ if (ret < 0) return ret;
+ }
+ break;
+ }
+ return 1;
+}
+
+static int r_undouble(struct SN_env * z) {
+
+ { int mlimit1;
+ if (z->c < z->I[1]) return 0;
+ mlimit1 = z->lb; z->lb = z->I[1];
+ z->ket = z->c;
+ if (in_grouping_b_U(z, g_c, 98, 122, 0)) { z->lb = mlimit1; return 0; }
+ z->bra = z->c;
+ z->S[0] = slice_to(z, z->S[0]);
+ if (z->S[0] == 0) return -1;
+ z->lb = mlimit1;
+ }
+ if (!(eq_v_b(z, z->S[0]))) return 0;
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ return 1;
+}
+
+extern int danish_UTF_8_stem(struct SN_env * z) {
+ { int c1 = z->c;
+ { int ret = r_mark_regions(z);
+ if (ret < 0) return ret;
+ }
+ z->c = c1;
+ }
+ z->lb = z->c; z->c = z->l;
+
+ { int m2 = z->l - z->c; (void)m2;
+ { int ret = r_main_suffix(z);
+ if (ret < 0) return ret;
+ }
+ z->c = z->l - m2;
+ }
+ { int m3 = z->l - z->c; (void)m3;
+ { int ret = r_consonant_pair(z);
+ if (ret < 0) return ret;
+ }
+ z->c = z->l - m3;
+ }
+ { int m4 = z->l - z->c; (void)m4;
+ { int ret = r_other_suffix(z);
+ if (ret < 0) return ret;
+ }
+ z->c = z->l - m4;
+ }
+ { int m5 = z->l - z->c; (void)m5;
+ { int ret = r_undouble(z);
+ if (ret < 0) return ret;
+ }
+ z->c = z->l - m5;
+ }
+ z->c = z->lb;
+ return 1;
+}
+
+extern struct SN_env * danish_UTF_8_create_env(void) { return SN_create_env(1, 2); }
+
+extern void danish_UTF_8_close_env(struct SN_env * z) { SN_close_env(z, 1); }
+
diff --git a/src/backend/snowball/libstemmer/stem_UTF_8_dutch.c b/src/backend/snowball/libstemmer/stem_UTF_8_dutch.c
new file mode 100644
index 0000000..7a307ef
--- /dev/null
+++ b/src/backend/snowball/libstemmer/stem_UTF_8_dutch.c
@@ -0,0 +1,613 @@
+/* Generated by Snowball 2.2.0 - https://snowballstem.org/ */
+
+#include "header.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+extern int dutch_UTF_8_stem(struct SN_env * z);
+#ifdef __cplusplus
+}
+#endif
+static int r_standard_suffix(struct SN_env * z);
+static int r_undouble(struct SN_env * z);
+static int r_R2(struct SN_env * z);
+static int r_R1(struct SN_env * z);
+static int r_mark_regions(struct SN_env * z);
+static int r_en_ending(struct SN_env * z);
+static int r_e_ending(struct SN_env * z);
+static int r_postlude(struct SN_env * z);
+static int r_prelude(struct SN_env * z);
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+extern struct SN_env * dutch_UTF_8_create_env(void);
+extern void dutch_UTF_8_close_env(struct SN_env * z);
+
+
+#ifdef __cplusplus
+}
+#endif
+static const symbol s_0_1[2] = { 0xC3, 0xA1 };
+static const symbol s_0_2[2] = { 0xC3, 0xA4 };
+static const symbol s_0_3[2] = { 0xC3, 0xA9 };
+static const symbol s_0_4[2] = { 0xC3, 0xAB };
+static const symbol s_0_5[2] = { 0xC3, 0xAD };
+static const symbol s_0_6[2] = { 0xC3, 0xAF };
+static const symbol s_0_7[2] = { 0xC3, 0xB3 };
+static const symbol s_0_8[2] = { 0xC3, 0xB6 };
+static const symbol s_0_9[2] = { 0xC3, 0xBA };
+static const symbol s_0_10[2] = { 0xC3, 0xBC };
+
+static const struct among a_0[11] =
+{
+{ 0, 0, -1, 6, 0},
+{ 2, s_0_1, 0, 1, 0},
+{ 2, s_0_2, 0, 1, 0},
+{ 2, s_0_3, 0, 2, 0},
+{ 2, s_0_4, 0, 2, 0},
+{ 2, s_0_5, 0, 3, 0},
+{ 2, s_0_6, 0, 3, 0},
+{ 2, s_0_7, 0, 4, 0},
+{ 2, s_0_8, 0, 4, 0},
+{ 2, s_0_9, 0, 5, 0},
+{ 2, s_0_10, 0, 5, 0}
+};
+
+static const symbol s_1_1[1] = { 'I' };
+static const symbol s_1_2[1] = { 'Y' };
+
+static const struct among a_1[3] =
+{
+{ 0, 0, -1, 3, 0},
+{ 1, s_1_1, 0, 2, 0},
+{ 1, s_1_2, 0, 1, 0}
+};
+
+static const symbol s_2_0[2] = { 'd', 'd' };
+static const symbol s_2_1[2] = { 'k', 'k' };
+static const symbol s_2_2[2] = { 't', 't' };
+
+static const struct among a_2[3] =
+{
+{ 2, s_2_0, -1, -1, 0},
+{ 2, s_2_1, -1, -1, 0},
+{ 2, s_2_2, -1, -1, 0}
+};
+
+static const symbol s_3_0[3] = { 'e', 'n', 'e' };
+static const symbol s_3_1[2] = { 's', 'e' };
+static const symbol s_3_2[2] = { 'e', 'n' };
+static const symbol s_3_3[5] = { 'h', 'e', 'd', 'e', 'n' };
+static const symbol s_3_4[1] = { 's' };
+
+static const struct among a_3[5] =
+{
+{ 3, s_3_0, -1, 2, 0},
+{ 2, s_3_1, -1, 3, 0},
+{ 2, s_3_2, -1, 2, 0},
+{ 5, s_3_3, 2, 1, 0},
+{ 1, s_3_4, -1, 3, 0}
+};
+
+static const symbol s_4_0[3] = { 'e', 'n', 'd' };
+static const symbol s_4_1[2] = { 'i', 'g' };
+static const symbol s_4_2[3] = { 'i', 'n', 'g' };
+static const symbol s_4_3[4] = { 'l', 'i', 'j', 'k' };
+static const symbol s_4_4[4] = { 'b', 'a', 'a', 'r' };
+static const symbol s_4_5[3] = { 'b', 'a', 'r' };
+
+static const struct among a_4[6] =
+{
+{ 3, s_4_0, -1, 1, 0},
+{ 2, s_4_1, -1, 2, 0},
+{ 3, s_4_2, -1, 1, 0},
+{ 4, s_4_3, -1, 3, 0},
+{ 4, s_4_4, -1, 4, 0},
+{ 3, s_4_5, -1, 5, 0}
+};
+
+static const symbol s_5_0[2] = { 'a', 'a' };
+static const symbol s_5_1[2] = { 'e', 'e' };
+static const symbol s_5_2[2] = { 'o', 'o' };
+static const symbol s_5_3[2] = { 'u', 'u' };
+
+static const struct among a_5[4] =
+{
+{ 2, s_5_0, -1, -1, 0},
+{ 2, s_5_1, -1, -1, 0},
+{ 2, s_5_2, -1, -1, 0},
+{ 2, s_5_3, -1, -1, 0}
+};
+
+static const unsigned char g_v[] = { 17, 65, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128 };
+
+static const unsigned char g_v_I[] = { 1, 0, 0, 17, 65, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128 };
+
+static const unsigned char g_v_j[] = { 17, 67, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128 };
+
+static const symbol s_0[] = { 'a' };
+static const symbol s_1[] = { 'e' };
+static const symbol s_2[] = { 'i' };
+static const symbol s_3[] = { 'o' };
+static const symbol s_4[] = { 'u' };
+static const symbol s_5[] = { 'Y' };
+static const symbol s_6[] = { 'I' };
+static const symbol s_7[] = { 'Y' };
+static const symbol s_8[] = { 'y' };
+static const symbol s_9[] = { 'i' };
+static const symbol s_10[] = { 'g', 'e', 'm' };
+static const symbol s_11[] = { 'h', 'e', 'i', 'd' };
+static const symbol s_12[] = { 'h', 'e', 'i', 'd' };
+static const symbol s_13[] = { 'e', 'n' };
+static const symbol s_14[] = { 'i', 'g' };
+
+static int r_prelude(struct SN_env * z) {
+ int among_var;
+ { int c_test1 = z->c;
+ while(1) {
+ int c2 = z->c;
+ z->bra = z->c;
+ if (z->c + 1 >= z->l || z->p[z->c + 1] >> 5 != 5 || !((340306450 >> (z->p[z->c + 1] & 0x1f)) & 1)) among_var = 6; else
+ among_var = find_among(z, a_0, 11);
+ if (!(among_var)) goto lab0;
+ z->ket = z->c;
+ switch (among_var) {
+ case 1:
+ { int ret = slice_from_s(z, 1, s_0);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 2:
+ { int ret = slice_from_s(z, 1, s_1);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 3:
+ { int ret = slice_from_s(z, 1, s_2);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 4:
+ { int ret = slice_from_s(z, 1, s_3);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 5:
+ { int ret = slice_from_s(z, 1, s_4);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 6:
+ { int ret = skip_utf8(z->p, z->c, z->l, 1);
+ if (ret < 0) goto lab0;
+ z->c = ret;
+ }
+ break;
+ }
+ continue;
+ lab0:
+ z->c = c2;
+ break;
+ }
+ z->c = c_test1;
+ }
+ { int c3 = z->c;
+ z->bra = z->c;
+ if (z->c == z->l || z->p[z->c] != 'y') { z->c = c3; goto lab1; }
+ z->c++;
+ z->ket = z->c;
+ { int ret = slice_from_s(z, 1, s_5);
+ if (ret < 0) return ret;
+ }
+ lab1:
+ ;
+ }
+ while(1) {
+ int c4 = z->c;
+ while(1) {
+ int c5 = z->c;
+ if (in_grouping_U(z, g_v, 97, 232, 0)) goto lab3;
+ z->bra = z->c;
+ { int c6 = z->c;
+ if (z->c == z->l || z->p[z->c] != 'i') goto lab5;
+ z->c++;
+ z->ket = z->c;
+ if (in_grouping_U(z, g_v, 97, 232, 0)) goto lab5;
+ { int ret = slice_from_s(z, 1, s_6);
+ if (ret < 0) return ret;
+ }
+ goto lab4;
+ lab5:
+ z->c = c6;
+ if (z->c == z->l || z->p[z->c] != 'y') goto lab3;
+ z->c++;
+ z->ket = z->c;
+ { int ret = slice_from_s(z, 1, s_7);
+ if (ret < 0) return ret;
+ }
+ }
+ lab4:
+ z->c = c5;
+ break;
+ lab3:
+ z->c = c5;
+ { int ret = skip_utf8(z->p, z->c, z->l, 1);
+ if (ret < 0) goto lab2;
+ z->c = ret;
+ }
+ }
+ continue;
+ lab2:
+ z->c = c4;
+ break;
+ }
+ return 1;
+}
+
+static int r_mark_regions(struct SN_env * z) {
+ z->I[1] = z->l;
+ z->I[0] = z->l;
+ {
+ int ret = out_grouping_U(z, g_v, 97, 232, 1);
+ if (ret < 0) return 0;
+ z->c += ret;
+ }
+ {
+ int ret = in_grouping_U(z, g_v, 97, 232, 1);
+ if (ret < 0) return 0;
+ z->c += ret;
+ }
+ z->I[1] = z->c;
+
+ if (!(z->I[1] < 3)) goto lab0;
+ z->I[1] = 3;
+lab0:
+ {
+ int ret = out_grouping_U(z, g_v, 97, 232, 1);
+ if (ret < 0) return 0;
+ z->c += ret;
+ }
+ {
+ int ret = in_grouping_U(z, g_v, 97, 232, 1);
+ if (ret < 0) return 0;
+ z->c += ret;
+ }
+ z->I[0] = z->c;
+ return 1;
+}
+
+static int r_postlude(struct SN_env * z) {
+ int among_var;
+ while(1) {
+ int c1 = z->c;
+ z->bra = z->c;
+ if (z->c >= z->l || (z->p[z->c + 0] != 73 && z->p[z->c + 0] != 89)) among_var = 3; else
+ among_var = find_among(z, a_1, 3);
+ if (!(among_var)) goto lab0;
+ z->ket = z->c;
+ switch (among_var) {
+ case 1:
+ { int ret = slice_from_s(z, 1, s_8);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 2:
+ { int ret = slice_from_s(z, 1, s_9);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 3:
+ { int ret = skip_utf8(z->p, z->c, z->l, 1);
+ if (ret < 0) goto lab0;
+ z->c = ret;
+ }
+ break;
+ }
+ continue;
+ lab0:
+ z->c = c1;
+ break;
+ }
+ return 1;
+}
+
+static int r_R1(struct SN_env * z) {
+ if (!(z->I[1] <= z->c)) return 0;
+ return 1;
+}
+
+static int r_R2(struct SN_env * z) {
+ if (!(z->I[0] <= z->c)) return 0;
+ return 1;
+}
+
+static int r_undouble(struct SN_env * z) {
+ { int m_test1 = z->l - z->c;
+ if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1050640 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
+ if (!(find_among_b(z, a_2, 3))) return 0;
+ z->c = z->l - m_test1;
+ }
+ z->ket = z->c;
+ { int ret = skip_b_utf8(z->p, z->c, z->lb, 1);
+ if (ret < 0) return 0;
+ z->c = ret;
+ }
+ z->bra = z->c;
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ return 1;
+}
+
+static int r_e_ending(struct SN_env * z) {
+ z->I[2] = 0;
+ z->ket = z->c;
+ if (z->c <= z->lb || z->p[z->c - 1] != 'e') return 0;
+ z->c--;
+ z->bra = z->c;
+ { int ret = r_R1(z);
+ if (ret <= 0) return ret;
+ }
+ { int m_test1 = z->l - z->c;
+ if (out_grouping_b_U(z, g_v, 97, 232, 0)) return 0;
+ z->c = z->l - m_test1;
+ }
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ z->I[2] = 1;
+ { int ret = r_undouble(z);
+ if (ret <= 0) return ret;
+ }
+ return 1;
+}
+
+static int r_en_ending(struct SN_env * z) {
+ { int ret = r_R1(z);
+ if (ret <= 0) return ret;
+ }
+ { int m1 = z->l - z->c; (void)m1;
+ if (out_grouping_b_U(z, g_v, 97, 232, 0)) return 0;
+ z->c = z->l - m1;
+ { int m2 = z->l - z->c; (void)m2;
+ if (!(eq_s_b(z, 3, s_10))) goto lab0;
+ return 0;
+ lab0:
+ z->c = z->l - m2;
+ }
+ }
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ { int ret = r_undouble(z);
+ if (ret <= 0) return ret;
+ }
+ return 1;
+}
+
+static int r_standard_suffix(struct SN_env * z) {
+ int among_var;
+ { int m1 = z->l - z->c; (void)m1;
+ z->ket = z->c;
+ if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((540704 >> (z->p[z->c - 1] & 0x1f)) & 1)) goto lab0;
+ among_var = find_among_b(z, a_3, 5);
+ if (!(among_var)) goto lab0;
+ z->bra = z->c;
+ switch (among_var) {
+ case 1:
+ { int ret = r_R1(z);
+ if (ret == 0) goto lab0;
+ if (ret < 0) return ret;
+ }
+ { int ret = slice_from_s(z, 4, s_11);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 2:
+ { int ret = r_en_ending(z);
+ if (ret == 0) goto lab0;
+ if (ret < 0) return ret;
+ }
+ break;
+ case 3:
+ { int ret = r_R1(z);
+ if (ret == 0) goto lab0;
+ if (ret < 0) return ret;
+ }
+ if (out_grouping_b_U(z, g_v_j, 97, 232, 0)) goto lab0;
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ break;
+ }
+ lab0:
+ z->c = z->l - m1;
+ }
+ { int m2 = z->l - z->c; (void)m2;
+ { int ret = r_e_ending(z);
+ if (ret < 0) return ret;
+ }
+ z->c = z->l - m2;
+ }
+ { int m3 = z->l - z->c; (void)m3;
+ z->ket = z->c;
+ if (!(eq_s_b(z, 4, s_12))) goto lab1;
+ z->bra = z->c;
+ { int ret = r_R2(z);
+ if (ret == 0) goto lab1;
+ if (ret < 0) return ret;
+ }
+ { int m4 = z->l - z->c; (void)m4;
+ if (z->c <= z->lb || z->p[z->c - 1] != 'c') goto lab2;
+ z->c--;
+ goto lab1;
+ lab2:
+ z->c = z->l - m4;
+ }
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ z->ket = z->c;
+ if (!(eq_s_b(z, 2, s_13))) goto lab1;
+ z->bra = z->c;
+ { int ret = r_en_ending(z);
+ if (ret == 0) goto lab1;
+ if (ret < 0) return ret;
+ }
+ lab1:
+ z->c = z->l - m3;
+ }
+ { int m5 = z->l - z->c; (void)m5;
+ z->ket = z->c;
+ if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((264336 >> (z->p[z->c - 1] & 0x1f)) & 1)) goto lab3;
+ among_var = find_among_b(z, a_4, 6);
+ if (!(among_var)) goto lab3;
+ z->bra = z->c;
+ switch (among_var) {
+ case 1:
+ { int ret = r_R2(z);
+ if (ret == 0) goto lab3;
+ if (ret < 0) return ret;
+ }
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ { int m6 = z->l - z->c; (void)m6;
+ z->ket = z->c;
+ if (!(eq_s_b(z, 2, s_14))) goto lab5;
+ z->bra = z->c;
+ { int ret = r_R2(z);
+ if (ret == 0) goto lab5;
+ if (ret < 0) return ret;
+ }
+ { int m7 = z->l - z->c; (void)m7;
+ if (z->c <= z->lb || z->p[z->c - 1] != 'e') goto lab6;
+ z->c--;
+ goto lab5;
+ lab6:
+ z->c = z->l - m7;
+ }
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ goto lab4;
+ lab5:
+ z->c = z->l - m6;
+ { int ret = r_undouble(z);
+ if (ret == 0) goto lab3;
+ if (ret < 0) return ret;
+ }
+ }
+ lab4:
+ break;
+ case 2:
+ { int ret = r_R2(z);
+ if (ret == 0) goto lab3;
+ if (ret < 0) return ret;
+ }
+ { int m8 = z->l - z->c; (void)m8;
+ if (z->c <= z->lb || z->p[z->c - 1] != 'e') goto lab7;
+ z->c--;
+ goto lab3;
+ lab7:
+ z->c = z->l - m8;
+ }
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 3:
+ { int ret = r_R2(z);
+ if (ret == 0) goto lab3;
+ if (ret < 0) return ret;
+ }
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ { int ret = r_e_ending(z);
+ if (ret == 0) goto lab3;
+ if (ret < 0) return ret;
+ }
+ break;
+ case 4:
+ { int ret = r_R2(z);
+ if (ret == 0) goto lab3;
+ if (ret < 0) return ret;
+ }
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 5:
+ { int ret = r_R2(z);
+ if (ret == 0) goto lab3;
+ if (ret < 0) return ret;
+ }
+ if (!(z->I[2])) goto lab3;
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ break;
+ }
+ lab3:
+ z->c = z->l - m5;
+ }
+ { int m9 = z->l - z->c; (void)m9;
+ if (out_grouping_b_U(z, g_v_I, 73, 232, 0)) goto lab8;
+ { int m_test10 = z->l - z->c;
+ if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((2129954 >> (z->p[z->c - 1] & 0x1f)) & 1)) goto lab8;
+ if (!(find_among_b(z, a_5, 4))) goto lab8;
+ if (out_grouping_b_U(z, g_v, 97, 232, 0)) goto lab8;
+ z->c = z->l - m_test10;
+ }
+ z->ket = z->c;
+ { int ret = skip_b_utf8(z->p, z->c, z->lb, 1);
+ if (ret < 0) goto lab8;
+ z->c = ret;
+ }
+ z->bra = z->c;
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ lab8:
+ z->c = z->l - m9;
+ }
+ return 1;
+}
+
+extern int dutch_UTF_8_stem(struct SN_env * z) {
+ { int c1 = z->c;
+ { int ret = r_prelude(z);
+ if (ret < 0) return ret;
+ }
+ z->c = c1;
+ }
+ { int c2 = z->c;
+ { int ret = r_mark_regions(z);
+ if (ret < 0) return ret;
+ }
+ z->c = c2;
+ }
+ z->lb = z->c; z->c = z->l;
+
+
+ { int ret = r_standard_suffix(z);
+ if (ret < 0) return ret;
+ }
+ z->c = z->lb;
+ { int c3 = z->c;
+ { int ret = r_postlude(z);
+ if (ret < 0) return ret;
+ }
+ z->c = c3;
+ }
+ return 1;
+}
+
+extern struct SN_env * dutch_UTF_8_create_env(void) { return SN_create_env(0, 3); }
+
+extern void dutch_UTF_8_close_env(struct SN_env * z) { SN_close_env(z, 0); }
+
diff --git a/src/backend/snowball/libstemmer/stem_UTF_8_english.c b/src/backend/snowball/libstemmer/stem_UTF_8_english.c
new file mode 100644
index 0000000..bc6eae1
--- /dev/null
+++ b/src/backend/snowball/libstemmer/stem_UTF_8_english.c
@@ -0,0 +1,1074 @@
+/* Generated by Snowball 2.2.0 - https://snowballstem.org/ */
+
+#include "header.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+extern int english_UTF_8_stem(struct SN_env * z);
+#ifdef __cplusplus
+}
+#endif
+static int r_exception2(struct SN_env * z);
+static int r_exception1(struct SN_env * z);
+static int r_Step_5(struct SN_env * z);
+static int r_Step_4(struct SN_env * z);
+static int r_Step_3(struct SN_env * z);
+static int r_Step_2(struct SN_env * z);
+static int r_Step_1c(struct SN_env * z);
+static int r_Step_1b(struct SN_env * z);
+static int r_Step_1a(struct SN_env * z);
+static int r_R2(struct SN_env * z);
+static int r_R1(struct SN_env * z);
+static int r_shortv(struct SN_env * z);
+static int r_mark_regions(struct SN_env * z);
+static int r_postlude(struct SN_env * z);
+static int r_prelude(struct SN_env * z);
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+extern struct SN_env * english_UTF_8_create_env(void);
+extern void english_UTF_8_close_env(struct SN_env * z);
+
+
+#ifdef __cplusplus
+}
+#endif
+static const symbol s_0_0[5] = { 'a', 'r', 's', 'e', 'n' };
+static const symbol s_0_1[6] = { 'c', 'o', 'm', 'm', 'u', 'n' };
+static const symbol s_0_2[5] = { 'g', 'e', 'n', 'e', 'r' };
+
+static const struct among a_0[3] =
+{
+{ 5, s_0_0, -1, -1, 0},
+{ 6, s_0_1, -1, -1, 0},
+{ 5, s_0_2, -1, -1, 0}
+};
+
+static const symbol s_1_0[1] = { '\'' };
+static const symbol s_1_1[3] = { '\'', 's', '\'' };
+static const symbol s_1_2[2] = { '\'', 's' };
+
+static const struct among a_1[3] =
+{
+{ 1, s_1_0, -1, 1, 0},
+{ 3, s_1_1, 0, 1, 0},
+{ 2, s_1_2, -1, 1, 0}
+};
+
+static const symbol s_2_0[3] = { 'i', 'e', 'd' };
+static const symbol s_2_1[1] = { 's' };
+static const symbol s_2_2[3] = { 'i', 'e', 's' };
+static const symbol s_2_3[4] = { 's', 's', 'e', 's' };
+static const symbol s_2_4[2] = { 's', 's' };
+static const symbol s_2_5[2] = { 'u', 's' };
+
+static const struct among a_2[6] =
+{
+{ 3, s_2_0, -1, 2, 0},
+{ 1, s_2_1, -1, 3, 0},
+{ 3, s_2_2, 1, 2, 0},
+{ 4, s_2_3, 1, 1, 0},
+{ 2, s_2_4, 1, -1, 0},
+{ 2, s_2_5, 1, -1, 0}
+};
+
+static const symbol s_3_1[2] = { 'b', 'b' };
+static const symbol s_3_2[2] = { 'd', 'd' };
+static const symbol s_3_3[2] = { 'f', 'f' };
+static const symbol s_3_4[2] = { 'g', 'g' };
+static const symbol s_3_5[2] = { 'b', 'l' };
+static const symbol s_3_6[2] = { 'm', 'm' };
+static const symbol s_3_7[2] = { 'n', 'n' };
+static const symbol s_3_8[2] = { 'p', 'p' };
+static const symbol s_3_9[2] = { 'r', 'r' };
+static const symbol s_3_10[2] = { 'a', 't' };
+static const symbol s_3_11[2] = { 't', 't' };
+static const symbol s_3_12[2] = { 'i', 'z' };
+
+static const struct among a_3[13] =
+{
+{ 0, 0, -1, 3, 0},
+{ 2, s_3_1, 0, 2, 0},
+{ 2, s_3_2, 0, 2, 0},
+{ 2, s_3_3, 0, 2, 0},
+{ 2, s_3_4, 0, 2, 0},
+{ 2, s_3_5, 0, 1, 0},
+{ 2, s_3_6, 0, 2, 0},
+{ 2, s_3_7, 0, 2, 0},
+{ 2, s_3_8, 0, 2, 0},
+{ 2, s_3_9, 0, 2, 0},
+{ 2, s_3_10, 0, 1, 0},
+{ 2, s_3_11, 0, 2, 0},
+{ 2, s_3_12, 0, 1, 0}
+};
+
+static const symbol s_4_0[2] = { 'e', 'd' };
+static const symbol s_4_1[3] = { 'e', 'e', 'd' };
+static const symbol s_4_2[3] = { 'i', 'n', 'g' };
+static const symbol s_4_3[4] = { 'e', 'd', 'l', 'y' };
+static const symbol s_4_4[5] = { 'e', 'e', 'd', 'l', 'y' };
+static const symbol s_4_5[5] = { 'i', 'n', 'g', 'l', 'y' };
+
+static const struct among a_4[6] =
+{
+{ 2, s_4_0, -1, 2, 0},
+{ 3, s_4_1, 0, 1, 0},
+{ 3, s_4_2, -1, 2, 0},
+{ 4, s_4_3, -1, 2, 0},
+{ 5, s_4_4, 3, 1, 0},
+{ 5, s_4_5, -1, 2, 0}
+};
+
+static const symbol s_5_0[4] = { 'a', 'n', 'c', 'i' };
+static const symbol s_5_1[4] = { 'e', 'n', 'c', 'i' };
+static const symbol s_5_2[3] = { 'o', 'g', 'i' };
+static const symbol s_5_3[2] = { 'l', 'i' };
+static const symbol s_5_4[3] = { 'b', 'l', 'i' };
+static const symbol s_5_5[4] = { 'a', 'b', 'l', 'i' };
+static const symbol s_5_6[4] = { 'a', 'l', 'l', 'i' };
+static const symbol s_5_7[5] = { 'f', 'u', 'l', 'l', 'i' };
+static const symbol s_5_8[6] = { 'l', 'e', 's', 's', 'l', 'i' };
+static const symbol s_5_9[5] = { 'o', 'u', 's', 'l', 'i' };
+static const symbol s_5_10[5] = { 'e', 'n', 't', 'l', 'i' };
+static const symbol s_5_11[5] = { 'a', 'l', 'i', 't', 'i' };
+static const symbol s_5_12[6] = { 'b', 'i', 'l', 'i', 't', 'i' };
+static const symbol s_5_13[5] = { 'i', 'v', 'i', 't', 'i' };
+static const symbol s_5_14[6] = { 't', 'i', 'o', 'n', 'a', 'l' };
+static const symbol s_5_15[7] = { 'a', 't', 'i', 'o', 'n', 'a', 'l' };
+static const symbol s_5_16[5] = { 'a', 'l', 'i', 's', 'm' };
+static const symbol s_5_17[5] = { 'a', 't', 'i', 'o', 'n' };
+static const symbol s_5_18[7] = { 'i', 'z', 'a', 't', 'i', 'o', 'n' };
+static const symbol s_5_19[4] = { 'i', 'z', 'e', 'r' };
+static const symbol s_5_20[4] = { 'a', 't', 'o', 'r' };
+static const symbol s_5_21[7] = { 'i', 'v', 'e', 'n', 'e', 's', 's' };
+static const symbol s_5_22[7] = { 'f', 'u', 'l', 'n', 'e', 's', 's' };
+static const symbol s_5_23[7] = { 'o', 'u', 's', 'n', 'e', 's', 's' };
+
+static const struct among a_5[24] =
+{
+{ 4, s_5_0, -1, 3, 0},
+{ 4, s_5_1, -1, 2, 0},
+{ 3, s_5_2, -1, 13, 0},
+{ 2, s_5_3, -1, 15, 0},
+{ 3, s_5_4, 3, 12, 0},
+{ 4, s_5_5, 4, 4, 0},
+{ 4, s_5_6, 3, 8, 0},
+{ 5, s_5_7, 3, 9, 0},
+{ 6, s_5_8, 3, 14, 0},
+{ 5, s_5_9, 3, 10, 0},
+{ 5, s_5_10, 3, 5, 0},
+{ 5, s_5_11, -1, 8, 0},
+{ 6, s_5_12, -1, 12, 0},
+{ 5, s_5_13, -1, 11, 0},
+{ 6, s_5_14, -1, 1, 0},
+{ 7, s_5_15, 14, 7, 0},
+{ 5, s_5_16, -1, 8, 0},
+{ 5, s_5_17, -1, 7, 0},
+{ 7, s_5_18, 17, 6, 0},
+{ 4, s_5_19, -1, 6, 0},
+{ 4, s_5_20, -1, 7, 0},
+{ 7, s_5_21, -1, 11, 0},
+{ 7, s_5_22, -1, 9, 0},
+{ 7, s_5_23, -1, 10, 0}
+};
+
+static const symbol s_6_0[5] = { 'i', 'c', 'a', 't', 'e' };
+static const symbol s_6_1[5] = { 'a', 't', 'i', 'v', 'e' };
+static const symbol s_6_2[5] = { 'a', 'l', 'i', 'z', 'e' };
+static const symbol s_6_3[5] = { 'i', 'c', 'i', 't', 'i' };
+static const symbol s_6_4[4] = { 'i', 'c', 'a', 'l' };
+static const symbol s_6_5[6] = { 't', 'i', 'o', 'n', 'a', 'l' };
+static const symbol s_6_6[7] = { 'a', 't', 'i', 'o', 'n', 'a', 'l' };
+static const symbol s_6_7[3] = { 'f', 'u', 'l' };
+static const symbol s_6_8[4] = { 'n', 'e', 's', 's' };
+
+static const struct among a_6[9] =
+{
+{ 5, s_6_0, -1, 4, 0},
+{ 5, s_6_1, -1, 6, 0},
+{ 5, s_6_2, -1, 3, 0},
+{ 5, s_6_3, -1, 4, 0},
+{ 4, s_6_4, -1, 4, 0},
+{ 6, s_6_5, -1, 1, 0},
+{ 7, s_6_6, 5, 2, 0},
+{ 3, s_6_7, -1, 5, 0},
+{ 4, s_6_8, -1, 5, 0}
+};
+
+static const symbol s_7_0[2] = { 'i', 'c' };
+static const symbol s_7_1[4] = { 'a', 'n', 'c', 'e' };
+static const symbol s_7_2[4] = { 'e', 'n', 'c', 'e' };
+static const symbol s_7_3[4] = { 'a', 'b', 'l', 'e' };
+static const symbol s_7_4[4] = { 'i', 'b', 'l', 'e' };
+static const symbol s_7_5[3] = { 'a', 't', 'e' };
+static const symbol s_7_6[3] = { 'i', 'v', 'e' };
+static const symbol s_7_7[3] = { 'i', 'z', 'e' };
+static const symbol s_7_8[3] = { 'i', 't', 'i' };
+static const symbol s_7_9[2] = { 'a', 'l' };
+static const symbol s_7_10[3] = { 'i', 's', 'm' };
+static const symbol s_7_11[3] = { 'i', 'o', 'n' };
+static const symbol s_7_12[2] = { 'e', 'r' };
+static const symbol s_7_13[3] = { 'o', 'u', 's' };
+static const symbol s_7_14[3] = { 'a', 'n', 't' };
+static const symbol s_7_15[3] = { 'e', 'n', 't' };
+static const symbol s_7_16[4] = { 'm', 'e', 'n', 't' };
+static const symbol s_7_17[5] = { 'e', 'm', 'e', 'n', 't' };
+
+static const struct among a_7[18] =
+{
+{ 2, s_7_0, -1, 1, 0},
+{ 4, s_7_1, -1, 1, 0},
+{ 4, s_7_2, -1, 1, 0},
+{ 4, s_7_3, -1, 1, 0},
+{ 4, s_7_4, -1, 1, 0},
+{ 3, s_7_5, -1, 1, 0},
+{ 3, s_7_6, -1, 1, 0},
+{ 3, s_7_7, -1, 1, 0},
+{ 3, s_7_8, -1, 1, 0},
+{ 2, s_7_9, -1, 1, 0},
+{ 3, s_7_10, -1, 1, 0},
+{ 3, s_7_11, -1, 2, 0},
+{ 2, s_7_12, -1, 1, 0},
+{ 3, s_7_13, -1, 1, 0},
+{ 3, s_7_14, -1, 1, 0},
+{ 3, s_7_15, -1, 1, 0},
+{ 4, s_7_16, 15, 1, 0},
+{ 5, s_7_17, 16, 1, 0}
+};
+
+static const symbol s_8_0[1] = { 'e' };
+static const symbol s_8_1[1] = { 'l' };
+
+static const struct among a_8[2] =
+{
+{ 1, s_8_0, -1, 1, 0},
+{ 1, s_8_1, -1, 2, 0}
+};
+
+static const symbol s_9_0[7] = { 's', 'u', 'c', 'c', 'e', 'e', 'd' };
+static const symbol s_9_1[7] = { 'p', 'r', 'o', 'c', 'e', 'e', 'd' };
+static const symbol s_9_2[6] = { 'e', 'x', 'c', 'e', 'e', 'd' };
+static const symbol s_9_3[7] = { 'c', 'a', 'n', 'n', 'i', 'n', 'g' };
+static const symbol s_9_4[6] = { 'i', 'n', 'n', 'i', 'n', 'g' };
+static const symbol s_9_5[7] = { 'e', 'a', 'r', 'r', 'i', 'n', 'g' };
+static const symbol s_9_6[7] = { 'h', 'e', 'r', 'r', 'i', 'n', 'g' };
+static const symbol s_9_7[6] = { 'o', 'u', 't', 'i', 'n', 'g' };
+
+static const struct among a_9[8] =
+{
+{ 7, s_9_0, -1, -1, 0},
+{ 7, s_9_1, -1, -1, 0},
+{ 6, s_9_2, -1, -1, 0},
+{ 7, s_9_3, -1, -1, 0},
+{ 6, s_9_4, -1, -1, 0},
+{ 7, s_9_5, -1, -1, 0},
+{ 7, s_9_6, -1, -1, 0},
+{ 6, s_9_7, -1, -1, 0}
+};
+
+static const symbol s_10_0[5] = { 'a', 'n', 'd', 'e', 's' };
+static const symbol s_10_1[5] = { 'a', 't', 'l', 'a', 's' };
+static const symbol s_10_2[4] = { 'b', 'i', 'a', 's' };
+static const symbol s_10_3[6] = { 'c', 'o', 's', 'm', 'o', 's' };
+static const symbol s_10_4[5] = { 'd', 'y', 'i', 'n', 'g' };
+static const symbol s_10_5[5] = { 'e', 'a', 'r', 'l', 'y' };
+static const symbol s_10_6[6] = { 'g', 'e', 'n', 't', 'l', 'y' };
+static const symbol s_10_7[4] = { 'h', 'o', 'w', 'e' };
+static const symbol s_10_8[4] = { 'i', 'd', 'l', 'y' };
+static const symbol s_10_9[5] = { 'l', 'y', 'i', 'n', 'g' };
+static const symbol s_10_10[4] = { 'n', 'e', 'w', 's' };
+static const symbol s_10_11[4] = { 'o', 'n', 'l', 'y' };
+static const symbol s_10_12[6] = { 's', 'i', 'n', 'g', 'l', 'y' };
+static const symbol s_10_13[5] = { 's', 'k', 'i', 'e', 's' };
+static const symbol s_10_14[4] = { 's', 'k', 'i', 's' };
+static const symbol s_10_15[3] = { 's', 'k', 'y' };
+static const symbol s_10_16[5] = { 't', 'y', 'i', 'n', 'g' };
+static const symbol s_10_17[4] = { 'u', 'g', 'l', 'y' };
+
+static const struct among a_10[18] =
+{
+{ 5, s_10_0, -1, -1, 0},
+{ 5, s_10_1, -1, -1, 0},
+{ 4, s_10_2, -1, -1, 0},
+{ 6, s_10_3, -1, -1, 0},
+{ 5, s_10_4, -1, 3, 0},
+{ 5, s_10_5, -1, 9, 0},
+{ 6, s_10_6, -1, 7, 0},
+{ 4, s_10_7, -1, -1, 0},
+{ 4, s_10_8, -1, 6, 0},
+{ 5, s_10_9, -1, 4, 0},
+{ 4, s_10_10, -1, -1, 0},
+{ 4, s_10_11, -1, 10, 0},
+{ 6, s_10_12, -1, 11, 0},
+{ 5, s_10_13, -1, 2, 0},
+{ 4, s_10_14, -1, 1, 0},
+{ 3, s_10_15, -1, -1, 0},
+{ 5, s_10_16, -1, 5, 0},
+{ 4, s_10_17, -1, 8, 0}
+};
+
+static const unsigned char g_v[] = { 17, 65, 16, 1 };
+
+static const unsigned char g_v_WXY[] = { 1, 17, 65, 208, 1 };
+
+static const unsigned char g_valid_LI[] = { 55, 141, 2 };
+
+static const symbol s_0[] = { 'Y' };
+static const symbol s_1[] = { 'Y' };
+static const symbol s_2[] = { 's', 's' };
+static const symbol s_3[] = { 'i' };
+static const symbol s_4[] = { 'i', 'e' };
+static const symbol s_5[] = { 'e', 'e' };
+static const symbol s_6[] = { 'e' };
+static const symbol s_7[] = { 'e' };
+static const symbol s_8[] = { 'i' };
+static const symbol s_9[] = { 't', 'i', 'o', 'n' };
+static const symbol s_10[] = { 'e', 'n', 'c', 'e' };
+static const symbol s_11[] = { 'a', 'n', 'c', 'e' };
+static const symbol s_12[] = { 'a', 'b', 'l', 'e' };
+static const symbol s_13[] = { 'e', 'n', 't' };
+static const symbol s_14[] = { 'i', 'z', 'e' };
+static const symbol s_15[] = { 'a', 't', 'e' };
+static const symbol s_16[] = { 'a', 'l' };
+static const symbol s_17[] = { 'f', 'u', 'l' };
+static const symbol s_18[] = { 'o', 'u', 's' };
+static const symbol s_19[] = { 'i', 'v', 'e' };
+static const symbol s_20[] = { 'b', 'l', 'e' };
+static const symbol s_21[] = { 'o', 'g' };
+static const symbol s_22[] = { 'l', 'e', 's', 's' };
+static const symbol s_23[] = { 't', 'i', 'o', 'n' };
+static const symbol s_24[] = { 'a', 't', 'e' };
+static const symbol s_25[] = { 'a', 'l' };
+static const symbol s_26[] = { 'i', 'c' };
+static const symbol s_27[] = { 's', 'k', 'i' };
+static const symbol s_28[] = { 's', 'k', 'y' };
+static const symbol s_29[] = { 'd', 'i', 'e' };
+static const symbol s_30[] = { 'l', 'i', 'e' };
+static const symbol s_31[] = { 't', 'i', 'e' };
+static const symbol s_32[] = { 'i', 'd', 'l' };
+static const symbol s_33[] = { 'g', 'e', 'n', 't', 'l' };
+static const symbol s_34[] = { 'u', 'g', 'l', 'i' };
+static const symbol s_35[] = { 'e', 'a', 'r', 'l', 'i' };
+static const symbol s_36[] = { 'o', 'n', 'l', 'i' };
+static const symbol s_37[] = { 's', 'i', 'n', 'g', 'l' };
+static const symbol s_38[] = { 'y' };
+
+static int r_prelude(struct SN_env * z) {
+ z->I[2] = 0;
+ { int c1 = z->c;
+ z->bra = z->c;
+ if (z->c == z->l || z->p[z->c] != '\'') goto lab0;
+ z->c++;
+ z->ket = z->c;
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ lab0:
+ z->c = c1;
+ }
+ { int c2 = z->c;
+ z->bra = z->c;
+ if (z->c == z->l || z->p[z->c] != 'y') goto lab1;
+ z->c++;
+ z->ket = z->c;
+ { int ret = slice_from_s(z, 1, s_0);
+ if (ret < 0) return ret;
+ }
+ z->I[2] = 1;
+ lab1:
+ z->c = c2;
+ }
+ { int c3 = z->c;
+ while(1) {
+ int c4 = z->c;
+ while(1) {
+ int c5 = z->c;
+ if (in_grouping_U(z, g_v, 97, 121, 0)) goto lab4;
+ z->bra = z->c;
+ if (z->c == z->l || z->p[z->c] != 'y') goto lab4;
+ z->c++;
+ z->ket = z->c;
+ z->c = c5;
+ break;
+ lab4:
+ z->c = c5;
+ { int ret = skip_utf8(z->p, z->c, z->l, 1);
+ if (ret < 0) goto lab3;
+ z->c = ret;
+ }
+ }
+ { int ret = slice_from_s(z, 1, s_1);
+ if (ret < 0) return ret;
+ }
+ z->I[2] = 1;
+ continue;
+ lab3:
+ z->c = c4;
+ break;
+ }
+ z->c = c3;
+ }
+ return 1;
+}
+
+static int r_mark_regions(struct SN_env * z) {
+ z->I[1] = z->l;
+ z->I[0] = z->l;
+ { int c1 = z->c;
+ { int c2 = z->c;
+ if (z->c + 4 >= z->l || z->p[z->c + 4] >> 5 != 3 || !((2375680 >> (z->p[z->c + 4] & 0x1f)) & 1)) goto lab2;
+ if (!(find_among(z, a_0, 3))) goto lab2;
+ goto lab1;
+ lab2:
+ z->c = c2;
+ {
+ int ret = out_grouping_U(z, g_v, 97, 121, 1);
+ if (ret < 0) goto lab0;
+ z->c += ret;
+ }
+ {
+ int ret = in_grouping_U(z, g_v, 97, 121, 1);
+ if (ret < 0) goto lab0;
+ z->c += ret;
+ }
+ }
+ lab1:
+ z->I[1] = z->c;
+ {
+ int ret = out_grouping_U(z, g_v, 97, 121, 1);
+ if (ret < 0) goto lab0;
+ z->c += ret;
+ }
+ {
+ int ret = in_grouping_U(z, g_v, 97, 121, 1);
+ if (ret < 0) goto lab0;
+ z->c += ret;
+ }
+ z->I[0] = z->c;
+ lab0:
+ z->c = c1;
+ }
+ return 1;
+}
+
+static int r_shortv(struct SN_env * z) {
+ { int m1 = z->l - z->c; (void)m1;
+ if (out_grouping_b_U(z, g_v_WXY, 89, 121, 0)) goto lab1;
+ if (in_grouping_b_U(z, g_v, 97, 121, 0)) goto lab1;
+ if (out_grouping_b_U(z, g_v, 97, 121, 0)) goto lab1;
+ goto lab0;
+ lab1:
+ z->c = z->l - m1;
+ if (out_grouping_b_U(z, g_v, 97, 121, 0)) return 0;
+ if (in_grouping_b_U(z, g_v, 97, 121, 0)) return 0;
+ if (z->c > z->lb) return 0;
+ }
+lab0:
+ return 1;
+}
+
+static int r_R1(struct SN_env * z) {
+ if (!(z->I[1] <= z->c)) return 0;
+ return 1;
+}
+
+static int r_R2(struct SN_env * z) {
+ if (!(z->I[0] <= z->c)) return 0;
+ return 1;
+}
+
+static int r_Step_1a(struct SN_env * z) {
+ int among_var;
+ { int m1 = z->l - z->c; (void)m1;
+ z->ket = z->c;
+ if (z->c <= z->lb || (z->p[z->c - 1] != 39 && z->p[z->c - 1] != 115)) { z->c = z->l - m1; goto lab0; }
+ if (!(find_among_b(z, a_1, 3))) { z->c = z->l - m1; goto lab0; }
+ z->bra = z->c;
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ lab0:
+ ;
+ }
+ z->ket = z->c;
+ if (z->c <= z->lb || (z->p[z->c - 1] != 100 && z->p[z->c - 1] != 115)) return 0;
+ among_var = find_among_b(z, a_2, 6);
+ if (!(among_var)) return 0;
+ z->bra = z->c;
+ switch (among_var) {
+ case 1:
+ { int ret = slice_from_s(z, 2, s_2);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 2:
+ { int m2 = z->l - z->c; (void)m2;
+ { int ret = skip_b_utf8(z->p, z->c, z->lb, 2);
+ if (ret < 0) goto lab2;
+ z->c = ret;
+ }
+ { int ret = slice_from_s(z, 1, s_3);
+ if (ret < 0) return ret;
+ }
+ goto lab1;
+ lab2:
+ z->c = z->l - m2;
+ { int ret = slice_from_s(z, 2, s_4);
+ if (ret < 0) return ret;
+ }
+ }
+ lab1:
+ break;
+ case 3:
+ { int ret = skip_b_utf8(z->p, z->c, z->lb, 1);
+ if (ret < 0) return 0;
+ z->c = ret;
+ }
+ {
+ int ret = out_grouping_b_U(z, g_v, 97, 121, 1);
+ if (ret < 0) return 0;
+ z->c -= ret;
+ }
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ break;
+ }
+ return 1;
+}
+
+static int r_Step_1b(struct SN_env * z) {
+ int among_var;
+ z->ket = z->c;
+ if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((33554576 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
+ among_var = find_among_b(z, a_4, 6);
+ if (!(among_var)) return 0;
+ z->bra = z->c;
+ switch (among_var) {
+ case 1:
+ { int ret = r_R1(z);
+ if (ret <= 0) return ret;
+ }
+ { int ret = slice_from_s(z, 2, s_5);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 2:
+ { int m_test1 = z->l - z->c;
+ {
+ int ret = out_grouping_b_U(z, g_v, 97, 121, 1);
+ if (ret < 0) return 0;
+ z->c -= ret;
+ }
+ z->c = z->l - m_test1;
+ }
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ { int m_test2 = z->l - z->c;
+ if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((68514004 >> (z->p[z->c - 1] & 0x1f)) & 1)) among_var = 3; else
+ among_var = find_among_b(z, a_3, 13);
+ if (!(among_var)) return 0;
+ z->c = z->l - m_test2;
+ }
+ switch (among_var) {
+ case 1:
+ { int ret;
+ { int saved_c = z->c;
+ ret = insert_s(z, z->c, z->c, 1, s_6);
+ z->c = saved_c;
+ }
+ if (ret < 0) return ret;
+ }
+ break;
+ case 2:
+ z->ket = z->c;
+ { int ret = skip_b_utf8(z->p, z->c, z->lb, 1);
+ if (ret < 0) return 0;
+ z->c = ret;
+ }
+ z->bra = z->c;
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 3:
+ if (z->c != z->I[1]) return 0;
+ { int m_test3 = z->l - z->c;
+ { int ret = r_shortv(z);
+ if (ret <= 0) return ret;
+ }
+ z->c = z->l - m_test3;
+ }
+ { int ret;
+ { int saved_c = z->c;
+ ret = insert_s(z, z->c, z->c, 1, s_7);
+ z->c = saved_c;
+ }
+ if (ret < 0) return ret;
+ }
+ break;
+ }
+ break;
+ }
+ return 1;
+}
+
+static int r_Step_1c(struct SN_env * z) {
+ z->ket = z->c;
+ { int m1 = z->l - z->c; (void)m1;
+ if (z->c <= z->lb || z->p[z->c - 1] != 'y') goto lab1;
+ z->c--;
+ goto lab0;
+ lab1:
+ z->c = z->l - m1;
+ if (z->c <= z->lb || z->p[z->c - 1] != 'Y') return 0;
+ z->c--;
+ }
+lab0:
+ z->bra = z->c;
+ if (out_grouping_b_U(z, g_v, 97, 121, 0)) return 0;
+
+ if (z->c > z->lb) goto lab2;
+ return 0;
+lab2:
+ { int ret = slice_from_s(z, 1, s_8);
+ if (ret < 0) return ret;
+ }
+ return 1;
+}
+
+static int r_Step_2(struct SN_env * z) {
+ int among_var;
+ z->ket = z->c;
+ if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((815616 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
+ among_var = find_among_b(z, a_5, 24);
+ if (!(among_var)) return 0;
+ z->bra = z->c;
+ { int ret = r_R1(z);
+ if (ret <= 0) return ret;
+ }
+ switch (among_var) {
+ case 1:
+ { int ret = slice_from_s(z, 4, s_9);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 2:
+ { int ret = slice_from_s(z, 4, s_10);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 3:
+ { int ret = slice_from_s(z, 4, s_11);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 4:
+ { int ret = slice_from_s(z, 4, s_12);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 5:
+ { int ret = slice_from_s(z, 3, s_13);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 6:
+ { int ret = slice_from_s(z, 3, s_14);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 7:
+ { int ret = slice_from_s(z, 3, s_15);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 8:
+ { int ret = slice_from_s(z, 2, s_16);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 9:
+ { int ret = slice_from_s(z, 3, s_17);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 10:
+ { int ret = slice_from_s(z, 3, s_18);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 11:
+ { int ret = slice_from_s(z, 3, s_19);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 12:
+ { int ret = slice_from_s(z, 3, s_20);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 13:
+ if (z->c <= z->lb || z->p[z->c - 1] != 'l') return 0;
+ z->c--;
+ { int ret = slice_from_s(z, 2, s_21);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 14:
+ { int ret = slice_from_s(z, 4, s_22);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 15:
+ if (in_grouping_b_U(z, g_valid_LI, 99, 116, 0)) return 0;
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ break;
+ }
+ return 1;
+}
+
+static int r_Step_3(struct SN_env * z) {
+ int among_var;
+ z->ket = z->c;
+ if (z->c - 2 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((528928 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
+ among_var = find_among_b(z, a_6, 9);
+ if (!(among_var)) return 0;
+ z->bra = z->c;
+ { int ret = r_R1(z);
+ if (ret <= 0) return ret;
+ }
+ switch (among_var) {
+ case 1:
+ { int ret = slice_from_s(z, 4, s_23);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 2:
+ { int ret = slice_from_s(z, 3, s_24);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 3:
+ { int ret = slice_from_s(z, 2, s_25);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 4:
+ { int ret = slice_from_s(z, 2, s_26);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 5:
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 6:
+ { int ret = r_R2(z);
+ if (ret <= 0) return ret;
+ }
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ break;
+ }
+ return 1;
+}
+
+static int r_Step_4(struct SN_env * z) {
+ int among_var;
+ z->ket = z->c;
+ if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1864232 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
+ among_var = find_among_b(z, a_7, 18);
+ if (!(among_var)) return 0;
+ z->bra = z->c;
+ { int ret = r_R2(z);
+ if (ret <= 0) return ret;
+ }
+ switch (among_var) {
+ case 1:
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 2:
+ { int m1 = z->l - z->c; (void)m1;
+ if (z->c <= z->lb || z->p[z->c - 1] != 's') goto lab1;
+ z->c--;
+ goto lab0;
+ lab1:
+ z->c = z->l - m1;
+ if (z->c <= z->lb || z->p[z->c - 1] != 't') return 0;
+ z->c--;
+ }
+ lab0:
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ break;
+ }
+ return 1;
+}
+
+static int r_Step_5(struct SN_env * z) {
+ int among_var;
+ z->ket = z->c;
+ if (z->c <= z->lb || (z->p[z->c - 1] != 101 && z->p[z->c - 1] != 108)) return 0;
+ among_var = find_among_b(z, a_8, 2);
+ if (!(among_var)) return 0;
+ z->bra = z->c;
+ switch (among_var) {
+ case 1:
+ { int m1 = z->l - z->c; (void)m1;
+ { int ret = r_R2(z);
+ if (ret == 0) goto lab1;
+ if (ret < 0) return ret;
+ }
+ goto lab0;
+ lab1:
+ z->c = z->l - m1;
+ { int ret = r_R1(z);
+ if (ret <= 0) return ret;
+ }
+ { int m2 = z->l - z->c; (void)m2;
+ { int ret = r_shortv(z);
+ if (ret == 0) goto lab2;
+ if (ret < 0) return ret;
+ }
+ return 0;
+ lab2:
+ z->c = z->l - m2;
+ }
+ }
+ lab0:
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 2:
+ { int ret = r_R2(z);
+ if (ret <= 0) return ret;
+ }
+ if (z->c <= z->lb || z->p[z->c - 1] != 'l') return 0;
+ z->c--;
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ break;
+ }
+ return 1;
+}
+
+static int r_exception2(struct SN_env * z) {
+ z->ket = z->c;
+ if (z->c - 5 <= z->lb || (z->p[z->c - 1] != 100 && z->p[z->c - 1] != 103)) return 0;
+ if (!(find_among_b(z, a_9, 8))) return 0;
+ z->bra = z->c;
+ if (z->c > z->lb) return 0;
+ return 1;
+}
+
+static int r_exception1(struct SN_env * z) {
+ int among_var;
+ z->bra = z->c;
+ if (z->c + 2 >= z->l || z->p[z->c + 2] >> 5 != 3 || !((42750482 >> (z->p[z->c + 2] & 0x1f)) & 1)) return 0;
+ among_var = find_among(z, a_10, 18);
+ if (!(among_var)) return 0;
+ z->ket = z->c;
+ if (z->c < z->l) return 0;
+ switch (among_var) {
+ case 1:
+ { int ret = slice_from_s(z, 3, s_27);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 2:
+ { int ret = slice_from_s(z, 3, s_28);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 3:
+ { int ret = slice_from_s(z, 3, s_29);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 4:
+ { int ret = slice_from_s(z, 3, s_30);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 5:
+ { int ret = slice_from_s(z, 3, s_31);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 6:
+ { int ret = slice_from_s(z, 3, s_32);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 7:
+ { int ret = slice_from_s(z, 5, s_33);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 8:
+ { int ret = slice_from_s(z, 4, s_34);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 9:
+ { int ret = slice_from_s(z, 5, s_35);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 10:
+ { int ret = slice_from_s(z, 4, s_36);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 11:
+ { int ret = slice_from_s(z, 5, s_37);
+ if (ret < 0) return ret;
+ }
+ break;
+ }
+ return 1;
+}
+
+static int r_postlude(struct SN_env * z) {
+ if (!(z->I[2])) return 0;
+ while(1) {
+ int c1 = z->c;
+ while(1) {
+ int c2 = z->c;
+ z->bra = z->c;
+ if (z->c == z->l || z->p[z->c] != 'Y') goto lab1;
+ z->c++;
+ z->ket = z->c;
+ z->c = c2;
+ break;
+ lab1:
+ z->c = c2;
+ { int ret = skip_utf8(z->p, z->c, z->l, 1);
+ if (ret < 0) goto lab0;
+ z->c = ret;
+ }
+ }
+ { int ret = slice_from_s(z, 1, s_38);
+ if (ret < 0) return ret;
+ }
+ continue;
+ lab0:
+ z->c = c1;
+ break;
+ }
+ return 1;
+}
+
+extern int english_UTF_8_stem(struct SN_env * z) {
+ { int c1 = z->c;
+ { int ret = r_exception1(z);
+ if (ret == 0) goto lab1;
+ if (ret < 0) return ret;
+ }
+ goto lab0;
+ lab1:
+ z->c = c1;
+ { int c2 = z->c;
+ { int ret = skip_utf8(z->p, z->c, z->l, 3);
+ if (ret < 0) goto lab3;
+ z->c = ret;
+ }
+ goto lab2;
+ lab3:
+ z->c = c2;
+ }
+ goto lab0;
+ lab2:
+ z->c = c1;
+
+ { int ret = r_prelude(z);
+ if (ret < 0) return ret;
+ }
+
+ { int ret = r_mark_regions(z);
+ if (ret < 0) return ret;
+ }
+ z->lb = z->c; z->c = z->l;
+
+ { int m3 = z->l - z->c; (void)m3;
+ { int ret = r_Step_1a(z);
+ if (ret < 0) return ret;
+ }
+ z->c = z->l - m3;
+ }
+ { int m4 = z->l - z->c; (void)m4;
+ { int ret = r_exception2(z);
+ if (ret == 0) goto lab5;
+ if (ret < 0) return ret;
+ }
+ goto lab4;
+ lab5:
+ z->c = z->l - m4;
+ { int m5 = z->l - z->c; (void)m5;
+ { int ret = r_Step_1b(z);
+ if (ret < 0) return ret;
+ }
+ z->c = z->l - m5;
+ }
+ { int m6 = z->l - z->c; (void)m6;
+ { int ret = r_Step_1c(z);
+ if (ret < 0) return ret;
+ }
+ z->c = z->l - m6;
+ }
+ { int m7 = z->l - z->c; (void)m7;
+ { int ret = r_Step_2(z);
+ if (ret < 0) return ret;
+ }
+ z->c = z->l - m7;
+ }
+ { int m8 = z->l - z->c; (void)m8;
+ { int ret = r_Step_3(z);
+ if (ret < 0) return ret;
+ }
+ z->c = z->l - m8;
+ }
+ { int m9 = z->l - z->c; (void)m9;
+ { int ret = r_Step_4(z);
+ if (ret < 0) return ret;
+ }
+ z->c = z->l - m9;
+ }
+ { int m10 = z->l - z->c; (void)m10;
+ { int ret = r_Step_5(z);
+ if (ret < 0) return ret;
+ }
+ z->c = z->l - m10;
+ }
+ }
+ lab4:
+ z->c = z->lb;
+ { int c11 = z->c;
+ { int ret = r_postlude(z);
+ if (ret < 0) return ret;
+ }
+ z->c = c11;
+ }
+ }
+lab0:
+ return 1;
+}
+
+extern struct SN_env * english_UTF_8_create_env(void) { return SN_create_env(0, 3); }
+
+extern void english_UTF_8_close_env(struct SN_env * z) { SN_close_env(z, 0); }
+
diff --git a/src/backend/snowball/libstemmer/stem_UTF_8_finnish.c b/src/backend/snowball/libstemmer/stem_UTF_8_finnish.c
new file mode 100644
index 0000000..385933d
--- /dev/null
+++ b/src/backend/snowball/libstemmer/stem_UTF_8_finnish.c
@@ -0,0 +1,722 @@
+/* Generated by Snowball 2.2.0 - https://snowballstem.org/ */
+
+#include "header.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+extern int finnish_UTF_8_stem(struct SN_env * z);
+#ifdef __cplusplus
+}
+#endif
+static int r_tidy(struct SN_env * z);
+static int r_other_endings(struct SN_env * z);
+static int r_t_plural(struct SN_env * z);
+static int r_i_plural(struct SN_env * z);
+static int r_case_ending(struct SN_env * z);
+static int r_VI(struct SN_env * z);
+static int r_LONG(struct SN_env * z);
+static int r_possessive(struct SN_env * z);
+static int r_particle_etc(struct SN_env * z);
+static int r_R2(struct SN_env * z);
+static int r_mark_regions(struct SN_env * z);
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+extern struct SN_env * finnish_UTF_8_create_env(void);
+extern void finnish_UTF_8_close_env(struct SN_env * z);
+
+
+#ifdef __cplusplus
+}
+#endif
+static const symbol s_0_0[2] = { 'p', 'a' };
+static const symbol s_0_1[3] = { 's', 't', 'i' };
+static const symbol s_0_2[4] = { 'k', 'a', 'a', 'n' };
+static const symbol s_0_3[3] = { 'h', 'a', 'n' };
+static const symbol s_0_4[3] = { 'k', 'i', 'n' };
+static const symbol s_0_5[4] = { 'h', 0xC3, 0xA4, 'n' };
+static const symbol s_0_6[6] = { 'k', 0xC3, 0xA4, 0xC3, 0xA4, 'n' };
+static const symbol s_0_7[2] = { 'k', 'o' };
+static const symbol s_0_8[3] = { 'p', 0xC3, 0xA4 };
+static const symbol s_0_9[3] = { 'k', 0xC3, 0xB6 };
+
+static const struct among a_0[10] =
+{
+{ 2, s_0_0, -1, 1, 0},
+{ 3, s_0_1, -1, 2, 0},
+{ 4, s_0_2, -1, 1, 0},
+{ 3, s_0_3, -1, 1, 0},
+{ 3, s_0_4, -1, 1, 0},
+{ 4, s_0_5, -1, 1, 0},
+{ 6, s_0_6, -1, 1, 0},
+{ 2, s_0_7, -1, 1, 0},
+{ 3, s_0_8, -1, 1, 0},
+{ 3, s_0_9, -1, 1, 0}
+};
+
+static const symbol s_1_0[3] = { 'l', 'l', 'a' };
+static const symbol s_1_1[2] = { 'n', 'a' };
+static const symbol s_1_2[3] = { 's', 's', 'a' };
+static const symbol s_1_3[2] = { 't', 'a' };
+static const symbol s_1_4[3] = { 'l', 't', 'a' };
+static const symbol s_1_5[3] = { 's', 't', 'a' };
+
+static const struct among a_1[6] =
+{
+{ 3, s_1_0, -1, -1, 0},
+{ 2, s_1_1, -1, -1, 0},
+{ 3, s_1_2, -1, -1, 0},
+{ 2, s_1_3, -1, -1, 0},
+{ 3, s_1_4, 3, -1, 0},
+{ 3, s_1_5, 3, -1, 0}
+};
+
+static const symbol s_2_0[4] = { 'l', 'l', 0xC3, 0xA4 };
+static const symbol s_2_1[3] = { 'n', 0xC3, 0xA4 };
+static const symbol s_2_2[4] = { 's', 's', 0xC3, 0xA4 };
+static const symbol s_2_3[3] = { 't', 0xC3, 0xA4 };
+static const symbol s_2_4[4] = { 'l', 't', 0xC3, 0xA4 };
+static const symbol s_2_5[4] = { 's', 't', 0xC3, 0xA4 };
+
+static const struct among a_2[6] =
+{
+{ 4, s_2_0, -1, -1, 0},
+{ 3, s_2_1, -1, -1, 0},
+{ 4, s_2_2, -1, -1, 0},
+{ 3, s_2_3, -1, -1, 0},
+{ 4, s_2_4, 3, -1, 0},
+{ 4, s_2_5, 3, -1, 0}
+};
+
+static const symbol s_3_0[3] = { 'l', 'l', 'e' };
+static const symbol s_3_1[3] = { 'i', 'n', 'e' };
+
+static const struct among a_3[2] =
+{
+{ 3, s_3_0, -1, -1, 0},
+{ 3, s_3_1, -1, -1, 0}
+};
+
+static const symbol s_4_0[3] = { 'n', 's', 'a' };
+static const symbol s_4_1[3] = { 'm', 'm', 'e' };
+static const symbol s_4_2[3] = { 'n', 'n', 'e' };
+static const symbol s_4_3[2] = { 'n', 'i' };
+static const symbol s_4_4[2] = { 's', 'i' };
+static const symbol s_4_5[2] = { 'a', 'n' };
+static const symbol s_4_6[2] = { 'e', 'n' };
+static const symbol s_4_7[3] = { 0xC3, 0xA4, 'n' };
+static const symbol s_4_8[4] = { 'n', 's', 0xC3, 0xA4 };
+
+static const struct among a_4[9] =
+{
+{ 3, s_4_0, -1, 3, 0},
+{ 3, s_4_1, -1, 3, 0},
+{ 3, s_4_2, -1, 3, 0},
+{ 2, s_4_3, -1, 2, 0},
+{ 2, s_4_4, -1, 1, 0},
+{ 2, s_4_5, -1, 4, 0},
+{ 2, s_4_6, -1, 6, 0},
+{ 3, s_4_7, -1, 5, 0},
+{ 4, s_4_8, -1, 3, 0}
+};
+
+static const symbol s_5_0[2] = { 'a', 'a' };
+static const symbol s_5_1[2] = { 'e', 'e' };
+static const symbol s_5_2[2] = { 'i', 'i' };
+static const symbol s_5_3[2] = { 'o', 'o' };
+static const symbol s_5_4[2] = { 'u', 'u' };
+static const symbol s_5_5[4] = { 0xC3, 0xA4, 0xC3, 0xA4 };
+static const symbol s_5_6[4] = { 0xC3, 0xB6, 0xC3, 0xB6 };
+
+static const struct among a_5[7] =
+{
+{ 2, s_5_0, -1, -1, 0},
+{ 2, s_5_1, -1, -1, 0},
+{ 2, s_5_2, -1, -1, 0},
+{ 2, s_5_3, -1, -1, 0},
+{ 2, s_5_4, -1, -1, 0},
+{ 4, s_5_5, -1, -1, 0},
+{ 4, s_5_6, -1, -1, 0}
+};
+
+static const symbol s_6_0[1] = { 'a' };
+static const symbol s_6_1[3] = { 'l', 'l', 'a' };
+static const symbol s_6_2[2] = { 'n', 'a' };
+static const symbol s_6_3[3] = { 's', 's', 'a' };
+static const symbol s_6_4[2] = { 't', 'a' };
+static const symbol s_6_5[3] = { 'l', 't', 'a' };
+static const symbol s_6_6[3] = { 's', 't', 'a' };
+static const symbol s_6_7[3] = { 't', 't', 'a' };
+static const symbol s_6_8[3] = { 'l', 'l', 'e' };
+static const symbol s_6_9[3] = { 'i', 'n', 'e' };
+static const symbol s_6_10[3] = { 'k', 's', 'i' };
+static const symbol s_6_11[1] = { 'n' };
+static const symbol s_6_12[3] = { 'h', 'a', 'n' };
+static const symbol s_6_13[3] = { 'd', 'e', 'n' };
+static const symbol s_6_14[4] = { 's', 'e', 'e', 'n' };
+static const symbol s_6_15[3] = { 'h', 'e', 'n' };
+static const symbol s_6_16[4] = { 't', 't', 'e', 'n' };
+static const symbol s_6_17[3] = { 'h', 'i', 'n' };
+static const symbol s_6_18[4] = { 's', 'i', 'i', 'n' };
+static const symbol s_6_19[3] = { 'h', 'o', 'n' };
+static const symbol s_6_20[4] = { 'h', 0xC3, 0xA4, 'n' };
+static const symbol s_6_21[4] = { 'h', 0xC3, 0xB6, 'n' };
+static const symbol s_6_22[2] = { 0xC3, 0xA4 };
+static const symbol s_6_23[4] = { 'l', 'l', 0xC3, 0xA4 };
+static const symbol s_6_24[3] = { 'n', 0xC3, 0xA4 };
+static const symbol s_6_25[4] = { 's', 's', 0xC3, 0xA4 };
+static const symbol s_6_26[3] = { 't', 0xC3, 0xA4 };
+static const symbol s_6_27[4] = { 'l', 't', 0xC3, 0xA4 };
+static const symbol s_6_28[4] = { 's', 't', 0xC3, 0xA4 };
+static const symbol s_6_29[4] = { 't', 't', 0xC3, 0xA4 };
+
+static const struct among a_6[30] =
+{
+{ 1, s_6_0, -1, 8, 0},
+{ 3, s_6_1, 0, -1, 0},
+{ 2, s_6_2, 0, -1, 0},
+{ 3, s_6_3, 0, -1, 0},
+{ 2, s_6_4, 0, -1, 0},
+{ 3, s_6_5, 4, -1, 0},
+{ 3, s_6_6, 4, -1, 0},
+{ 3, s_6_7, 4, 2, 0},
+{ 3, s_6_8, -1, -1, 0},
+{ 3, s_6_9, -1, -1, 0},
+{ 3, s_6_10, -1, -1, 0},
+{ 1, s_6_11, -1, 7, 0},
+{ 3, s_6_12, 11, 1, 0},
+{ 3, s_6_13, 11, -1, r_VI},
+{ 4, s_6_14, 11, -1, r_LONG},
+{ 3, s_6_15, 11, 2, 0},
+{ 4, s_6_16, 11, -1, r_VI},
+{ 3, s_6_17, 11, 3, 0},
+{ 4, s_6_18, 11, -1, r_VI},
+{ 3, s_6_19, 11, 4, 0},
+{ 4, s_6_20, 11, 5, 0},
+{ 4, s_6_21, 11, 6, 0},
+{ 2, s_6_22, -1, 8, 0},
+{ 4, s_6_23, 22, -1, 0},
+{ 3, s_6_24, 22, -1, 0},
+{ 4, s_6_25, 22, -1, 0},
+{ 3, s_6_26, 22, -1, 0},
+{ 4, s_6_27, 26, -1, 0},
+{ 4, s_6_28, 26, -1, 0},
+{ 4, s_6_29, 26, 2, 0}
+};
+
+static const symbol s_7_0[3] = { 'e', 'j', 'a' };
+static const symbol s_7_1[3] = { 'm', 'm', 'a' };
+static const symbol s_7_2[4] = { 'i', 'm', 'm', 'a' };
+static const symbol s_7_3[3] = { 'm', 'p', 'a' };
+static const symbol s_7_4[4] = { 'i', 'm', 'p', 'a' };
+static const symbol s_7_5[3] = { 'm', 'm', 'i' };
+static const symbol s_7_6[4] = { 'i', 'm', 'm', 'i' };
+static const symbol s_7_7[3] = { 'm', 'p', 'i' };
+static const symbol s_7_8[4] = { 'i', 'm', 'p', 'i' };
+static const symbol s_7_9[4] = { 'e', 'j', 0xC3, 0xA4 };
+static const symbol s_7_10[4] = { 'm', 'm', 0xC3, 0xA4 };
+static const symbol s_7_11[5] = { 'i', 'm', 'm', 0xC3, 0xA4 };
+static const symbol s_7_12[4] = { 'm', 'p', 0xC3, 0xA4 };
+static const symbol s_7_13[5] = { 'i', 'm', 'p', 0xC3, 0xA4 };
+
+static const struct among a_7[14] =
+{
+{ 3, s_7_0, -1, -1, 0},
+{ 3, s_7_1, -1, 1, 0},
+{ 4, s_7_2, 1, -1, 0},
+{ 3, s_7_3, -1, 1, 0},
+{ 4, s_7_4, 3, -1, 0},
+{ 3, s_7_5, -1, 1, 0},
+{ 4, s_7_6, 5, -1, 0},
+{ 3, s_7_7, -1, 1, 0},
+{ 4, s_7_8, 7, -1, 0},
+{ 4, s_7_9, -1, -1, 0},
+{ 4, s_7_10, -1, 1, 0},
+{ 5, s_7_11, 10, -1, 0},
+{ 4, s_7_12, -1, 1, 0},
+{ 5, s_7_13, 12, -1, 0}
+};
+
+static const symbol s_8_0[1] = { 'i' };
+static const symbol s_8_1[1] = { 'j' };
+
+static const struct among a_8[2] =
+{
+{ 1, s_8_0, -1, -1, 0},
+{ 1, s_8_1, -1, -1, 0}
+};
+
+static const symbol s_9_0[3] = { 'm', 'm', 'a' };
+static const symbol s_9_1[4] = { 'i', 'm', 'm', 'a' };
+
+static const struct among a_9[2] =
+{
+{ 3, s_9_0, -1, 1, 0},
+{ 4, s_9_1, 0, -1, 0}
+};
+
+static const unsigned char g_AEI[] = { 17, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8 };
+
+static const unsigned char g_C[] = { 119, 223, 119, 1 };
+
+static const unsigned char g_V1[] = { 17, 65, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 32 };
+
+static const unsigned char g_V2[] = { 17, 65, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 32 };
+
+static const unsigned char g_particle_end[] = { 17, 97, 24, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 32 };
+
+static const symbol s_0[] = { 'k', 's', 'e' };
+static const symbol s_1[] = { 'k', 's', 'i' };
+static const symbol s_2[] = { 0xC3, 0xA4 };
+static const symbol s_3[] = { 0xC3, 0xB6 };
+static const symbol s_4[] = { 'i', 'e' };
+static const symbol s_5[] = { 'p', 'o' };
+static const symbol s_6[] = { 'p', 'o' };
+
+static int r_mark_regions(struct SN_env * z) {
+ z->I[1] = z->l;
+ z->I[0] = z->l;
+ if (out_grouping_U(z, g_V1, 97, 246, 1) < 0) return 0;
+ {
+ int ret = in_grouping_U(z, g_V1, 97, 246, 1);
+ if (ret < 0) return 0;
+ z->c += ret;
+ }
+ z->I[1] = z->c;
+ if (out_grouping_U(z, g_V1, 97, 246, 1) < 0) return 0;
+ {
+ int ret = in_grouping_U(z, g_V1, 97, 246, 1);
+ if (ret < 0) return 0;
+ z->c += ret;
+ }
+ z->I[0] = z->c;
+ return 1;
+}
+
+static int r_R2(struct SN_env * z) {
+ if (!(z->I[0] <= z->c)) return 0;
+ return 1;
+}
+
+static int r_particle_etc(struct SN_env * z) {
+ int among_var;
+
+ { int mlimit1;
+ if (z->c < z->I[1]) return 0;
+ mlimit1 = z->lb; z->lb = z->I[1];
+ z->ket = z->c;
+ among_var = find_among_b(z, a_0, 10);
+ if (!(among_var)) { z->lb = mlimit1; return 0; }
+ z->bra = z->c;
+ z->lb = mlimit1;
+ }
+ switch (among_var) {
+ case 1:
+ if (in_grouping_b_U(z, g_particle_end, 97, 246, 0)) return 0;
+ break;
+ case 2:
+ { int ret = r_R2(z);
+ if (ret <= 0) return ret;
+ }
+ break;
+ }
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ return 1;
+}
+
+static int r_possessive(struct SN_env * z) {
+ int among_var;
+
+ { int mlimit1;
+ if (z->c < z->I[1]) return 0;
+ mlimit1 = z->lb; z->lb = z->I[1];
+ z->ket = z->c;
+ among_var = find_among_b(z, a_4, 9);
+ if (!(among_var)) { z->lb = mlimit1; return 0; }
+ z->bra = z->c;
+ z->lb = mlimit1;
+ }
+ switch (among_var) {
+ case 1:
+ { int m2 = z->l - z->c; (void)m2;
+ if (z->c <= z->lb || z->p[z->c - 1] != 'k') goto lab0;
+ z->c--;
+ return 0;
+ lab0:
+ z->c = z->l - m2;
+ }
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 2:
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ z->ket = z->c;
+ if (!(eq_s_b(z, 3, s_0))) return 0;
+ z->bra = z->c;
+ { int ret = slice_from_s(z, 3, s_1);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 3:
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 4:
+ if (z->c - 1 <= z->lb || z->p[z->c - 1] != 97) return 0;
+ if (!(find_among_b(z, a_1, 6))) return 0;
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 5:
+ if (z->c - 2 <= z->lb || z->p[z->c - 1] != 164) return 0;
+ if (!(find_among_b(z, a_2, 6))) return 0;
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 6:
+ if (z->c - 2 <= z->lb || z->p[z->c - 1] != 101) return 0;
+ if (!(find_among_b(z, a_3, 2))) return 0;
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ break;
+ }
+ return 1;
+}
+
+static int r_LONG(struct SN_env * z) {
+ if (!(find_among_b(z, a_5, 7))) return 0;
+ return 1;
+}
+
+static int r_VI(struct SN_env * z) {
+ if (z->c <= z->lb || z->p[z->c - 1] != 'i') return 0;
+ z->c--;
+ if (in_grouping_b_U(z, g_V2, 97, 246, 0)) return 0;
+ return 1;
+}
+
+static int r_case_ending(struct SN_env * z) {
+ int among_var;
+
+ { int mlimit1;
+ if (z->c < z->I[1]) return 0;
+ mlimit1 = z->lb; z->lb = z->I[1];
+ z->ket = z->c;
+ among_var = find_among_b(z, a_6, 30);
+ if (!(among_var)) { z->lb = mlimit1; return 0; }
+ z->bra = z->c;
+ z->lb = mlimit1;
+ }
+ switch (among_var) {
+ case 1:
+ if (z->c <= z->lb || z->p[z->c - 1] != 'a') return 0;
+ z->c--;
+ break;
+ case 2:
+ if (z->c <= z->lb || z->p[z->c - 1] != 'e') return 0;
+ z->c--;
+ break;
+ case 3:
+ if (z->c <= z->lb || z->p[z->c - 1] != 'i') return 0;
+ z->c--;
+ break;
+ case 4:
+ if (z->c <= z->lb || z->p[z->c - 1] != 'o') return 0;
+ z->c--;
+ break;
+ case 5:
+ if (!(eq_s_b(z, 2, s_2))) return 0;
+ break;
+ case 6:
+ if (!(eq_s_b(z, 2, s_3))) return 0;
+ break;
+ case 7:
+ { int m2 = z->l - z->c; (void)m2;
+ { int m3 = z->l - z->c; (void)m3;
+ { int m4 = z->l - z->c; (void)m4;
+ { int ret = r_LONG(z);
+ if (ret == 0) goto lab2;
+ if (ret < 0) return ret;
+ }
+ goto lab1;
+ lab2:
+ z->c = z->l - m4;
+ if (!(eq_s_b(z, 2, s_4))) { z->c = z->l - m2; goto lab0; }
+ }
+ lab1:
+ z->c = z->l - m3;
+ { int ret = skip_b_utf8(z->p, z->c, z->lb, 1);
+ if (ret < 0) { z->c = z->l - m2; goto lab0; }
+ z->c = ret;
+ }
+ }
+ z->bra = z->c;
+ lab0:
+ ;
+ }
+ break;
+ case 8:
+ if (in_grouping_b_U(z, g_V1, 97, 246, 0)) return 0;
+ if (in_grouping_b_U(z, g_C, 98, 122, 0)) return 0;
+ break;
+ }
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ z->I[2] = 1;
+ return 1;
+}
+
+static int r_other_endings(struct SN_env * z) {
+ int among_var;
+
+ { int mlimit1;
+ if (z->c < z->I[0]) return 0;
+ mlimit1 = z->lb; z->lb = z->I[0];
+ z->ket = z->c;
+ among_var = find_among_b(z, a_7, 14);
+ if (!(among_var)) { z->lb = mlimit1; return 0; }
+ z->bra = z->c;
+ z->lb = mlimit1;
+ }
+ switch (among_var) {
+ case 1:
+ { int m2 = z->l - z->c; (void)m2;
+ if (!(eq_s_b(z, 2, s_5))) goto lab0;
+ return 0;
+ lab0:
+ z->c = z->l - m2;
+ }
+ break;
+ }
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ return 1;
+}
+
+static int r_i_plural(struct SN_env * z) {
+
+ { int mlimit1;
+ if (z->c < z->I[1]) return 0;
+ mlimit1 = z->lb; z->lb = z->I[1];
+ z->ket = z->c;
+ if (z->c <= z->lb || (z->p[z->c - 1] != 105 && z->p[z->c - 1] != 106)) { z->lb = mlimit1; return 0; }
+ if (!(find_among_b(z, a_8, 2))) { z->lb = mlimit1; return 0; }
+ z->bra = z->c;
+ z->lb = mlimit1;
+ }
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ return 1;
+}
+
+static int r_t_plural(struct SN_env * z) {
+ int among_var;
+
+ { int mlimit1;
+ if (z->c < z->I[1]) return 0;
+ mlimit1 = z->lb; z->lb = z->I[1];
+ z->ket = z->c;
+ if (z->c <= z->lb || z->p[z->c - 1] != 't') { z->lb = mlimit1; return 0; }
+ z->c--;
+ z->bra = z->c;
+ { int m_test2 = z->l - z->c;
+ if (in_grouping_b_U(z, g_V1, 97, 246, 0)) { z->lb = mlimit1; return 0; }
+ z->c = z->l - m_test2;
+ }
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ z->lb = mlimit1;
+ }
+
+ { int mlimit3;
+ if (z->c < z->I[0]) return 0;
+ mlimit3 = z->lb; z->lb = z->I[0];
+ z->ket = z->c;
+ if (z->c - 2 <= z->lb || z->p[z->c - 1] != 97) { z->lb = mlimit3; return 0; }
+ among_var = find_among_b(z, a_9, 2);
+ if (!(among_var)) { z->lb = mlimit3; return 0; }
+ z->bra = z->c;
+ z->lb = mlimit3;
+ }
+ switch (among_var) {
+ case 1:
+ { int m4 = z->l - z->c; (void)m4;
+ if (!(eq_s_b(z, 2, s_6))) goto lab0;
+ return 0;
+ lab0:
+ z->c = z->l - m4;
+ }
+ break;
+ }
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ return 1;
+}
+
+static int r_tidy(struct SN_env * z) {
+
+ { int mlimit1;
+ if (z->c < z->I[1]) return 0;
+ mlimit1 = z->lb; z->lb = z->I[1];
+ { int m2 = z->l - z->c; (void)m2;
+ { int m3 = z->l - z->c; (void)m3;
+ { int ret = r_LONG(z);
+ if (ret == 0) goto lab0;
+ if (ret < 0) return ret;
+ }
+ z->c = z->l - m3;
+ z->ket = z->c;
+ { int ret = skip_b_utf8(z->p, z->c, z->lb, 1);
+ if (ret < 0) goto lab0;
+ z->c = ret;
+ }
+ z->bra = z->c;
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ }
+ lab0:
+ z->c = z->l - m2;
+ }
+ { int m4 = z->l - z->c; (void)m4;
+ z->ket = z->c;
+ if (in_grouping_b_U(z, g_AEI, 97, 228, 0)) goto lab1;
+ z->bra = z->c;
+ if (in_grouping_b_U(z, g_C, 98, 122, 0)) goto lab1;
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ lab1:
+ z->c = z->l - m4;
+ }
+ { int m5 = z->l - z->c; (void)m5;
+ z->ket = z->c;
+ if (z->c <= z->lb || z->p[z->c - 1] != 'j') goto lab2;
+ z->c--;
+ z->bra = z->c;
+ { int m6 = z->l - z->c; (void)m6;
+ if (z->c <= z->lb || z->p[z->c - 1] != 'o') goto lab4;
+ z->c--;
+ goto lab3;
+ lab4:
+ z->c = z->l - m6;
+ if (z->c <= z->lb || z->p[z->c - 1] != 'u') goto lab2;
+ z->c--;
+ }
+ lab3:
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ lab2:
+ z->c = z->l - m5;
+ }
+ { int m7 = z->l - z->c; (void)m7;
+ z->ket = z->c;
+ if (z->c <= z->lb || z->p[z->c - 1] != 'o') goto lab5;
+ z->c--;
+ z->bra = z->c;
+ if (z->c <= z->lb || z->p[z->c - 1] != 'j') goto lab5;
+ z->c--;
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ lab5:
+ z->c = z->l - m7;
+ }
+ z->lb = mlimit1;
+ }
+ if (in_grouping_b_U(z, g_V1, 97, 246, 1) < 0) return 0;
+ z->ket = z->c;
+ if (in_grouping_b_U(z, g_C, 98, 122, 0)) return 0;
+ z->bra = z->c;
+ z->S[0] = slice_to(z, z->S[0]);
+ if (z->S[0] == 0) return -1;
+ if (!(eq_v_b(z, z->S[0]))) return 0;
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ return 1;
+}
+
+extern int finnish_UTF_8_stem(struct SN_env * z) {
+ { int c1 = z->c;
+ { int ret = r_mark_regions(z);
+ if (ret < 0) return ret;
+ }
+ z->c = c1;
+ }
+ z->I[2] = 0;
+ z->lb = z->c; z->c = z->l;
+
+ { int m2 = z->l - z->c; (void)m2;
+ { int ret = r_particle_etc(z);
+ if (ret < 0) return ret;
+ }
+ z->c = z->l - m2;
+ }
+ { int m3 = z->l - z->c; (void)m3;
+ { int ret = r_possessive(z);
+ if (ret < 0) return ret;
+ }
+ z->c = z->l - m3;
+ }
+ { int m4 = z->l - z->c; (void)m4;
+ { int ret = r_case_ending(z);
+ if (ret < 0) return ret;
+ }
+ z->c = z->l - m4;
+ }
+ { int m5 = z->l - z->c; (void)m5;
+ { int ret = r_other_endings(z);
+ if (ret < 0) return ret;
+ }
+ z->c = z->l - m5;
+ }
+
+ if (!(z->I[2])) goto lab1;
+ { int m6 = z->l - z->c; (void)m6;
+ { int ret = r_i_plural(z);
+ if (ret < 0) return ret;
+ }
+ z->c = z->l - m6;
+ }
+ goto lab0;
+lab1:
+ { int m7 = z->l - z->c; (void)m7;
+ { int ret = r_t_plural(z);
+ if (ret < 0) return ret;
+ }
+ z->c = z->l - m7;
+ }
+lab0:
+ { int m8 = z->l - z->c; (void)m8;
+ { int ret = r_tidy(z);
+ if (ret < 0) return ret;
+ }
+ z->c = z->l - m8;
+ }
+ z->c = z->lb;
+ return 1;
+}
+
+extern struct SN_env * finnish_UTF_8_create_env(void) { return SN_create_env(1, 3); }
+
+extern void finnish_UTF_8_close_env(struct SN_env * z) { SN_close_env(z, 1); }
+
diff --git a/src/backend/snowball/libstemmer/stem_UTF_8_french.c b/src/backend/snowball/libstemmer/stem_UTF_8_french.c
new file mode 100644
index 0000000..049d7c3
--- /dev/null
+++ b/src/backend/snowball/libstemmer/stem_UTF_8_french.c
@@ -0,0 +1,1262 @@
+/* Generated by Snowball 2.2.0 - https://snowballstem.org/ */
+
+#include "header.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+extern int french_UTF_8_stem(struct SN_env * z);
+#ifdef __cplusplus
+}
+#endif
+static int r_un_accent(struct SN_env * z);
+static int r_un_double(struct SN_env * z);
+static int r_residual_suffix(struct SN_env * z);
+static int r_verb_suffix(struct SN_env * z);
+static int r_i_verb_suffix(struct SN_env * z);
+static int r_standard_suffix(struct SN_env * z);
+static int r_R2(struct SN_env * z);
+static int r_R1(struct SN_env * z);
+static int r_RV(struct SN_env * z);
+static int r_mark_regions(struct SN_env * z);
+static int r_postlude(struct SN_env * z);
+static int r_prelude(struct SN_env * z);
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+extern struct SN_env * french_UTF_8_create_env(void);
+extern void french_UTF_8_close_env(struct SN_env * z);
+
+
+#ifdef __cplusplus
+}
+#endif
+static const symbol s_0_0[3] = { 'c', 'o', 'l' };
+static const symbol s_0_1[3] = { 'p', 'a', 'r' };
+static const symbol s_0_2[3] = { 't', 'a', 'p' };
+
+static const struct among a_0[3] =
+{
+{ 3, s_0_0, -1, -1, 0},
+{ 3, s_0_1, -1, -1, 0},
+{ 3, s_0_2, -1, -1, 0}
+};
+
+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[7] =
+{
+{ 0, 0, -1, 7, 0},
+{ 1, s_1_1, 0, 6, 0},
+{ 2, s_1_2, 1, 4, 0},
+{ 2, s_1_3, 1, 5, 0},
+{ 1, s_1_4, 0, 1, 0},
+{ 1, s_1_5, 0, 2, 0},
+{ 1, s_1_6, 0, 3, 0}
+};
+
+static const symbol s_2_0[3] = { 'i', 'q', 'U' };
+static const symbol s_2_1[3] = { 'a', 'b', 'l' };
+static const symbol s_2_2[4] = { 'I', 0xC3, 0xA8, 'r' };
+static const symbol s_2_3[4] = { 'i', 0xC3, 0xA8, 'r' };
+static const symbol s_2_4[3] = { 'e', 'u', 's' };
+static const symbol s_2_5[2] = { 'i', 'v' };
+
+static const struct among a_2[6] =
+{
+{ 3, s_2_0, -1, 3, 0},
+{ 3, s_2_1, -1, 3, 0},
+{ 4, s_2_2, -1, 4, 0},
+{ 4, s_2_3, -1, 4, 0},
+{ 3, s_2_4, -1, 2, 0},
+{ 2, s_2_5, -1, 1, 0}
+};
+
+static const symbol s_3_0[2] = { 'i', 'c' };
+static const symbol s_3_1[4] = { 'a', 'b', 'i', 'l' };
+static const symbol s_3_2[2] = { 'i', 'v' };
+
+static const struct among a_3[3] =
+{
+{ 2, s_3_0, -1, 2, 0},
+{ 4, s_3_1, -1, 1, 0},
+{ 2, s_3_2, -1, 3, 0}
+};
+
+static const symbol s_4_0[4] = { 'i', 'q', 'U', 'e' };
+static const symbol s_4_1[6] = { 'a', 't', 'r', 'i', 'c', 'e' };
+static const symbol s_4_2[4] = { 'a', 'n', 'c', 'e' };
+static const symbol s_4_3[4] = { 'e', 'n', 'c', 'e' };
+static const symbol s_4_4[5] = { 'l', 'o', 'g', 'i', 'e' };
+static const symbol s_4_5[4] = { 'a', 'b', 'l', 'e' };
+static const symbol s_4_6[4] = { 'i', 's', 'm', 'e' };
+static const symbol s_4_7[4] = { 'e', 'u', 's', 'e' };
+static const symbol s_4_8[4] = { 'i', 's', 't', 'e' };
+static const symbol s_4_9[3] = { 'i', 'v', 'e' };
+static const symbol s_4_10[2] = { 'i', 'f' };
+static const symbol s_4_11[5] = { 'u', 's', 'i', 'o', 'n' };
+static const symbol s_4_12[5] = { 'a', 't', 'i', 'o', 'n' };
+static const symbol s_4_13[5] = { 'u', 't', 'i', 'o', 'n' };
+static const symbol s_4_14[5] = { 'a', 't', 'e', 'u', 'r' };
+static const symbol s_4_15[5] = { 'i', 'q', 'U', 'e', 's' };
+static const symbol s_4_16[7] = { 'a', 't', 'r', 'i', 'c', 'e', 's' };
+static const symbol s_4_17[5] = { 'a', 'n', 'c', 'e', 's' };
+static const symbol s_4_18[5] = { 'e', 'n', 'c', 'e', 's' };
+static const symbol s_4_19[6] = { 'l', 'o', 'g', 'i', 'e', 's' };
+static const symbol s_4_20[5] = { 'a', 'b', 'l', 'e', 's' };
+static const symbol s_4_21[5] = { 'i', 's', 'm', 'e', 's' };
+static const symbol s_4_22[5] = { 'e', 'u', 's', 'e', 's' };
+static const symbol s_4_23[5] = { 'i', 's', 't', 'e', 's' };
+static const symbol s_4_24[4] = { 'i', 'v', 'e', 's' };
+static const symbol s_4_25[3] = { 'i', 'f', 's' };
+static const symbol s_4_26[6] = { 'u', 's', 'i', 'o', 'n', 's' };
+static const symbol s_4_27[6] = { 'a', 't', 'i', 'o', 'n', 's' };
+static const symbol s_4_28[6] = { 'u', 't', 'i', 'o', 'n', 's' };
+static const symbol s_4_29[6] = { 'a', 't', 'e', 'u', 'r', 's' };
+static const symbol s_4_30[5] = { 'm', 'e', 'n', 't', 's' };
+static const symbol s_4_31[6] = { 'e', 'm', 'e', 'n', 't', 's' };
+static const symbol s_4_32[9] = { 'i', 's', 's', 'e', 'm', 'e', 'n', 't', 's' };
+static const symbol s_4_33[5] = { 'i', 't', 0xC3, 0xA9, 's' };
+static const symbol s_4_34[4] = { 'm', 'e', 'n', 't' };
+static const symbol s_4_35[5] = { 'e', 'm', 'e', 'n', 't' };
+static const symbol s_4_36[8] = { 'i', 's', 's', 'e', 'm', 'e', 'n', 't' };
+static const symbol s_4_37[6] = { 'a', 'm', 'm', 'e', 'n', 't' };
+static const symbol s_4_38[6] = { 'e', 'm', 'm', 'e', 'n', 't' };
+static const symbol s_4_39[3] = { 'a', 'u', 'x' };
+static const symbol s_4_40[4] = { 'e', 'a', 'u', 'x' };
+static const symbol s_4_41[3] = { 'e', 'u', 'x' };
+static const symbol s_4_42[4] = { 'i', 't', 0xC3, 0xA9 };
+
+static const struct among a_4[43] =
+{
+{ 4, s_4_0, -1, 1, 0},
+{ 6, s_4_1, -1, 2, 0},
+{ 4, s_4_2, -1, 1, 0},
+{ 4, s_4_3, -1, 5, 0},
+{ 5, s_4_4, -1, 3, 0},
+{ 4, s_4_5, -1, 1, 0},
+{ 4, s_4_6, -1, 1, 0},
+{ 4, s_4_7, -1, 11, 0},
+{ 4, s_4_8, -1, 1, 0},
+{ 3, s_4_9, -1, 8, 0},
+{ 2, s_4_10, -1, 8, 0},
+{ 5, s_4_11, -1, 4, 0},
+{ 5, s_4_12, -1, 2, 0},
+{ 5, s_4_13, -1, 4, 0},
+{ 5, s_4_14, -1, 2, 0},
+{ 5, s_4_15, -1, 1, 0},
+{ 7, s_4_16, -1, 2, 0},
+{ 5, s_4_17, -1, 1, 0},
+{ 5, s_4_18, -1, 5, 0},
+{ 6, s_4_19, -1, 3, 0},
+{ 5, s_4_20, -1, 1, 0},
+{ 5, s_4_21, -1, 1, 0},
+{ 5, s_4_22, -1, 11, 0},
+{ 5, s_4_23, -1, 1, 0},
+{ 4, s_4_24, -1, 8, 0},
+{ 3, s_4_25, -1, 8, 0},
+{ 6, s_4_26, -1, 4, 0},
+{ 6, s_4_27, -1, 2, 0},
+{ 6, s_4_28, -1, 4, 0},
+{ 6, s_4_29, -1, 2, 0},
+{ 5, s_4_30, -1, 15, 0},
+{ 6, s_4_31, 30, 6, 0},
+{ 9, s_4_32, 31, 12, 0},
+{ 5, s_4_33, -1, 7, 0},
+{ 4, s_4_34, -1, 15, 0},
+{ 5, s_4_35, 34, 6, 0},
+{ 8, s_4_36, 35, 12, 0},
+{ 6, s_4_37, 34, 13, 0},
+{ 6, s_4_38, 34, 14, 0},
+{ 3, s_4_39, -1, 10, 0},
+{ 4, s_4_40, 39, 9, 0},
+{ 3, s_4_41, -1, 1, 0},
+{ 4, s_4_42, -1, 7, 0}
+};
+
+static const symbol s_5_0[3] = { 'i', 'r', 'a' };
+static const symbol s_5_1[2] = { 'i', 'e' };
+static const symbol s_5_2[4] = { 'i', 's', 's', 'e' };
+static const symbol s_5_3[7] = { 'i', 's', 's', 'a', 'n', 't', 'e' };
+static const symbol s_5_4[1] = { 'i' };
+static const symbol s_5_5[4] = { 'i', 'r', 'a', 'i' };
+static const symbol s_5_6[2] = { 'i', 'r' };
+static const symbol s_5_7[4] = { 'i', 'r', 'a', 's' };
+static const symbol s_5_8[3] = { 'i', 'e', 's' };
+static const symbol s_5_9[5] = { 0xC3, 0xAE, 'm', 'e', 's' };
+static const symbol s_5_10[5] = { 'i', 's', 's', 'e', 's' };
+static const symbol s_5_11[8] = { 'i', 's', 's', 'a', 'n', 't', 'e', 's' };
+static const symbol s_5_12[5] = { 0xC3, 0xAE, 't', 'e', 's' };
+static const symbol s_5_13[2] = { 'i', 's' };
+static const symbol s_5_14[5] = { 'i', 'r', 'a', 'i', 's' };
+static const symbol s_5_15[6] = { 'i', 's', 's', 'a', 'i', 's' };
+static const symbol s_5_16[6] = { 'i', 'r', 'i', 'o', 'n', 's' };
+static const symbol s_5_17[7] = { 'i', 's', 's', 'i', 'o', 'n', 's' };
+static const symbol s_5_18[5] = { 'i', 'r', 'o', 'n', 's' };
+static const symbol s_5_19[6] = { 'i', 's', 's', 'o', 'n', 's' };
+static const symbol s_5_20[7] = { 'i', 's', 's', 'a', 'n', 't', 's' };
+static const symbol s_5_21[2] = { 'i', 't' };
+static const symbol s_5_22[5] = { 'i', 'r', 'a', 'i', 't' };
+static const symbol s_5_23[6] = { 'i', 's', 's', 'a', 'i', 't' };
+static const symbol s_5_24[6] = { 'i', 's', 's', 'a', 'n', 't' };
+static const symbol s_5_25[7] = { 'i', 'r', 'a', 'I', 'e', 'n', 't' };
+static const symbol s_5_26[8] = { 'i', 's', 's', 'a', 'I', 'e', 'n', 't' };
+static const symbol s_5_27[5] = { 'i', 'r', 'e', 'n', 't' };
+static const symbol s_5_28[6] = { 'i', 's', 's', 'e', 'n', 't' };
+static const symbol s_5_29[5] = { 'i', 'r', 'o', 'n', 't' };
+static const symbol s_5_30[3] = { 0xC3, 0xAE, 't' };
+static const symbol s_5_31[5] = { 'i', 'r', 'i', 'e', 'z' };
+static const symbol s_5_32[6] = { 'i', 's', 's', 'i', 'e', 'z' };
+static const symbol s_5_33[4] = { 'i', 'r', 'e', 'z' };
+static const symbol s_5_34[5] = { 'i', 's', 's', 'e', 'z' };
+
+static const struct among a_5[35] =
+{
+{ 3, s_5_0, -1, 1, 0},
+{ 2, s_5_1, -1, 1, 0},
+{ 4, s_5_2, -1, 1, 0},
+{ 7, s_5_3, -1, 1, 0},
+{ 1, s_5_4, -1, 1, 0},
+{ 4, s_5_5, 4, 1, 0},
+{ 2, s_5_6, -1, 1, 0},
+{ 4, s_5_7, -1, 1, 0},
+{ 3, s_5_8, -1, 1, 0},
+{ 5, s_5_9, -1, 1, 0},
+{ 5, s_5_10, -1, 1, 0},
+{ 8, s_5_11, -1, 1, 0},
+{ 5, s_5_12, -1, 1, 0},
+{ 2, s_5_13, -1, 1, 0},
+{ 5, s_5_14, 13, 1, 0},
+{ 6, s_5_15, 13, 1, 0},
+{ 6, s_5_16, -1, 1, 0},
+{ 7, s_5_17, -1, 1, 0},
+{ 5, s_5_18, -1, 1, 0},
+{ 6, s_5_19, -1, 1, 0},
+{ 7, s_5_20, -1, 1, 0},
+{ 2, s_5_21, -1, 1, 0},
+{ 5, s_5_22, 21, 1, 0},
+{ 6, s_5_23, 21, 1, 0},
+{ 6, s_5_24, -1, 1, 0},
+{ 7, s_5_25, -1, 1, 0},
+{ 8, s_5_26, -1, 1, 0},
+{ 5, s_5_27, -1, 1, 0},
+{ 6, s_5_28, -1, 1, 0},
+{ 5, s_5_29, -1, 1, 0},
+{ 3, s_5_30, -1, 1, 0},
+{ 5, s_5_31, -1, 1, 0},
+{ 6, s_5_32, -1, 1, 0},
+{ 4, s_5_33, -1, 1, 0},
+{ 5, s_5_34, -1, 1, 0}
+};
+
+static const symbol s_6_0[1] = { 'a' };
+static const symbol s_6_1[3] = { 'e', 'r', 'a' };
+static const symbol s_6_2[4] = { 'a', 's', 's', 'e' };
+static const symbol s_6_3[4] = { 'a', 'n', 't', 'e' };
+static const symbol s_6_4[3] = { 0xC3, 0xA9, 'e' };
+static const symbol s_6_5[2] = { 'a', 'i' };
+static const symbol s_6_6[4] = { 'e', 'r', 'a', 'i' };
+static const symbol s_6_7[2] = { 'e', 'r' };
+static const symbol s_6_8[2] = { 'a', 's' };
+static const symbol s_6_9[4] = { 'e', 'r', 'a', 's' };
+static const symbol s_6_10[5] = { 0xC3, 0xA2, 'm', 'e', 's' };
+static const symbol s_6_11[5] = { 'a', 's', 's', 'e', 's' };
+static const symbol s_6_12[5] = { 'a', 'n', 't', 'e', 's' };
+static const symbol s_6_13[5] = { 0xC3, 0xA2, 't', 'e', 's' };
+static const symbol s_6_14[4] = { 0xC3, 0xA9, 'e', 's' };
+static const symbol s_6_15[3] = { 'a', 'i', 's' };
+static const symbol s_6_16[5] = { 'e', 'r', 'a', 'i', 's' };
+static const symbol s_6_17[4] = { 'i', 'o', 'n', 's' };
+static const symbol s_6_18[6] = { 'e', 'r', 'i', 'o', 'n', 's' };
+static const symbol s_6_19[7] = { 'a', 's', 's', 'i', 'o', 'n', 's' };
+static const symbol s_6_20[5] = { 'e', 'r', 'o', 'n', 's' };
+static const symbol s_6_21[4] = { 'a', 'n', 't', 's' };
+static const symbol s_6_22[3] = { 0xC3, 0xA9, 's' };
+static const symbol s_6_23[3] = { 'a', 'i', 't' };
+static const symbol s_6_24[5] = { 'e', 'r', 'a', 'i', 't' };
+static const symbol s_6_25[3] = { 'a', 'n', 't' };
+static const symbol s_6_26[5] = { 'a', 'I', 'e', 'n', 't' };
+static const symbol s_6_27[7] = { 'e', 'r', 'a', 'I', 'e', 'n', 't' };
+static const symbol s_6_28[6] = { 0xC3, 0xA8, 'r', 'e', 'n', 't' };
+static const symbol s_6_29[6] = { 'a', 's', 's', 'e', 'n', 't' };
+static const symbol s_6_30[5] = { 'e', 'r', 'o', 'n', 't' };
+static const symbol s_6_31[3] = { 0xC3, 0xA2, 't' };
+static const symbol s_6_32[2] = { 'e', 'z' };
+static const symbol s_6_33[3] = { 'i', 'e', 'z' };
+static const symbol s_6_34[5] = { 'e', 'r', 'i', 'e', 'z' };
+static const symbol s_6_35[6] = { 'a', 's', 's', 'i', 'e', 'z' };
+static const symbol s_6_36[4] = { 'e', 'r', 'e', 'z' };
+static const symbol s_6_37[2] = { 0xC3, 0xA9 };
+
+static const struct among a_6[38] =
+{
+{ 1, s_6_0, -1, 3, 0},
+{ 3, s_6_1, 0, 2, 0},
+{ 4, s_6_2, -1, 3, 0},
+{ 4, s_6_3, -1, 3, 0},
+{ 3, s_6_4, -1, 2, 0},
+{ 2, s_6_5, -1, 3, 0},
+{ 4, s_6_6, 5, 2, 0},
+{ 2, s_6_7, -1, 2, 0},
+{ 2, s_6_8, -1, 3, 0},
+{ 4, s_6_9, 8, 2, 0},
+{ 5, s_6_10, -1, 3, 0},
+{ 5, s_6_11, -1, 3, 0},
+{ 5, s_6_12, -1, 3, 0},
+{ 5, s_6_13, -1, 3, 0},
+{ 4, s_6_14, -1, 2, 0},
+{ 3, s_6_15, -1, 3, 0},
+{ 5, s_6_16, 15, 2, 0},
+{ 4, s_6_17, -1, 1, 0},
+{ 6, s_6_18, 17, 2, 0},
+{ 7, s_6_19, 17, 3, 0},
+{ 5, s_6_20, -1, 2, 0},
+{ 4, s_6_21, -1, 3, 0},
+{ 3, s_6_22, -1, 2, 0},
+{ 3, s_6_23, -1, 3, 0},
+{ 5, s_6_24, 23, 2, 0},
+{ 3, s_6_25, -1, 3, 0},
+{ 5, s_6_26, -1, 3, 0},
+{ 7, s_6_27, 26, 2, 0},
+{ 6, s_6_28, -1, 2, 0},
+{ 6, s_6_29, -1, 3, 0},
+{ 5, s_6_30, -1, 2, 0},
+{ 3, s_6_31, -1, 3, 0},
+{ 2, s_6_32, -1, 2, 0},
+{ 3, s_6_33, 32, 2, 0},
+{ 5, s_6_34, 33, 2, 0},
+{ 6, s_6_35, 33, 3, 0},
+{ 4, s_6_36, 32, 2, 0},
+{ 2, s_6_37, -1, 2, 0}
+};
+
+static const symbol s_7_0[1] = { 'e' };
+static const symbol s_7_1[5] = { 'I', 0xC3, 0xA8, 'r', 'e' };
+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 struct among a_7[6] =
+{
+{ 1, s_7_0, -1, 3, 0},
+{ 5, s_7_1, 0, 2, 0},
+{ 5, s_7_2, 0, 2, 0},
+{ 3, s_7_3, -1, 1, 0},
+{ 3, s_7_4, -1, 2, 0},
+{ 3, s_7_5, -1, 2, 0}
+};
+
+static const symbol s_8_0[3] = { 'e', 'l', 'l' };
+static const symbol s_8_1[4] = { 'e', 'i', 'l', 'l' };
+static const symbol s_8_2[3] = { 'e', 'n', 'n' };
+static const symbol s_8_3[3] = { 'o', 'n', 'n' };
+static const symbol s_8_4[3] = { 'e', 't', 't' };
+
+static const struct among a_8[5] =
+{
+{ 3, s_8_0, -1, -1, 0},
+{ 4, s_8_1, -1, -1, 0},
+{ 3, s_8_2, -1, -1, 0},
+{ 3, s_8_3, -1, -1, 0},
+{ 3, s_8_4, -1, -1, 0}
+};
+
+static const unsigned char g_v[] = { 17, 65, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 130, 103, 8, 5 };
+
+static const unsigned char g_keep_with_s[] = { 1, 65, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128 };
+
+static const symbol s_0[] = { 'U' };
+static const symbol s_1[] = { 'I' };
+static const symbol s_2[] = { 'Y' };
+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) {
+ while(1) {
+ int c1 = z->c;
+ while(1) {
+ int c2 = z->c;
+ { int c3 = z->c;
+ if (in_grouping_U(z, g_v, 97, 251, 0)) goto lab3;
+ z->bra = z->c;
+ { int c4 = z->c;
+ if (z->c == z->l || z->p[z->c] != 'u') goto lab5;
+ z->c++;
+ z->ket = z->c;
+ if (in_grouping_U(z, g_v, 97, 251, 0)) goto lab5;
+ { int ret = slice_from_s(z, 1, s_0);
+ if (ret < 0) return ret;
+ }
+ goto lab4;
+ lab5:
+ z->c = c4;
+ if (z->c == z->l || z->p[z->c] != 'i') goto lab6;
+ z->c++;
+ z->ket = z->c;
+ if (in_grouping_U(z, g_v, 97, 251, 0)) goto lab6;
+ { int ret = slice_from_s(z, 1, s_1);
+ if (ret < 0) return ret;
+ }
+ goto lab4;
+ lab6:
+ z->c = c4;
+ if (z->c == z->l || z->p[z->c] != 'y') goto lab3;
+ z->c++;
+ z->ket = z->c;
+ { int ret = slice_from_s(z, 1, s_2);
+ if (ret < 0) return ret;
+ }
+ }
+ lab4:
+ goto lab2;
+ lab3:
+ z->c = c3;
+ z->bra = z->c;
+ if (!(eq_s(z, 2, s_3))) goto lab7;
+ z->ket = z->c;
+ { int ret = slice_from_s(z, 2, s_4);
+ if (ret < 0) return ret;
+ }
+ goto lab2;
+ lab7:
+ z->c = c3;
+ z->bra = z->c;
+ if (!(eq_s(z, 2, s_5))) goto lab8;
+ z->ket = z->c;
+ { int ret = slice_from_s(z, 2, s_6);
+ if (ret < 0) return ret;
+ }
+ goto lab2;
+ lab8:
+ z->c = c3;
+ z->bra = z->c;
+ if (z->c == z->l || z->p[z->c] != 'y') goto lab9;
+ z->c++;
+ z->ket = z->c;
+ if (in_grouping_U(z, g_v, 97, 251, 0)) goto lab9;
+ { int ret = slice_from_s(z, 1, s_7);
+ if (ret < 0) return ret;
+ }
+ goto lab2;
+ lab9:
+ z->c = c3;
+ if (z->c == z->l || z->p[z->c] != 'q') goto lab1;
+ z->c++;
+ z->bra = z->c;
+ if (z->c == z->l || z->p[z->c] != 'u') goto lab1;
+ z->c++;
+ z->ket = z->c;
+ { int ret = slice_from_s(z, 1, s_8);
+ if (ret < 0) return ret;
+ }
+ }
+ lab2:
+ z->c = c2;
+ break;
+ lab1:
+ z->c = c2;
+ { int ret = skip_utf8(z->p, z->c, z->l, 1);
+ if (ret < 0) goto lab0;
+ z->c = ret;
+ }
+ }
+ continue;
+ lab0:
+ z->c = c1;
+ break;
+ }
+ return 1;
+}
+
+static int r_mark_regions(struct SN_env * z) {
+ z->I[2] = z->l;
+ z->I[1] = z->l;
+ z->I[0] = z->l;
+ { int c1 = z->c;
+ { int c2 = z->c;
+ if (in_grouping_U(z, g_v, 97, 251, 0)) goto lab2;
+ if (in_grouping_U(z, g_v, 97, 251, 0)) goto lab2;
+ { int ret = skip_utf8(z->p, z->c, z->l, 1);
+ if (ret < 0) goto lab2;
+ z->c = ret;
+ }
+ 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;
+ if (!(find_among(z, a_0, 3))) goto lab3;
+ goto lab1;
+ lab3:
+ z->c = c2;
+ { int ret = skip_utf8(z->p, z->c, z->l, 1);
+ if (ret < 0) goto lab0;
+ z->c = ret;
+ }
+ {
+ int ret = out_grouping_U(z, g_v, 97, 251, 1);
+ if (ret < 0) goto lab0;
+ z->c += ret;
+ }
+ }
+ lab1:
+ z->I[2] = z->c;
+ lab0:
+ z->c = c1;
+ }
+ { int c3 = z->c;
+ {
+ int ret = out_grouping_U(z, g_v, 97, 251, 1);
+ if (ret < 0) goto lab4;
+ z->c += ret;
+ }
+ {
+ int ret = in_grouping_U(z, g_v, 97, 251, 1);
+ if (ret < 0) goto lab4;
+ z->c += ret;
+ }
+ z->I[1] = z->c;
+ {
+ int ret = out_grouping_U(z, g_v, 97, 251, 1);
+ if (ret < 0) goto lab4;
+ z->c += ret;
+ }
+ {
+ int ret = in_grouping_U(z, g_v, 97, 251, 1);
+ if (ret < 0) goto lab4;
+ z->c += ret;
+ }
+ z->I[0] = z->c;
+ lab4:
+ z->c = c3;
+ }
+ return 1;
+}
+
+static int r_postlude(struct SN_env * z) {
+ int among_var;
+ while(1) {
+ int c1 = z->c;
+ z->bra = z->c;
+ if (z->c >= z->l || z->p[z->c + 0] >> 5 != 2 || !((35652352 >> (z->p[z->c + 0] & 0x1f)) & 1)) among_var = 7; else
+ among_var = find_among(z, a_1, 7);
+ if (!(among_var)) goto lab0;
+ z->ket = z->c;
+ switch (among_var) {
+ case 1:
+ { int ret = slice_from_s(z, 1, s_9);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 2:
+ { int ret = slice_from_s(z, 1, s_10);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 3:
+ { int ret = slice_from_s(z, 1, s_11);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 4:
+ { int ret = slice_from_s(z, 2, s_12);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 5:
+ { int ret = slice_from_s(z, 2, s_13);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 6:
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 7:
+ { int ret = skip_utf8(z->p, z->c, z->l, 1);
+ if (ret < 0) goto lab0;
+ z->c = ret;
+ }
+ break;
+ }
+ continue;
+ lab0:
+ z->c = c1;
+ break;
+ }
+ return 1;
+}
+
+static int r_RV(struct SN_env * z) {
+ if (!(z->I[2] <= z->c)) return 0;
+ return 1;
+}
+
+static int r_R1(struct SN_env * z) {
+ if (!(z->I[1] <= z->c)) return 0;
+ return 1;
+}
+
+static int r_R2(struct SN_env * z) {
+ if (!(z->I[0] <= z->c)) return 0;
+ return 1;
+}
+
+static int r_standard_suffix(struct SN_env * z) {
+ int among_var;
+ z->ket = z->c;
+ among_var = find_among_b(z, a_4, 43);
+ if (!(among_var)) return 0;
+ z->bra = z->c;
+ switch (among_var) {
+ case 1:
+ { int ret = r_R2(z);
+ if (ret <= 0) return ret;
+ }
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 2:
+ { int ret = r_R2(z);
+ if (ret <= 0) return ret;
+ }
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ { int m1 = z->l - z->c; (void)m1;
+ z->ket = z->c;
+ if (!(eq_s_b(z, 2, s_14))) { z->c = z->l - m1; goto lab0; }
+ z->bra = z->c;
+ { int m2 = z->l - z->c; (void)m2;
+ { int ret = r_R2(z);
+ if (ret == 0) goto lab2;
+ if (ret < 0) return ret;
+ }
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ goto lab1;
+ lab2:
+ z->c = z->l - m2;
+ { int ret = slice_from_s(z, 3, s_15);
+ if (ret < 0) return ret;
+ }
+ }
+ lab1:
+ lab0:
+ ;
+ }
+ break;
+ case 3:
+ { int ret = r_R2(z);
+ if (ret <= 0) return ret;
+ }
+ { int ret = slice_from_s(z, 3, s_16);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 4:
+ { int ret = r_R2(z);
+ if (ret <= 0) return ret;
+ }
+ { int ret = slice_from_s(z, 1, s_17);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 5:
+ { int ret = r_R2(z);
+ if (ret <= 0) return ret;
+ }
+ { int ret = slice_from_s(z, 3, s_18);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 6:
+ { int ret = r_RV(z);
+ if (ret <= 0) return ret;
+ }
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ { int m3 = z->l - z->c; (void)m3;
+ z->ket = z->c;
+ among_var = find_among_b(z, a_2, 6);
+ if (!(among_var)) { z->c = z->l - m3; goto lab3; }
+ z->bra = z->c;
+ switch (among_var) {
+ case 1:
+ { int ret = r_R2(z);
+ if (ret == 0) { z->c = z->l - m3; goto lab3; }
+ if (ret < 0) return ret;
+ }
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ z->ket = z->c;
+ if (!(eq_s_b(z, 2, s_19))) { z->c = z->l - m3; goto lab3; }
+ z->bra = z->c;
+ { int ret = r_R2(z);
+ if (ret == 0) { z->c = z->l - m3; goto lab3; }
+ if (ret < 0) return ret;
+ }
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 2:
+ { int m4 = z->l - z->c; (void)m4;
+ { int ret = r_R2(z);
+ if (ret == 0) goto lab5;
+ if (ret < 0) return ret;
+ }
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ goto lab4;
+ lab5:
+ z->c = z->l - m4;
+ { int ret = r_R1(z);
+ if (ret == 0) { z->c = z->l - m3; goto lab3; }
+ if (ret < 0) return ret;
+ }
+ { int ret = slice_from_s(z, 3, s_20);
+ if (ret < 0) return ret;
+ }
+ }
+ lab4:
+ break;
+ case 3:
+ { int ret = r_R2(z);
+ if (ret == 0) { z->c = z->l - m3; goto lab3; }
+ if (ret < 0) return ret;
+ }
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 4:
+ { int ret = r_RV(z);
+ if (ret == 0) { z->c = z->l - m3; goto lab3; }
+ if (ret < 0) return ret;
+ }
+ { int ret = slice_from_s(z, 1, s_21);
+ if (ret < 0) return ret;
+ }
+ break;
+ }
+ lab3:
+ ;
+ }
+ break;
+ case 7:
+ { int ret = r_R2(z);
+ if (ret <= 0) return ret;
+ }
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ { int m5 = z->l - z->c; (void)m5;
+ z->ket = z->c;
+ 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; }
+ among_var = find_among_b(z, a_3, 3);
+ if (!(among_var)) { z->c = z->l - m5; goto lab6; }
+ z->bra = z->c;
+ switch (among_var) {
+ case 1:
+ { int m6 = z->l - z->c; (void)m6;
+ { int ret = r_R2(z);
+ if (ret == 0) goto lab8;
+ if (ret < 0) return ret;
+ }
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ goto lab7;
+ lab8:
+ z->c = z->l - m6;
+ { int ret = slice_from_s(z, 3, s_22);
+ if (ret < 0) return ret;
+ }
+ }
+ lab7:
+ break;
+ case 2:
+ { int m7 = z->l - z->c; (void)m7;
+ { int ret = r_R2(z);
+ if (ret == 0) goto lab10;
+ if (ret < 0) return ret;
+ }
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ goto lab9;
+ lab10:
+ z->c = z->l - m7;
+ { int ret = slice_from_s(z, 3, s_23);
+ if (ret < 0) return ret;
+ }
+ }
+ lab9:
+ break;
+ case 3:
+ { int ret = r_R2(z);
+ if (ret == 0) { z->c = z->l - m5; goto lab6; }
+ if (ret < 0) return ret;
+ }
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ break;
+ }
+ lab6:
+ ;
+ }
+ break;
+ case 8:
+ { int ret = r_R2(z);
+ if (ret <= 0) return ret;
+ }
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ { int m8 = z->l - z->c; (void)m8;
+ z->ket = z->c;
+ if (!(eq_s_b(z, 2, s_24))) { z->c = z->l - m8; goto lab11; }
+ z->bra = z->c;
+ { int ret = r_R2(z);
+ if (ret == 0) { z->c = z->l - m8; goto lab11; }
+ if (ret < 0) return ret;
+ }
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ z->ket = z->c;
+ if (!(eq_s_b(z, 2, s_25))) { z->c = z->l - m8; goto lab11; }
+ z->bra = z->c;
+ { int m9 = z->l - z->c; (void)m9;
+ { int ret = r_R2(z);
+ if (ret == 0) goto lab13;
+ if (ret < 0) return ret;
+ }
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ goto lab12;
+ lab13:
+ z->c = z->l - m9;
+ { int ret = slice_from_s(z, 3, s_26);
+ if (ret < 0) return ret;
+ }
+ }
+ lab12:
+ lab11:
+ ;
+ }
+ break;
+ case 9:
+ { int ret = slice_from_s(z, 3, s_27);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 10:
+ { int ret = r_R1(z);
+ if (ret <= 0) return ret;
+ }
+ { int ret = slice_from_s(z, 2, s_28);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 11:
+ { int m10 = z->l - z->c; (void)m10;
+ { int ret = r_R2(z);
+ if (ret == 0) goto lab15;
+ if (ret < 0) return ret;
+ }
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ goto lab14;
+ lab15:
+ z->c = z->l - m10;
+ { int ret = r_R1(z);
+ if (ret <= 0) return ret;
+ }
+ { int ret = slice_from_s(z, 3, s_29);
+ if (ret < 0) return ret;
+ }
+ }
+ lab14:
+ break;
+ case 12:
+ { int ret = r_R1(z);
+ if (ret <= 0) return ret;
+ }
+ if (out_grouping_b_U(z, g_v, 97, 251, 0)) return 0;
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 13:
+ { int ret = r_RV(z);
+ if (ret <= 0) return ret;
+ }
+ { int ret = slice_from_s(z, 3, s_30);
+ if (ret < 0) return ret;
+ }
+ return 0;
+ break;
+ case 14:
+ { int ret = r_RV(z);
+ if (ret <= 0) return ret;
+ }
+ { int ret = slice_from_s(z, 3, s_31);
+ if (ret < 0) return ret;
+ }
+ return 0;
+ break;
+ case 15:
+ { int m_test11 = z->l - z->c;
+ if (in_grouping_b_U(z, g_v, 97, 251, 0)) return 0;
+ { int ret = r_RV(z);
+ if (ret <= 0) return ret;
+ }
+ z->c = z->l - m_test11;
+ }
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ return 0;
+ break;
+ }
+ return 1;
+}
+
+static int r_i_verb_suffix(struct SN_env * z) {
+
+ { int mlimit1;
+ if (z->c < z->I[2]) return 0;
+ mlimit1 = z->lb; z->lb = z->I[2];
+ z->ket = z->c;
+ 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; }
+ if (!(find_among_b(z, a_5, 35))) { z->lb = mlimit1; return 0; }
+ z->bra = z->c;
+ { int m2 = z->l - z->c; (void)m2;
+ if (z->c <= z->lb || z->p[z->c - 1] != 'H') goto lab0;
+ 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; }
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ z->lb = mlimit1;
+ }
+ return 1;
+}
+
+static int r_verb_suffix(struct SN_env * z) {
+ int among_var;
+
+ { int mlimit1;
+ if (z->c < z->I[2]) return 0;
+ mlimit1 = z->lb; z->lb = z->I[2];
+ z->ket = z->c;
+ among_var = find_among_b(z, a_6, 38);
+ if (!(among_var)) { z->lb = mlimit1; return 0; }
+ z->bra = z->c;
+ switch (among_var) {
+ case 1:
+ { int ret = r_R2(z);
+ if (ret == 0) { z->lb = mlimit1; return 0; }
+ if (ret < 0) return ret;
+ }
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 2:
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 3:
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ { int m2 = z->l - z->c; (void)m2;
+ z->ket = z->c;
+ if (z->c <= z->lb || z->p[z->c - 1] != 'e') { z->c = z->l - m2; goto lab0; }
+ z->c--;
+ z->bra = z->c;
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ lab0:
+ ;
+ }
+ break;
+ }
+ z->lb = mlimit1;
+ }
+ return 1;
+}
+
+static int r_residual_suffix(struct SN_env * z) {
+ int among_var;
+ { int m1 = z->l - z->c; (void)m1;
+ z->ket = z->c;
+ if (z->c <= z->lb || z->p[z->c - 1] != 's') { z->c = z->l - m1; goto lab0; }
+ z->c--;
+ z->bra = z->c;
+ { int m_test2 = z->l - z->c;
+ { int m3 = z->l - z->c; (void)m3;
+ if (!(eq_s_b(z, 2, s_32))) goto lab2;
+ 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; }
+ }
+ lab1:
+ z->c = z->l - m_test2;
+ }
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ lab0:
+ ;
+ }
+
+ { int mlimit4;
+ if (z->c < z->I[2]) return 0;
+ mlimit4 = z->lb; z->lb = z->I[2];
+ z->ket = z->c;
+ 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; }
+ among_var = find_among_b(z, a_7, 6);
+ if (!(among_var)) { z->lb = mlimit4; return 0; }
+ z->bra = z->c;
+ switch (among_var) {
+ case 1:
+ { int ret = r_R2(z);
+ if (ret == 0) { z->lb = mlimit4; return 0; }
+ if (ret < 0) return ret;
+ }
+ { int m5 = z->l - z->c; (void)m5;
+ if (z->c <= z->lb || z->p[z->c - 1] != 's') goto lab4;
+ z->c--;
+ goto lab3;
+ lab4:
+ z->c = z->l - m5;
+ if (z->c <= z->lb || z->p[z->c - 1] != 't') { z->lb = mlimit4; return 0; }
+ z->c--;
+ }
+ lab3:
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 2:
+ { int ret = slice_from_s(z, 1, s_33);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 3:
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ break;
+ }
+ z->lb = mlimit4;
+ }
+ return 1;
+}
+
+static int r_un_double(struct SN_env * z) {
+ { int m_test1 = z->l - z->c;
+ if (z->c - 2 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1069056 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
+ if (!(find_among_b(z, a_8, 5))) return 0;
+ z->c = z->l - m_test1;
+ }
+ z->ket = z->c;
+ { int ret = skip_b_utf8(z->p, z->c, z->lb, 1);
+ if (ret < 0) return 0;
+ z->c = ret;
+ }
+ z->bra = z->c;
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ return 1;
+}
+
+static int r_un_accent(struct SN_env * z) {
+ { int i = 1;
+ while(1) {
+ if (out_grouping_b_U(z, g_v, 97, 251, 0)) goto lab0;
+ i--;
+ continue;
+ lab0:
+ break;
+ }
+ if (i > 0) return 0;
+ }
+ z->ket = z->c;
+ { int m1 = z->l - z->c; (void)m1;
+ if (!(eq_s_b(z, 2, s_34))) goto lab2;
+ goto lab1;
+ lab2:
+ z->c = z->l - m1;
+ if (!(eq_s_b(z, 2, s_35))) return 0;
+ }
+lab1:
+ z->bra = z->c;
+ { int ret = slice_from_s(z, 1, s_36);
+ if (ret < 0) return ret;
+ }
+ return 1;
+}
+
+extern int french_UTF_8_stem(struct SN_env * z) {
+ { int c1 = z->c;
+ { int ret = r_prelude(z);
+ if (ret < 0) return ret;
+ }
+ z->c = c1;
+ }
+
+ { int ret = r_mark_regions(z);
+ if (ret < 0) return ret;
+ }
+ z->lb = z->c; z->c = z->l;
+
+ { int m2 = z->l - z->c; (void)m2;
+ { int m3 = z->l - z->c; (void)m3;
+ { int m4 = z->l - z->c; (void)m4;
+ { int m5 = z->l - z->c; (void)m5;
+ { int ret = r_standard_suffix(z);
+ if (ret == 0) goto lab4;
+ if (ret < 0) return ret;
+ }
+ goto lab3;
+ lab4:
+ z->c = z->l - m5;
+ { int ret = r_i_verb_suffix(z);
+ if (ret == 0) goto lab5;
+ if (ret < 0) return ret;
+ }
+ goto lab3;
+ lab5:
+ z->c = z->l - m5;
+ { int ret = r_verb_suffix(z);
+ if (ret == 0) goto lab2;
+ if (ret < 0) return ret;
+ }
+ }
+ lab3:
+ z->c = z->l - m4;
+ { int m6 = z->l - z->c; (void)m6;
+ z->ket = z->c;
+ { int m7 = z->l - z->c; (void)m7;
+ if (z->c <= z->lb || z->p[z->c - 1] != 'Y') goto lab8;
+ z->c--;
+ z->bra = z->c;
+ { int ret = slice_from_s(z, 1, s_37);
+ if (ret < 0) return ret;
+ }
+ goto lab7;
+ lab8:
+ z->c = z->l - m7;
+ if (!(eq_s_b(z, 2, s_38))) { z->c = z->l - m6; goto lab6; }
+ z->bra = z->c;
+ { int ret = slice_from_s(z, 1, s_39);
+ if (ret < 0) return ret;
+ }
+ }
+ lab7:
+ lab6:
+ ;
+ }
+ }
+ goto lab1;
+ lab2:
+ z->c = z->l - m3;
+ { int ret = r_residual_suffix(z);
+ if (ret == 0) goto lab0;
+ if (ret < 0) return ret;
+ }
+ }
+ lab1:
+ lab0:
+ z->c = z->l - m2;
+ }
+ { int m8 = z->l - z->c; (void)m8;
+ { int ret = r_un_double(z);
+ if (ret < 0) return ret;
+ }
+ z->c = z->l - m8;
+ }
+ { int m9 = z->l - z->c; (void)m9;
+ { int ret = r_un_accent(z);
+ if (ret < 0) return ret;
+ }
+ z->c = z->l - m9;
+ }
+ z->c = z->lb;
+ { int c10 = z->c;
+ { int ret = r_postlude(z);
+ if (ret < 0) return ret;
+ }
+ z->c = c10;
+ }
+ return 1;
+}
+
+extern struct SN_env * french_UTF_8_create_env(void) { return SN_create_env(0, 3); }
+
+extern void french_UTF_8_close_env(struct SN_env * z) { SN_close_env(z, 0); }
+
diff --git a/src/backend/snowball/libstemmer/stem_UTF_8_german.c b/src/backend/snowball/libstemmer/stem_UTF_8_german.c
new file mode 100644
index 0000000..13ce77e
--- /dev/null
+++ b/src/backend/snowball/libstemmer/stem_UTF_8_german.c
@@ -0,0 +1,500 @@
+/* Generated by Snowball 2.2.0 - https://snowballstem.org/ */
+
+#include "header.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+extern int german_UTF_8_stem(struct SN_env * z);
+#ifdef __cplusplus
+}
+#endif
+static int r_standard_suffix(struct SN_env * z);
+static int r_R2(struct SN_env * z);
+static int r_R1(struct SN_env * z);
+static int r_mark_regions(struct SN_env * z);
+static int r_postlude(struct SN_env * z);
+static int r_prelude(struct SN_env * z);
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+extern struct SN_env * german_UTF_8_create_env(void);
+extern void german_UTF_8_close_env(struct SN_env * z);
+
+
+#ifdef __cplusplus
+}
+#endif
+static const symbol s_0_1[1] = { 'U' };
+static const symbol s_0_2[1] = { 'Y' };
+static const symbol s_0_3[2] = { 0xC3, 0xA4 };
+static const symbol s_0_4[2] = { 0xC3, 0xB6 };
+static const symbol s_0_5[2] = { 0xC3, 0xBC };
+
+static const struct among a_0[6] =
+{
+{ 0, 0, -1, 5, 0},
+{ 1, s_0_1, 0, 2, 0},
+{ 1, s_0_2, 0, 1, 0},
+{ 2, s_0_3, 0, 3, 0},
+{ 2, s_0_4, 0, 4, 0},
+{ 2, s_0_5, 0, 2, 0}
+};
+
+static const symbol s_1_0[1] = { 'e' };
+static const symbol s_1_1[2] = { 'e', 'm' };
+static const symbol s_1_2[2] = { 'e', 'n' };
+static const symbol s_1_3[3] = { 'e', 'r', 'n' };
+static const symbol s_1_4[2] = { 'e', 'r' };
+static const symbol s_1_5[1] = { 's' };
+static const symbol s_1_6[2] = { 'e', 's' };
+
+static const struct among a_1[7] =
+{
+{ 1, s_1_0, -1, 2, 0},
+{ 2, s_1_1, -1, 1, 0},
+{ 2, s_1_2, -1, 2, 0},
+{ 3, s_1_3, -1, 1, 0},
+{ 2, s_1_4, -1, 1, 0},
+{ 1, s_1_5, -1, 3, 0},
+{ 2, s_1_6, 5, 2, 0}
+};
+
+static const symbol s_2_0[2] = { 'e', 'n' };
+static const symbol s_2_1[2] = { 'e', 'r' };
+static const symbol s_2_2[2] = { 's', 't' };
+static const symbol s_2_3[3] = { 'e', 's', 't' };
+
+static const struct among a_2[4] =
+{
+{ 2, s_2_0, -1, 1, 0},
+{ 2, s_2_1, -1, 1, 0},
+{ 2, s_2_2, -1, 2, 0},
+{ 3, s_2_3, 2, 1, 0}
+};
+
+static const symbol s_3_0[2] = { 'i', 'g' };
+static const symbol s_3_1[4] = { 'l', 'i', 'c', 'h' };
+
+static const struct among a_3[2] =
+{
+{ 2, s_3_0, -1, 1, 0},
+{ 4, s_3_1, -1, 1, 0}
+};
+
+static const symbol s_4_0[3] = { 'e', 'n', 'd' };
+static const symbol s_4_1[2] = { 'i', 'g' };
+static const symbol s_4_2[3] = { 'u', 'n', 'g' };
+static const symbol s_4_3[4] = { 'l', 'i', 'c', 'h' };
+static const symbol s_4_4[4] = { 'i', 's', 'c', 'h' };
+static const symbol s_4_5[2] = { 'i', 'k' };
+static const symbol s_4_6[4] = { 'h', 'e', 'i', 't' };
+static const symbol s_4_7[4] = { 'k', 'e', 'i', 't' };
+
+static const struct among a_4[8] =
+{
+{ 3, s_4_0, -1, 1, 0},
+{ 2, s_4_1, -1, 2, 0},
+{ 3, s_4_2, -1, 1, 0},
+{ 4, s_4_3, -1, 3, 0},
+{ 4, s_4_4, -1, 2, 0},
+{ 2, s_4_5, -1, 2, 0},
+{ 4, s_4_6, -1, 3, 0},
+{ 4, s_4_7, -1, 4, 0}
+};
+
+static const unsigned char g_v[] = { 17, 65, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 32, 8 };
+
+static const unsigned char g_s_ending[] = { 117, 30, 5 };
+
+static const unsigned char g_st_ending[] = { 117, 30, 4 };
+
+static const symbol s_0[] = { 0xC3, 0x9F };
+static const symbol s_1[] = { 's', 's' };
+static const symbol s_2[] = { 'U' };
+static const symbol s_3[] = { 'Y' };
+static const symbol s_4[] = { 'y' };
+static const symbol s_5[] = { 'u' };
+static const symbol s_6[] = { 'a' };
+static const symbol s_7[] = { 'o' };
+static const symbol s_8[] = { 'n', 'i', 's' };
+static const symbol s_9[] = { 'i', 'g' };
+static const symbol s_10[] = { 'e', 'r' };
+static const symbol s_11[] = { 'e', 'n' };
+
+static int r_prelude(struct SN_env * z) {
+ { int c_test1 = z->c;
+ while(1) {
+ int c2 = z->c;
+ { int c3 = z->c;
+ z->bra = z->c;
+ if (!(eq_s(z, 2, s_0))) goto lab2;
+ z->ket = z->c;
+ { int ret = slice_from_s(z, 2, s_1);
+ if (ret < 0) return ret;
+ }
+ goto lab1;
+ lab2:
+ z->c = c3;
+ { int ret = skip_utf8(z->p, z->c, z->l, 1);
+ if (ret < 0) goto lab0;
+ z->c = ret;
+ }
+ }
+ lab1:
+ continue;
+ lab0:
+ z->c = c2;
+ break;
+ }
+ z->c = c_test1;
+ }
+ while(1) {
+ int c4 = z->c;
+ while(1) {
+ int c5 = z->c;
+ if (in_grouping_U(z, g_v, 97, 252, 0)) goto lab4;
+ z->bra = z->c;
+ { int c6 = z->c;
+ if (z->c == z->l || z->p[z->c] != 'u') goto lab6;
+ z->c++;
+ z->ket = z->c;
+ if (in_grouping_U(z, g_v, 97, 252, 0)) goto lab6;
+ { int ret = slice_from_s(z, 1, s_2);
+ if (ret < 0) return ret;
+ }
+ goto lab5;
+ lab6:
+ z->c = c6;
+ if (z->c == z->l || z->p[z->c] != 'y') goto lab4;
+ z->c++;
+ z->ket = z->c;
+ if (in_grouping_U(z, g_v, 97, 252, 0)) goto lab4;
+ { int ret = slice_from_s(z, 1, s_3);
+ if (ret < 0) return ret;
+ }
+ }
+ lab5:
+ z->c = c5;
+ break;
+ lab4:
+ z->c = c5;
+ { int ret = skip_utf8(z->p, z->c, z->l, 1);
+ if (ret < 0) goto lab3;
+ z->c = ret;
+ }
+ }
+ continue;
+ lab3:
+ z->c = c4;
+ break;
+ }
+ return 1;
+}
+
+static int r_mark_regions(struct SN_env * z) {
+ z->I[2] = z->l;
+ z->I[1] = z->l;
+ { int c_test1 = z->c;
+ { int ret = skip_utf8(z->p, z->c, z->l, 3);
+ if (ret < 0) return 0;
+ z->c = ret;
+ }
+ z->I[0] = z->c;
+ z->c = c_test1;
+ }
+ {
+ int ret = out_grouping_U(z, g_v, 97, 252, 1);
+ if (ret < 0) return 0;
+ z->c += ret;
+ }
+ {
+ int ret = in_grouping_U(z, g_v, 97, 252, 1);
+ if (ret < 0) return 0;
+ z->c += ret;
+ }
+ z->I[2] = z->c;
+
+ if (!(z->I[2] < z->I[0])) goto lab0;
+ z->I[2] = z->I[0];
+lab0:
+ {
+ int ret = out_grouping_U(z, g_v, 97, 252, 1);
+ if (ret < 0) return 0;
+ z->c += ret;
+ }
+ {
+ int ret = in_grouping_U(z, g_v, 97, 252, 1);
+ if (ret < 0) return 0;
+ z->c += ret;
+ }
+ z->I[1] = z->c;
+ return 1;
+}
+
+static int r_postlude(struct SN_env * z) {
+ int among_var;
+ while(1) {
+ int c1 = z->c;
+ z->bra = z->c;
+ among_var = find_among(z, a_0, 6);
+ if (!(among_var)) goto lab0;
+ z->ket = z->c;
+ switch (among_var) {
+ case 1:
+ { int ret = slice_from_s(z, 1, s_4);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 2:
+ { int ret = slice_from_s(z, 1, s_5);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 3:
+ { int ret = slice_from_s(z, 1, s_6);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 4:
+ { int ret = slice_from_s(z, 1, s_7);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 5:
+ { int ret = skip_utf8(z->p, z->c, z->l, 1);
+ if (ret < 0) goto lab0;
+ z->c = ret;
+ }
+ break;
+ }
+ continue;
+ lab0:
+ z->c = c1;
+ break;
+ }
+ return 1;
+}
+
+static int r_R1(struct SN_env * z) {
+ if (!(z->I[2] <= z->c)) return 0;
+ return 1;
+}
+
+static int r_R2(struct SN_env * z) {
+ if (!(z->I[1] <= z->c)) return 0;
+ return 1;
+}
+
+static int r_standard_suffix(struct SN_env * z) {
+ int among_var;
+ { int m1 = z->l - z->c; (void)m1;
+ z->ket = z->c;
+ if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((811040 >> (z->p[z->c - 1] & 0x1f)) & 1)) goto lab0;
+ among_var = find_among_b(z, a_1, 7);
+ if (!(among_var)) goto lab0;
+ z->bra = z->c;
+ { int ret = r_R1(z);
+ if (ret == 0) goto lab0;
+ if (ret < 0) return ret;
+ }
+ switch (among_var) {
+ case 1:
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 2:
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ { int m2 = z->l - z->c; (void)m2;
+ z->ket = z->c;
+ if (z->c <= z->lb || z->p[z->c - 1] != 's') { z->c = z->l - m2; goto lab1; }
+ z->c--;
+ z->bra = z->c;
+ if (!(eq_s_b(z, 3, s_8))) { z->c = z->l - m2; goto lab1; }
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ lab1:
+ ;
+ }
+ break;
+ case 3:
+ if (in_grouping_b_U(z, g_s_ending, 98, 116, 0)) goto lab0;
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ break;
+ }
+ lab0:
+ z->c = z->l - m1;
+ }
+ { int m3 = z->l - z->c; (void)m3;
+ z->ket = z->c;
+ if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1327104 >> (z->p[z->c - 1] & 0x1f)) & 1)) goto lab2;
+ among_var = find_among_b(z, a_2, 4);
+ if (!(among_var)) goto lab2;
+ z->bra = z->c;
+ { int ret = r_R1(z);
+ if (ret == 0) goto lab2;
+ if (ret < 0) return ret;
+ }
+ switch (among_var) {
+ case 1:
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 2:
+ if (in_grouping_b_U(z, g_st_ending, 98, 116, 0)) goto lab2;
+ { int ret = skip_b_utf8(z->p, z->c, z->lb, 3);
+ if (ret < 0) goto lab2;
+ z->c = ret;
+ }
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ break;
+ }
+ lab2:
+ z->c = z->l - m3;
+ }
+ { int m4 = z->l - z->c; (void)m4;
+ z->ket = z->c;
+ if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1051024 >> (z->p[z->c - 1] & 0x1f)) & 1)) goto lab3;
+ among_var = find_among_b(z, a_4, 8);
+ if (!(among_var)) goto lab3;
+ z->bra = z->c;
+ { int ret = r_R2(z);
+ if (ret == 0) goto lab3;
+ if (ret < 0) return ret;
+ }
+ switch (among_var) {
+ case 1:
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ { int m5 = z->l - z->c; (void)m5;
+ z->ket = z->c;
+ if (!(eq_s_b(z, 2, s_9))) { z->c = z->l - m5; goto lab4; }
+ z->bra = z->c;
+ { int m6 = z->l - z->c; (void)m6;
+ if (z->c <= z->lb || z->p[z->c - 1] != 'e') goto lab5;
+ z->c--;
+ { z->c = z->l - m5; goto lab4; }
+ lab5:
+ z->c = z->l - m6;
+ }
+ { int ret = r_R2(z);
+ if (ret == 0) { z->c = z->l - m5; goto lab4; }
+ if (ret < 0) return ret;
+ }
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ lab4:
+ ;
+ }
+ break;
+ case 2:
+ { int m7 = z->l - z->c; (void)m7;
+ if (z->c <= z->lb || z->p[z->c - 1] != 'e') goto lab6;
+ z->c--;
+ goto lab3;
+ lab6:
+ z->c = z->l - m7;
+ }
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 3:
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ { int m8 = z->l - z->c; (void)m8;
+ z->ket = z->c;
+ { int m9 = z->l - z->c; (void)m9;
+ if (!(eq_s_b(z, 2, s_10))) goto lab9;
+ goto lab8;
+ lab9:
+ z->c = z->l - m9;
+ if (!(eq_s_b(z, 2, s_11))) { z->c = z->l - m8; goto lab7; }
+ }
+ lab8:
+ z->bra = z->c;
+ { int ret = r_R1(z);
+ if (ret == 0) { z->c = z->l - m8; goto lab7; }
+ if (ret < 0) return ret;
+ }
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ lab7:
+ ;
+ }
+ break;
+ case 4:
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ { int m10 = z->l - z->c; (void)m10;
+ z->ket = z->c;
+ if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 103 && z->p[z->c - 1] != 104)) { z->c = z->l - m10; goto lab10; }
+ if (!(find_among_b(z, a_3, 2))) { z->c = z->l - m10; goto lab10; }
+ z->bra = z->c;
+ { int ret = r_R2(z);
+ if (ret == 0) { z->c = z->l - m10; goto lab10; }
+ if (ret < 0) return ret;
+ }
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ lab10:
+ ;
+ }
+ break;
+ }
+ lab3:
+ z->c = z->l - m4;
+ }
+ return 1;
+}
+
+extern int german_UTF_8_stem(struct SN_env * z) {
+ { int c1 = z->c;
+ { int ret = r_prelude(z);
+ if (ret < 0) return ret;
+ }
+ z->c = c1;
+ }
+ { int c2 = z->c;
+ { int ret = r_mark_regions(z);
+ if (ret < 0) return ret;
+ }
+ z->c = c2;
+ }
+ z->lb = z->c; z->c = z->l;
+
+
+ { int ret = r_standard_suffix(z);
+ if (ret < 0) return ret;
+ }
+ z->c = z->lb;
+ { int c3 = z->c;
+ { int ret = r_postlude(z);
+ if (ret < 0) return ret;
+ }
+ z->c = c3;
+ }
+ return 1;
+}
+
+extern struct SN_env * german_UTF_8_create_env(void) { return SN_create_env(0, 3); }
+
+extern void german_UTF_8_close_env(struct SN_env * z) { SN_close_env(z, 0); }
+
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
index 0000000..7b3e017
--- /dev/null
+++ b/src/backend/snowball/libstemmer/stem_UTF_8_greek.c
@@ -0,0 +1,3673 @@
+/* Generated by Snowball 2.2.0 - https://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, -1, 25, 0},
+{ 2, s_0_1, 0, 18, 0},
+{ 2, s_0_2, 0, 1, 0},
+{ 2, s_0_3, 0, 5, 0},
+{ 2, s_0_4, 0, 7, 0},
+{ 2, s_0_5, 0, 9, 0},
+{ 2, s_0_6, 0, 7, 0},
+{ 2, s_0_7, 0, 20, 0},
+{ 2, s_0_8, 0, 15, 0},
+{ 2, s_0_9, 0, 15, 0},
+{ 2, s_0_10, 0, 20, 0},
+{ 2, s_0_11, 0, 20, 0},
+{ 2, s_0_12, 0, 24, 0},
+{ 2, s_0_13, 0, 24, 0},
+{ 2, s_0_14, 0, 7, 0},
+{ 2, s_0_15, 0, 1, 0},
+{ 2, s_0_16, 0, 2, 0},
+{ 2, s_0_17, 0, 3, 0},
+{ 2, s_0_18, 0, 4, 0},
+{ 2, s_0_19, 0, 5, 0},
+{ 2, s_0_20, 0, 6, 0},
+{ 2, s_0_21, 0, 7, 0},
+{ 2, s_0_22, 0, 8, 0},
+{ 2, s_0_23, 0, 9, 0},
+{ 2, s_0_24, 0, 10, 0},
+{ 2, s_0_25, 0, 11, 0},
+{ 2, s_0_26, 0, 12, 0},
+{ 2, s_0_27, 0, 13, 0},
+{ 2, s_0_28, 0, 14, 0},
+{ 2, s_0_29, 0, 15, 0},
+{ 2, s_0_30, 0, 16, 0},
+{ 2, s_0_31, 0, 17, 0},
+{ 2, s_0_32, 0, 18, 0},
+{ 2, s_0_33, 0, 19, 0},
+{ 2, s_0_34, 0, 20, 0},
+{ 2, s_0_35, 0, 21, 0},
+{ 2, s_0_36, 0, 22, 0},
+{ 2, s_0_37, 0, 23, 0},
+{ 2, s_0_38, 0, 24, 0},
+{ 2, s_0_39, 0, 9, 0},
+{ 2, s_0_40, 0, 20, 0},
+{ 2, s_0_41, 0, 1, 0},
+{ 2, s_0_42, 0, 5, 0},
+{ 2, s_0_43, 0, 7, 0},
+{ 2, s_0_44, 0, 9, 0},
+{ 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] =
+{
+{ 16, s_1_0, -1, 10, 0},
+{ 6, s_1_1, -1, 9, 0},
+{ 10, s_1_2, -1, 7, 0},
+{ 10, s_1_3, -1, 8, 0},
+{ 10, s_1_4, -1, 6, 0},
+{ 20, s_1_5, -1, 10, 0},
+{ 10, s_1_6, -1, 9, 0},
+{ 14, s_1_7, -1, 7, 0},
+{ 14, s_1_8, -1, 8, 0},
+{ 14, s_1_9, -1, 6, 0},
+{ 18, s_1_10, -1, 11, 0},
+{ 14, s_1_11, -1, 11, 0},
+{ 12, s_1_12, -1, 1, 0},
+{ 14, s_1_13, -1, 2, 0},
+{ 12, s_1_14, -1, 4, 0},
+{ 16, s_1_15, -1, 5, 0},
+{ 14, s_1_16, -1, 3, 0},
+{ 18, s_1_17, -1, 10, 0},
+{ 8, s_1_18, -1, 9, 0},
+{ 12, s_1_19, -1, 7, 0},
+{ 12, s_1_20, -1, 8, 0},
+{ 12, s_1_21, -1, 6, 0},
+{ 16, s_1_22, -1, 11, 0},
+{ 10, s_1_23, -1, 1, 0},
+{ 12, s_1_24, -1, 2, 0},
+{ 10, s_1_25, -1, 4, 0},
+{ 14, s_1_26, -1, 5, 0},
+{ 12, s_1_27, -1, 3, 0},
+{ 12, s_1_28, -1, 7, 0},
+{ 20, s_1_29, -1, 10, 0},
+{ 10, s_1_30, -1, 9, 0},
+{ 14, s_1_31, -1, 7, 0},
+{ 14, s_1_32, -1, 8, 0},
+{ 14, s_1_33, -1, 6, 0},
+{ 18, s_1_34, -1, 11, 0},
+{ 12, s_1_35, -1, 1, 0},
+{ 14, s_1_36, -1, 2, 0},
+{ 12, s_1_37, -1, 4, 0},
+{ 16, s_1_38, -1, 5, 0},
+{ 14, s_1_39, -1, 3, 0}
+};
+
+static const symbol s_2_0[2] = { 0xCF, 0x80 };
+static const symbol s_2_1[6] = { 0xCE, 0xB9, 0xCE, 0xBC, 0xCF, 0x80 };
+static const symbol s_2_2[2] = { 0xCF, 0x81 };
+static const symbol s_2_3[4] = { 0xCF, 0x80, 0xCF, 0x81 };
+static const symbol s_2_4[6] = { 0xCE, 0xBC, 0xCF, 0x80, 0xCF, 0x81 };
+static const symbol s_2_5[6] = { 0xCE, 0xB1, 0xCF, 0x81, 0xCF, 0x81 };
+static const symbol s_2_6[12] = { 0xCE, 0xB3, 0xCE, 0xBB, 0xCF, 0x85, 0xCE, 0xBA, 0xCF, 0x85, 0xCF, 0x81 };
+static const symbol s_2_7[10] = { 0xCF, 0x80, 0xCE, 0xBF, 0xCE, 0xBB, 0xCF, 0x85, 0xCF, 0x81 };
+static const symbol s_2_8[10] = { 0xCE, 0xB1, 0xCE, 0xBC, 0xCF, 0x80, 0xCE, 0xB1, 0xCF, 0x81 };
+static const symbol s_2_9[6] = { 0xCE, 0xBC, 0xCE, 0xB1, 0xCF, 0x81 };
+static const symbol s_2_10[6] = { 0xCE, 0xB3, 0xCE, 0xBA, 0xCF, 0x81 };
+static const symbol s_2_11[14] = { 0xCF, 0x80, 0xCE, 0xB9, 0xCF, 0x80, 0xCE, 0xB5, 0xCF, 0x81, 0xCE, 0xBF, 0xCF, 0x81 };
+static const symbol s_2_12[12] = { 0xCE, 0xB2, 0xCE, 0xBF, 0xCE, 0xBB, 0xCE, 0xB2, 0xCE, 0xBF, 0xCF, 0x81 };
+static const symbol s_2_13[12] = { 0xCE, 0xB3, 0xCE, 0xBB, 0xCF, 0x85, 0xCE, 0xBA, 0xCE, 0xBF, 0xCF, 0x81 };
+static const symbol s_2_14[6] = { 0xCE, 0xBB, 0xCE, 0xBF, 0xCF, 0x85 };
+static const symbol s_2_15[4] = { 0xCF, 0x80, 0xCE, 0xB1 };
+static const symbol s_2_16[12] = { 0xCE, 0xBE, 0xCE, 0xB1, 0xCE, 0xBD, 0xCE, 0xB1, 0xCF, 0x80, 0xCE, 0xB1 };
+static const symbol s_2_17[6] = { 0xCE, 0xB5, 0xCF, 0x80, 0xCE, 0xB1 };
+static const symbol s_2_18[12] = { 0xCF, 0x80, 0xCE, 0xB5, 0xCF, 0x81, 0xCE, 0xB9, 0xCF, 0x80, 0xCE, 0xB1 };
+static const symbol s_2_19[12] = { 0xCE, 0xB1, 0xCE, 0xBD, 0xCE, 0xB1, 0xCE, 0xBC, 0xCF, 0x80, 0xCE, 0xB1 };
+static const symbol s_2_20[8] = { 0xCE, 0xB5, 0xCE, 0xBC, 0xCF, 0x80, 0xCE, 0xB1 };
+static const symbol s_2_21[2] = { 0xCE, 0xB2 };
+static const symbol s_2_22[8] = { 0xCE, 0xB4, 0xCE, 0xB1, 0xCE, 0xBD, 0xCE, 0xB5 };
+static const symbol s_2_23[12] = { 0xCE, 0xB2, 0xCE, 0xB1, 0xCE, 0xB8, 0xCF, 0x85, 0xCF, 0x81, 0xCE, 0xB9 };
+static const symbol s_2_24[8] = { 0xCE, 0xB2, 0xCE, 0xB1, 0xCF, 0x81, 0xCE, 0xBA };
+static const symbol s_2_25[8] = { 0xCE, 0xBC, 0xCE, 0xB1, 0xCF, 0x81, 0xCE, 0xBA };
+static const symbol s_2_26[2] = { 0xCE, 0xBB };
+static const symbol s_2_27[2] = { 0xCE, 0xBC };
+static const symbol s_2_28[8] = { 0xCE, 0xBA, 0xCE, 0xBF, 0xCF, 0x81, 0xCE, 0xBD };
+static const symbol s_2_29[8] = { 0xCE, 0xB1, 0xCE, 0xB8, 0xCF, 0x81, 0xCE, 0xBF };
+static const symbol s_2_30[14] = { 0xCF, 0x83, 0xCF, 0x85, 0xCE, 0xBD, 0xCE, 0xB1, 0xCE, 0xB8, 0xCF, 0x81, 0xCE, 0xBF };
+
+static const struct among a_2[31] =
+{
+{ 2, s_2_0, -1, 2, 0},
+{ 6, s_2_1, 0, 2, 0},
+{ 2, s_2_2, -1, 2, 0},
+{ 4, s_2_3, 2, 2, 0},
+{ 6, s_2_4, 3, 2, 0},
+{ 6, s_2_5, 2, 2, 0},
+{ 12, s_2_6, 2, 2, 0},
+{ 10, s_2_7, 2, 2, 0},
+{ 10, s_2_8, 2, 2, 0},
+{ 6, s_2_9, 2, 2, 0},
+{ 6, s_2_10, 2, 2, 0},
+{ 14, s_2_11, 2, 2, 0},
+{ 12, s_2_12, 2, 2, 0},
+{ 12, s_2_13, 2, 2, 0},
+{ 6, s_2_14, -1, 2, 0},
+{ 4, s_2_15, -1, 1, 0},
+{ 12, s_2_16, 15, 1, 0},
+{ 6, s_2_17, 15, 1, 0},
+{ 12, s_2_18, 15, 1, 0},
+{ 12, s_2_19, 15, 1, 0},
+{ 8, s_2_20, 15, 1, 0},
+{ 2, s_2_21, -1, 2, 0},
+{ 8, s_2_22, -1, 1, 0},
+{ 12, s_2_23, -1, 2, 0},
+{ 8, s_2_24, -1, 2, 0},
+{ 8, s_2_25, -1, 2, 0},
+{ 2, s_2_26, -1, 2, 0},
+{ 2, s_2_27, -1, 2, 0},
+{ 8, s_2_28, -1, 2, 0},
+{ 8, s_2_29, -1, 1, 0},
+{ 14, s_2_30, 29, 1, 0}
+};
+
+static const symbol s_3_0[8] = { 0xCE, 0xB9, 0xCE, 0xB6, 0xCE, 0xB5, 0xCF, 0x83 };
+static const symbol s_3_1[10] = { 0xCE, 0xB9, 0xCE, 0xB6, 0xCE, 0xB5, 0xCE, 0xB9, 0xCF, 0x83 };
+static const symbol s_3_2[6] = { 0xCE, 0xB9, 0xCE, 0xB6, 0xCF, 0x89 };
+static const symbol s_3_3[6] = { 0xCE, 0xB9, 0xCE, 0xB6, 0xCE, 0xB1 };
+static const symbol s_3_4[10] = { 0xCE, 0xB9, 0xCE, 0xB6, 0xCE, 0xB1, 0xCF, 0x84, 0xCE, 0xB5 };
+static const symbol s_3_5[10] = { 0xCE, 0xB9, 0xCE, 0xB6, 0xCE, 0xB5, 0xCF, 0x84, 0xCE, 0xB5 };
+static const symbol s_3_6[6] = { 0xCE, 0xB9, 0xCE, 0xB6, 0xCE, 0xB5 };
+static const symbol s_3_7[12] = { 0xCE, 0xB9, 0xCE, 0xB6, 0xCE, 0xBF, 0xCF, 0x85, 0xCE, 0xBC, 0xCE, 0xB5 };
+static const symbol s_3_8[10] = { 0xCE, 0xB9, 0xCE, 0xB6, 0xCE, 0xB1, 0xCE, 0xBC, 0xCE, 0xB5 };
+static const symbol s_3_9[12] = { 0xCE, 0xB9, 0xCE, 0xB6, 0xCE, 0xBF, 0xCF, 0x85, 0xCE, 0xBD, 0xCE, 0xB5 };
+static const symbol s_3_10[10] = { 0xCE, 0xB9, 0xCE, 0xB6, 0xCE, 0xB1, 0xCE, 0xBD, 0xCE, 0xB5 };
+static const symbol s_3_11[8] = { 0xCE, 0xB9, 0xCE, 0xB6, 0xCE, 0xB5, 0xCE, 0xB9 };
+static const symbol s_3_12[10] = { 0xCE, 0xB9, 0xCE, 0xB6, 0xCE, 0xBF, 0xCF, 0x85, 0xCE, 0xBD };
+static const symbol s_3_13[8] = { 0xCE, 0xB9, 0xCE, 0xB6, 0xCE, 0xB1, 0xCE, 0xBD };
+
+static const struct among a_3[14] =
+{
+{ 8, s_3_0, -1, 1, 0},
+{ 10, s_3_1, -1, 1, 0},
+{ 6, s_3_2, -1, 1, 0},
+{ 6, s_3_3, -1, 1, 0},
+{ 10, s_3_4, -1, 1, 0},
+{ 10, s_3_5, -1, 1, 0},
+{ 6, s_3_6, -1, 1, 0},
+{ 12, s_3_7, -1, 1, 0},
+{ 10, s_3_8, -1, 1, 0},
+{ 12, s_3_9, -1, 1, 0},
+{ 10, s_3_10, -1, 1, 0},
+{ 8, s_3_11, -1, 1, 0},
+{ 10, s_3_12, -1, 1, 0},
+{ 8, s_3_13, -1, 1, 0}
+};
+
+static const symbol s_4_0[2] = { 0xCF, 0x83 };
+static const symbol s_4_1[2] = { 0xCF, 0x87 };
+static const symbol s_4_2[4] = { 0xCF, 0x85, 0xCF, 0x88 };
+static const symbol s_4_3[4] = { 0xCE, 0xB6, 0xCF, 0x89 };
+static const symbol s_4_4[4] = { 0xCE, 0xB2, 0xCE, 0xB9 };
+static const symbol s_4_5[4] = { 0xCE, 0xBB, 0xCE, 0xB9 };
+static const symbol s_4_6[4] = { 0xCE, 0xB1, 0xCE, 0xBB };
+static const symbol s_4_7[4] = { 0xCE, 0xB5, 0xCE, 0xBD };
+
+static const struct among a_4[8] =
+{
+{ 2, s_4_0, -1, 1, 0},
+{ 2, s_4_1, -1, 1, 0},
+{ 4, s_4_2, -1, 1, 0},
+{ 4, s_4_3, -1, 1, 0},
+{ 4, s_4_4, -1, 1, 0},
+{ 4, s_4_5, -1, 1, 0},
+{ 4, s_4_6, -1, 1, 0},
+{ 4, s_4_7, -1, 1, 0}
+};
+
+static const symbol s_5_0[12] = { 0xCF, 0x89, 0xCE, 0xB8, 0xCE, 0xB7, 0xCE, 0xBA, 0xCE, 0xB5, 0xCF, 0x83 };
+static const symbol s_5_1[10] = { 0xCF, 0x89, 0xCE, 0xB8, 0xCE, 0xB7, 0xCE, 0xBA, 0xCE, 0xB1 };
+static const symbol s_5_2[14] = { 0xCF, 0x89, 0xCE, 0xB8, 0xCE, 0xB7, 0xCE, 0xBA, 0xCE, 0xB1, 0xCF, 0x84, 0xCE, 0xB5 };
+static const symbol s_5_3[10] = { 0xCF, 0x89, 0xCE, 0xB8, 0xCE, 0xB7, 0xCE, 0xBA, 0xCE, 0xB5 };
+static const symbol s_5_4[14] = { 0xCF, 0x89, 0xCE, 0xB8, 0xCE, 0xB7, 0xCE, 0xBA, 0xCE, 0xB1, 0xCE, 0xBC, 0xCE, 0xB5 };
+static const symbol s_5_5[14] = { 0xCF, 0x89, 0xCE, 0xB8, 0xCE, 0xB7, 0xCE, 0xBA, 0xCE, 0xB1, 0xCE, 0xBD, 0xCE, 0xB5 };
+static const symbol s_5_6[12] = { 0xCF, 0x89, 0xCE, 0xB8, 0xCE, 0xB7, 0xCE, 0xBA, 0xCE, 0xB1, 0xCE, 0xBD };
+
+static const struct among a_5[7] =
+{
+{ 12, s_5_0, -1, 1, 0},
+{ 10, s_5_1, -1, 1, 0},
+{ 14, s_5_2, -1, 1, 0},
+{ 10, s_5_3, -1, 1, 0},
+{ 14, s_5_4, -1, 1, 0},
+{ 14, s_5_5, -1, 1, 0},
+{ 12, s_5_6, -1, 1, 0}
+};
+
+static const symbol s_6_0[2] = { 0xCF, 0x80 };
+static const symbol s_6_1[6] = { 0xCE, 0xBB, 0xCE, 0xB1, 0xCF, 0x81 };
+static const symbol s_6_2[16] = { 0xCE, 0xB4, 0xCE, 0xB7, 0xCE, 0xBC, 0xCE, 0xBF, 0xCE, 0xBA, 0xCF, 0x81, 0xCE, 0xB1, 0xCF, 0x84 };
+static const symbol s_6_3[4] = { 0xCE, 0xB1, 0xCF, 0x86 };
+static const symbol s_6_4[18] = { 0xCE, 0xB3, 0xCE, 0xB9, 0xCE, 0xB3, 0xCE, 0xB1, 0xCE, 0xBD, 0xCF, 0x84, 0xCE, 0xBF, 0xCE, 0xB1, 0xCF, 0x86 };
+static const symbol s_6_5[12] = { 0xCE, 0xBE, 0xCE, 0xB1, 0xCE, 0xBD, 0xCE, 0xB1, 0xCF, 0x80, 0xCE, 0xB1 };
+static const symbol s_6_6[6] = { 0xCE, 0xB5, 0xCF, 0x80, 0xCE, 0xB1 };
+static const symbol s_6_7[12] = { 0xCF, 0x80, 0xCE, 0xB5, 0xCF, 0x81, 0xCE, 0xB9, 0xCF, 0x80, 0xCE, 0xB1 };
+static const symbol s_6_8[12] = { 0xCE, 0xB1, 0xCE, 0xBD, 0xCE, 0xB1, 0xCE, 0xBC, 0xCF, 0x80, 0xCE, 0xB1 };
+static const symbol s_6_9[8] = { 0xCE, 0xB5, 0xCE, 0xBC, 0xCF, 0x80, 0xCE, 0xB1 };
+static const symbol s_6_10[14] = { 0xCF, 0x87, 0xCE, 0xB1, 0xCF, 0x81, 0xCF, 0x84, 0xCE, 0xBF, 0xCF, 0x80, 0xCE, 0xB1 };
+static const symbol s_6_11[12] = { 0xCE, 0xB5, 0xCE, 0xBE, 0xCE, 0xB1, 0xCF, 0x81, 0xCF, 0x87, 0xCE, 0xB1 };
+static const symbol s_6_12[4] = { 0xCF, 0x80, 0xCE, 0xB5 };
+static const symbol s_6_13[6] = { 0xCE, 0xB5, 0xCF, 0x80, 0xCE, 0xB5 };
+static const symbol s_6_14[12] = { 0xCE, 0xBC, 0xCE, 0xB5, 0xCF, 0x84, 0xCE, 0xB5, 0xCF, 0x80, 0xCE, 0xB5 };
+static const symbol s_6_15[6] = { 0xCE, 0xB5, 0xCF, 0x83, 0xCE, 0xB5 };
+static const symbol s_6_16[4] = { 0xCE, 0xB3, 0xCE, 0xB5 };
+static const symbol s_6_17[6] = { 0xCE, 0xB3, 0xCE, 0xBA, 0xCE, 0xB5 };
+static const symbol s_6_18[6] = { 0xCE, 0xBA, 0xCE, 0xBB, 0xCE, 0xB5 };
+static const symbol s_6_19[12] = { 0xCE, 0xB5, 0xCF, 0x83, 0xCF, 0x89, 0xCE, 0xBA, 0xCE, 0xBB, 0xCE, 0xB5 };
+static const symbol s_6_20[8] = { 0xCE, 0xB5, 0xCE, 0xBA, 0xCE, 0xBB, 0xCE, 0xB5 };
+static const symbol s_6_21[12] = { 0xCE, 0xB1, 0xCF, 0x80, 0xCE, 0xB5, 0xCE, 0xBA, 0xCE, 0xBB, 0xCE, 0xB5 };
+static const symbol s_6_22[12] = { 0xCE, 0xB1, 0xCF, 0x80, 0xCE, 0xBF, 0xCE, 0xBA, 0xCE, 0xBB, 0xCE, 0xB5 };
+static const symbol s_6_23[8] = { 0xCE, 0xB4, 0xCE, 0xB1, 0xCE, 0xBD, 0xCE, 0xB5 };
+static const symbol s_6_24[4] = { 0xCE, 0xB3, 0xCE, 0xBA };
+static const symbol s_6_25[2] = { 0xCE, 0xBC };
+static const symbol s_6_26[12] = { 0xCF, 0x80, 0xCE, 0xBF, 0xCF, 0x85, 0xCE, 0xBA, 0xCE, 0xB1, 0xCE, 0xBC };
+static const symbol s_6_27[6] = { 0xCE, 0xBA, 0xCE, 0xBF, 0xCE, 0xBC };
+static const symbol s_6_28[4] = { 0xCE, 0xB1, 0xCE, 0xBD };
+static const symbol s_6_29[8] = { 0xCE, 0xB1, 0xCE, 0xB8, 0xCF, 0x81, 0xCE, 0xBF };
+static const symbol s_6_30[14] = { 0xCF, 0x83, 0xCF, 0x85, 0xCE, 0xBD, 0xCE, 0xB1, 0xCE, 0xB8, 0xCF, 0x81, 0xCE, 0xBF };
+static const symbol s_6_31[6] = { 0xCE, 0xBF, 0xCE, 0xBB, 0xCE, 0xBF };
+
+static const struct among a_6[32] =
+{
+{ 2, s_6_0, -1, 2, 0},
+{ 6, s_6_1, -1, 2, 0},
+{ 16, s_6_2, -1, 2, 0},
+{ 4, s_6_3, -1, 2, 0},
+{ 18, s_6_4, 3, 2, 0},
+{ 12, s_6_5, -1, 1, 0},
+{ 6, s_6_6, -1, 1, 0},
+{ 12, s_6_7, -1, 1, 0},
+{ 12, s_6_8, -1, 1, 0},
+{ 8, s_6_9, -1, 1, 0},
+{ 14, s_6_10, -1, 1, 0},
+{ 12, s_6_11, -1, 1, 0},
+{ 4, s_6_12, -1, 1, 0},
+{ 6, s_6_13, 12, 1, 0},
+{ 12, s_6_14, 13, 1, 0},
+{ 6, s_6_15, -1, 1, 0},
+{ 4, s_6_16, -1, 2, 0},
+{ 6, s_6_17, -1, 2, 0},
+{ 6, s_6_18, -1, 1, 0},
+{ 12, s_6_19, 18, 1, 0},
+{ 8, s_6_20, 18, 1, 0},
+{ 12, s_6_21, 20, 1, 0},
+{ 12, s_6_22, 18, 1, 0},
+{ 8, s_6_23, -1, 1, 0},
+{ 4, s_6_24, -1, 2, 0},
+{ 2, s_6_25, -1, 2, 0},
+{ 12, s_6_26, 25, 2, 0},
+{ 6, s_6_27, 25, 2, 0},
+{ 4, s_6_28, -1, 2, 0},
+{ 8, s_6_29, -1, 1, 0},
+{ 14, s_6_30, 29, 1, 0},
+{ 6, s_6_31, -1, 2, 0}
+};
+
+static const symbol s_7_0[8] = { 0xCE, 0xB9, 0xCF, 0x83, 0xCE, 0xB5, 0xCF, 0x83 };
+static const symbol s_7_1[6] = { 0xCE, 0xB9, 0xCF, 0x83, 0xCE, 0xB1 };
+static const symbol s_7_2[6] = { 0xCE, 0xB9, 0xCF, 0x83, 0xCE, 0xB5 };
+static const symbol s_7_3[10] = { 0xCE, 0xB9, 0xCF, 0x83, 0xCE, 0xB1, 0xCF, 0x84, 0xCE, 0xB5 };
+static const symbol s_7_4[10] = { 0xCE, 0xB9, 0xCF, 0x83, 0xCE, 0xB1, 0xCE, 0xBC, 0xCE, 0xB5 };
+static const symbol s_7_5[10] = { 0xCE, 0xB9, 0xCF, 0x83, 0xCE, 0xB1, 0xCE, 0xBD, 0xCE, 0xB5 };
+static const symbol s_7_6[8] = { 0xCE, 0xB9, 0xCF, 0x83, 0xCE, 0xB1, 0xCE, 0xBD };
+
+static const struct among a_7[7] =
+{
+{ 8, s_7_0, -1, 1, 0},
+{ 6, s_7_1, -1, 1, 0},
+{ 6, s_7_2, -1, 1, 0},
+{ 10, s_7_3, -1, 1, 0},
+{ 10, s_7_4, -1, 1, 0},
+{ 10, s_7_5, -1, 1, 0},
+{ 8, s_7_6, -1, 1, 0}
+};
+
+static const symbol s_8_0[12] = { 0xCE, 0xBE, 0xCE, 0xB1, 0xCE, 0xBD, 0xCE, 0xB1, 0xCF, 0x80, 0xCE, 0xB1 };
+static const symbol s_8_1[6] = { 0xCE, 0xB5, 0xCF, 0x80, 0xCE, 0xB1 };
+static const symbol s_8_2[12] = { 0xCF, 0x80, 0xCE, 0xB5, 0xCF, 0x81, 0xCE, 0xB9, 0xCF, 0x80, 0xCE, 0xB1 };
+static const symbol s_8_3[12] = { 0xCE, 0xB1, 0xCE, 0xBD, 0xCE, 0xB1, 0xCE, 0xBC, 0xCF, 0x80, 0xCE, 0xB1 };
+static const symbol s_8_4[8] = { 0xCE, 0xB5, 0xCE, 0xBC, 0xCF, 0x80, 0xCE, 0xB1 };
+static const symbol s_8_5[14] = { 0xCF, 0x87, 0xCE, 0xB1, 0xCF, 0x81, 0xCF, 0x84, 0xCE, 0xBF, 0xCF, 0x80, 0xCE, 0xB1 };
+static const symbol s_8_6[12] = { 0xCE, 0xB5, 0xCE, 0xBE, 0xCE, 0xB1, 0xCF, 0x81, 0xCF, 0x87, 0xCE, 0xB1 };
+static const symbol s_8_7[4] = { 0xCF, 0x80, 0xCE, 0xB5 };
+static const symbol s_8_8[6] = { 0xCE, 0xB5, 0xCF, 0x80, 0xCE, 0xB5 };
+static const symbol s_8_9[12] = { 0xCE, 0xBC, 0xCE, 0xB5, 0xCF, 0x84, 0xCE, 0xB5, 0xCF, 0x80, 0xCE, 0xB5 };
+static const symbol s_8_10[6] = { 0xCE, 0xB5, 0xCF, 0x83, 0xCE, 0xB5 };
+static const symbol s_8_11[6] = { 0xCE, 0xBA, 0xCE, 0xBB, 0xCE, 0xB5 };
+static const symbol s_8_12[12] = { 0xCE, 0xB5, 0xCF, 0x83, 0xCF, 0x89, 0xCE, 0xBA, 0xCE, 0xBB, 0xCE, 0xB5 };
+static const symbol s_8_13[8] = { 0xCE, 0xB5, 0xCE, 0xBA, 0xCE, 0xBB, 0xCE, 0xB5 };
+static const symbol s_8_14[12] = { 0xCE, 0xB1, 0xCF, 0x80, 0xCE, 0xB5, 0xCE, 0xBA, 0xCE, 0xBB, 0xCE, 0xB5 };
+static const symbol s_8_15[12] = { 0xCE, 0xB1, 0xCF, 0x80, 0xCE, 0xBF, 0xCE, 0xBA, 0xCE, 0xBB, 0xCE, 0xB5 };
+static const symbol s_8_16[8] = { 0xCE, 0xB4, 0xCE, 0xB1, 0xCE, 0xBD, 0xCE, 0xB5 };
+static const symbol s_8_17[8] = { 0xCE, 0xB1, 0xCE, 0xB8, 0xCF, 0x81, 0xCE, 0xBF };
+static const symbol s_8_18[14] = { 0xCF, 0x83, 0xCF, 0x85, 0xCE, 0xBD, 0xCE, 0xB1, 0xCE, 0xB8, 0xCF, 0x81, 0xCE, 0xBF };
+
+static const struct among a_8[19] =
+{
+{ 12, s_8_0, -1, 1, 0},
+{ 6, s_8_1, -1, 1, 0},
+{ 12, s_8_2, -1, 1, 0},
+{ 12, s_8_3, -1, 1, 0},
+{ 8, s_8_4, -1, 1, 0},
+{ 14, s_8_5, -1, 1, 0},
+{ 12, s_8_6, -1, 1, 0},
+{ 4, s_8_7, -1, 1, 0},
+{ 6, s_8_8, 7, 1, 0},
+{ 12, s_8_9, 8, 1, 0},
+{ 6, s_8_10, -1, 1, 0},
+{ 6, s_8_11, -1, 1, 0},
+{ 12, s_8_12, 11, 1, 0},
+{ 8, s_8_13, 11, 1, 0},
+{ 12, s_8_14, 13, 1, 0},
+{ 12, s_8_15, 11, 1, 0},
+{ 8, s_8_16, -1, 1, 0},
+{ 8, s_8_17, -1, 1, 0},
+{ 14, s_8_18, 17, 1, 0}
+};
+
+static const symbol s_9_0[10] = { 0xCE, 0xB9, 0xCF, 0x83, 0xCE, 0xB5, 0xCE, 0xB9, 0xCF, 0x83 };
+static const symbol s_9_1[6] = { 0xCE, 0xB9, 0xCF, 0x83, 0xCF, 0x89 };
+static const symbol s_9_2[10] = { 0xCE, 0xB9, 0xCF, 0x83, 0xCE, 0xB5, 0xCF, 0x84, 0xCE, 0xB5 };
+static const symbol s_9_3[12] = { 0xCE, 0xB9, 0xCF, 0x83, 0xCE, 0xBF, 0xCF, 0x85, 0xCE, 0xBC, 0xCE, 0xB5 };
+static const symbol s_9_4[12] = { 0xCE, 0xB9, 0xCF, 0x83, 0xCE, 0xBF, 0xCF, 0x85, 0xCE, 0xBD, 0xCE, 0xB5 };
+static const symbol s_9_5[8] = { 0xCE, 0xB9, 0xCF, 0x83, 0xCE, 0xB5, 0xCE, 0xB9 };
+static const symbol s_9_6[10] = { 0xCE, 0xB9, 0xCF, 0x83, 0xCE, 0xBF, 0xCF, 0x85, 0xCE, 0xBD };
+
+static const struct among a_9[7] =
+{
+{ 10, s_9_0, -1, 1, 0},
+{ 6, s_9_1, -1, 1, 0},
+{ 10, s_9_2, -1, 1, 0},
+{ 12, s_9_3, -1, 1, 0},
+{ 12, s_9_4, -1, 1, 0},
+{ 8, s_9_5, -1, 1, 0},
+{ 10, s_9_6, -1, 1, 0}
+};
+
+static const symbol s_10_0[2] = { 0xCF, 0x80 };
+static const symbol s_10_1[6] = { 0xCE, 0xB5, 0xCF, 0x85, 0xCF, 0x80 };
+static const symbol s_10_2[4] = { 0xCE, 0xB1, 0xCF, 0x80 };
+static const symbol s_10_3[6] = { 0xCE, 0xB5, 0xCE, 0xBC, 0xCF, 0x80 };
+static const symbol s_10_4[6] = { 0xCE, 0xB3, 0xCF, 0x85, 0xCF, 0x81 };
+static const symbol s_10_5[4] = { 0xCF, 0x87, 0xCF, 0x81 };
+static const symbol s_10_6[6] = { 0xCF, 0x87, 0xCF, 0x89, 0xCF, 0x81 };
+static const symbol s_10_7[4] = { 0xCE, 0xB1, 0xCF, 0x81 };
+static const symbol s_10_8[6] = { 0xCE, 0xB1, 0xCE, 0xBF, 0xCF, 0x81 };
+static const symbol s_10_9[4] = { 0xCF, 0x87, 0xCF, 0x84 };
+static const symbol s_10_10[6] = { 0xCE, 0xB1, 0xCF, 0x87, 0xCF, 0x84 };
+static const symbol s_10_11[4] = { 0xCE, 0xBA, 0xCF, 0x84 };
+static const symbol s_10_12[6] = { 0xCE, 0xB1, 0xCE, 0xBA, 0xCF, 0x84 };
+static const symbol s_10_13[4] = { 0xCF, 0x83, 0xCF, 0x87 };
+static const symbol s_10_14[6] = { 0xCE, 0xB1, 0xCF, 0x83, 0xCF, 0x87 };
+static const symbol s_10_15[6] = { 0xCF, 0x84, 0xCE, 0xB1, 0xCF, 0x87 };
+static const symbol s_10_16[4] = { 0xCF, 0x85, 0xCF, 0x88 };
+static const symbol s_10_17[6] = { 0xCE, 0xB1, 0xCF, 0x84, 0xCE, 0xB1 };
+static const symbol s_10_18[4] = { 0xCF, 0x86, 0xCE, 0xB1 };
+static const symbol s_10_19[6] = { 0xCE, 0xB7, 0xCF, 0x86, 0xCE, 0xB1 };
+static const symbol s_10_20[6] = { 0xCE, 0xBB, 0xCF, 0x85, 0xCE, 0xB3 };
+static const symbol s_10_21[6] = { 0xCE, 0xBC, 0xCE, 0xB5, 0xCE, 0xB3 };
+static const symbol s_10_22[4] = { 0xCE, 0xB7, 0xCE, 0xB4 };
+static const symbol s_10_23[4] = { 0xCF, 0x83, 0xCE, 0xB5 };
+static const symbol s_10_24[6] = { 0xCE, 0xB1, 0xCF, 0x83, 0xCE, 0xB5 };
+static const symbol s_10_25[6] = { 0xCF, 0x80, 0xCE, 0xBB, 0xCE, 0xB5 };
+static const symbol s_10_26[6] = { 0xCE, 0xBA, 0xCE, 0xBB, 0xCE, 0xB5 };
+static const symbol s_10_27[12] = { 0xCE, 0xB5, 0xCF, 0x83, 0xCF, 0x89, 0xCE, 0xBA, 0xCE, 0xBB, 0xCE, 0xB5 };
+static const symbol s_10_28[8] = { 0xCE, 0xB4, 0xCE, 0xB1, 0xCE, 0xBD, 0xCE, 0xB5 };
+static const symbol s_10_29[6] = { 0xCE, 0xB5, 0xCF, 0x87, 0xCE, 0xB8 };
+static const symbol s_10_30[6] = { 0xCE, 0xBA, 0xCE, 0xB1, 0xCE, 0xB8 };
+static const symbol s_10_31[4] = { 0xCF, 0x83, 0xCE, 0xBA };
+static const symbol s_10_32[6] = { 0xCE, 0xBA, 0xCE, 0xB1, 0xCE, 0xBA };
+static const symbol s_10_33[6] = { 0xCE, 0xBC, 0xCE, 0xB1, 0xCE, 0xBA };
+static const symbol s_10_34[6] = { 0xCE, 0xBA, 0xCF, 0x85, 0xCE, 0xBB };
+static const symbol s_10_35[6] = { 0xCF, 0x86, 0xCE, 0xB9, 0xCE, 0xBB };
+static const symbol s_10_36[2] = { 0xCE, 0xBC };
+static const symbol s_10_37[6] = { 0xCE, 0xB3, 0xCE, 0xB5, 0xCE, 0xBC };
+static const symbol s_10_38[6] = { 0xCE, 0xB1, 0xCF, 0x87, 0xCE, 0xBD };
+static const symbol s_10_39[14] = { 0xCF, 0x83, 0xCF, 0x85, 0xCE, 0xBD, 0xCE, 0xB1, 0xCE, 0xB8, 0xCF, 0x81, 0xCE, 0xBF };
+
+static const struct among a_10[40] =
+{
+{ 2, s_10_0, -1, 2, 0},
+{ 6, s_10_1, 0, 2, 0},
+{ 4, s_10_2, 0, 2, 0},
+{ 6, s_10_3, 0, 2, 0},
+{ 6, s_10_4, -1, 2, 0},
+{ 4, s_10_5, -1, 2, 0},
+{ 6, s_10_6, -1, 2, 0},
+{ 4, s_10_7, -1, 2, 0},
+{ 6, s_10_8, -1, 2, 0},
+{ 4, s_10_9, -1, 2, 0},
+{ 6, s_10_10, 9, 2, 0},
+{ 4, s_10_11, -1, 2, 0},
+{ 6, s_10_12, 11, 2, 0},
+{ 4, s_10_13, -1, 2, 0},
+{ 6, s_10_14, 13, 2, 0},
+{ 6, s_10_15, -1, 2, 0},
+{ 4, s_10_16, -1, 2, 0},
+{ 6, s_10_17, -1, 2, 0},
+{ 4, s_10_18, -1, 2, 0},
+{ 6, s_10_19, 18, 2, 0},
+{ 6, s_10_20, -1, 2, 0},
+{ 6, s_10_21, -1, 2, 0},
+{ 4, s_10_22, -1, 2, 0},
+{ 4, s_10_23, -1, 1, 0},
+{ 6, s_10_24, 23, 1, 0},
+{ 6, s_10_25, -1, 1, 0},
+{ 6, s_10_26, -1, 1, 0},
+{ 12, s_10_27, 26, 1, 0},
+{ 8, s_10_28, -1, 1, 0},
+{ 6, s_10_29, -1, 2, 0},
+{ 6, s_10_30, -1, 2, 0},
+{ 4, s_10_31, -1, 2, 0},
+{ 6, s_10_32, -1, 2, 0},
+{ 6, s_10_33, -1, 2, 0},
+{ 6, s_10_34, -1, 2, 0},
+{ 6, s_10_35, -1, 2, 0},
+{ 2, s_10_36, -1, 2, 0},
+{ 6, s_10_37, 36, 2, 0},
+{ 6, s_10_38, -1, 2, 0},
+{ 14, s_10_39, -1, 1, 0}
+};
+
+static const symbol s_11_0[12] = { 0xCE, 0xB9, 0xCF, 0x83, 0xCF, 0x84, 0xCE, 0xBF, 0xCF, 0x85, 0xCF, 0x83 };
+static const symbol s_11_1[10] = { 0xCE, 0xB9, 0xCF, 0x83, 0xCF, 0x84, 0xCE, 0xB5, 0xCF, 0x83 };
+static const symbol s_11_2[10] = { 0xCE, 0xB9, 0xCF, 0x83, 0xCF, 0x84, 0xCE, 0xB7, 0xCF, 0x83 };
+static const symbol s_11_3[10] = { 0xCE, 0xB9, 0xCF, 0x83, 0xCF, 0x84, 0xCE, 0xBF, 0xCF, 0x83 };
+static const symbol s_11_4[10] = { 0xCE, 0xB9, 0xCF, 0x83, 0xCF, 0x84, 0xCE, 0xBF, 0xCF, 0x85 };
+static const symbol s_11_5[8] = { 0xCE, 0xB9, 0xCF, 0x83, 0xCF, 0x84, 0xCE, 0xB1 };
+static const symbol s_11_6[8] = { 0xCE, 0xB9, 0xCF, 0x83, 0xCF, 0x84, 0xCE, 0xB5 };
+static const symbol s_11_7[8] = { 0xCE, 0xB9, 0xCF, 0x83, 0xCF, 0x84, 0xCE, 0xB7 };
+static const symbol s_11_8[10] = { 0xCE, 0xB9, 0xCF, 0x83, 0xCF, 0x84, 0xCE, 0xBF, 0xCE, 0xB9 };
+static const symbol s_11_9[10] = { 0xCE, 0xB9, 0xCF, 0x83, 0xCF, 0x84, 0xCF, 0x89, 0xCE, 0xBD };
+static const symbol s_11_10[8] = { 0xCE, 0xB9, 0xCF, 0x83, 0xCF, 0x84, 0xCE, 0xBF };
+
+static const struct among a_11[11] =
+{
+{ 12, s_11_0, -1, 1, 0},
+{ 10, s_11_1, -1, 1, 0},
+{ 10, s_11_2, -1, 1, 0},
+{ 10, s_11_3, -1, 1, 0},
+{ 10, s_11_4, -1, 1, 0},
+{ 8, s_11_5, -1, 1, 0},
+{ 8, s_11_6, -1, 1, 0},
+{ 8, s_11_7, -1, 1, 0},
+{ 10, s_11_8, -1, 1, 0},
+{ 10, s_11_9, -1, 1, 0},
+{ 8, s_11_10, -1, 1, 0}
+};
+
+static const symbol s_12_0[4] = { 0xCF, 0x83, 0xCE, 0xB5 };
+static const symbol s_12_1[12] = { 0xCE, 0xBC, 0xCE, 0xB5, 0xCF, 0x84, 0xCE, 0xB1, 0xCF, 0x83, 0xCE, 0xB5 };
+static const symbol s_12_2[14] = { 0xCE, 0xBC, 0xCE, 0xB9, 0xCE, 0xBA, 0xCF, 0x81, 0xCE, 0xBF, 0xCF, 0x83, 0xCE, 0xB5 };
+static const symbol s_12_3[10] = { 0xCE, 0xB5, 0xCE, 0xB3, 0xCE, 0xBA, 0xCE, 0xBB, 0xCE, 0xB5 };
+static const symbol s_12_4[12] = { 0xCE, 0xB1, 0xCF, 0x80, 0xCE, 0xBF, 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[16] = { 0xCE, 0xB1, 0xCE, 0xBD, 0xCF, 0x84, 0xCE, 0xB9, 0xCE, 0xB4, 0xCE, 0xB1, 0xCE, 0xBD, 0xCE, 0xB5 };
+
+static const struct among a_12[7] =
+{
+{ 4, s_12_0, -1, 1, 0},
+{ 12, s_12_1, 0, 1, 0},
+{ 14, s_12_2, 0, 1, 0},
+{ 10, s_12_3, -1, 1, 0},
+{ 12, s_12_4, -1, 1, 0},
+{ 8, s_12_5, -1, 2, 0},
+{ 16, s_12_6, 5, 2, 0}
+};
+
+static const symbol s_13_0[10] = { 0xCF, 0x84, 0xCE, 0xBF, 0xCF, 0x80, 0xCE, 0xB9, 0xCE, 0xBA };
+static const symbol s_13_1[14] = { 0xCF, 0x83, 0xCE, 0xBA, 0xCE, 0xB5, 0xCF, 0x80, 0xCF, 0x84, 0xCE, 0xB9, 0xCE, 0xBA };
+static const symbol s_13_2[14] = { 0xCE, 0xB3, 0xCE, 0xBD, 0xCF, 0x89, 0xCF, 0x83, 0xCF, 0x84, 0xCE, 0xB9, 0xCE, 0xBA };
+static const symbol s_13_3[16] = { 0xCE, 0xB1, 0xCE, 0xB3, 0xCE, 0xBD, 0xCF, 0x89, 0xCF, 0x83, 0xCF, 0x84, 0xCE, 0xB9, 0xCE, 0xBA };
+static const symbol s_13_4[16] = { 0xCE, 0xB5, 0xCE, 0xBA, 0xCE, 0xBB, 0xCE, 0xB5, 0xCE, 0xBA, 0xCF, 0x84, 0xCE, 0xB9, 0xCE, 0xBA };
+static const symbol s_13_5[12] = { 0xCE, 0xB1, 0xCF, 0x84, 0xCE, 0xBF, 0xCE, 0xBC, 0xCE, 0xB9, 0xCE, 0xBA };
+static const symbol s_13_6[10] = { 0xCE, 0xB5, 0xCE, 0xB8, 0xCE, 0xBD, 0xCE, 0xB9, 0xCE, 0xBA };
+static const symbol s_13_7[14] = { 0xCE, 0xB8, 0xCE, 0xB5, 0xCE, 0xB1, 0xCF, 0x84, 0xCF, 0x81, 0xCE, 0xB9, 0xCE, 0xBD };
+static const symbol s_13_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_13_9[16] = { 0xCE, 0xB2, 0xCF, 0x85, 0xCE, 0xB6, 0xCE, 0xB1, 0xCE, 0xBD, 0xCF, 0x84, 0xCE, 0xB9, 0xCE, 0xBD };
+
+static const struct among a_13[10] =
+{
+{ 10, s_13_0, -1, 7, 0},
+{ 14, s_13_1, -1, 6, 0},
+{ 14, s_13_2, -1, 3, 0},
+{ 16, s_13_3, 2, 1, 0},
+{ 16, s_13_4, -1, 5, 0},
+{ 12, s_13_5, -1, 2, 0},
+{ 10, s_13_6, -1, 4, 0},
+{ 14, s_13_7, -1, 10, 0},
+{ 20, s_13_8, -1, 8, 0},
+{ 16, s_13_9, -1, 9, 0}
+};
+
+static const symbol s_14_0[12] = { 0xCE, 0xB9, 0xCF, 0x83, 0xCE, 0xBC, 0xCE, 0xBF, 0xCF, 0x85, 0xCF, 0x83 };
+static const symbol s_14_1[10] = { 0xCE, 0xB9, 0xCF, 0x83, 0xCE, 0xBC, 0xCE, 0xBF, 0xCF, 0x83 };
+static const symbol s_14_2[10] = { 0xCE, 0xB9, 0xCF, 0x83, 0xCE, 0xBC, 0xCE, 0xBF, 0xCF, 0x85 };
+static const symbol s_14_3[10] = { 0xCE, 0xB9, 0xCF, 0x83, 0xCE, 0xBC, 0xCE, 0xBF, 0xCE, 0xB9 };
+static const symbol s_14_4[10] = { 0xCE, 0xB9, 0xCF, 0x83, 0xCE, 0xBC, 0xCF, 0x89, 0xCE, 0xBD };
+static const symbol s_14_5[8] = { 0xCE, 0xB9, 0xCF, 0x83, 0xCE, 0xBC, 0xCE, 0xBF };
+
+static const struct among a_14[6] =
+{
+{ 12, s_14_0, -1, 1, 0},
+{ 10, s_14_1, -1, 1, 0},
+{ 10, s_14_2, -1, 1, 0},
+{ 10, s_14_3, -1, 1, 0},
+{ 10, s_14_4, -1, 1, 0},
+{ 8, s_14_5, -1, 1, 0}
+};
+
+static const symbol s_15_0[2] = { 0xCF, 0x83 };
+static const symbol s_15_1[2] = { 0xCF, 0x87 };
+
+static const struct among a_15[2] =
+{
+{ 2, s_15_0, -1, 1, 0},
+{ 2, s_15_1, -1, 1, 0}
+};
+
+static const symbol s_16_0[12] = { 0xCE, 0xB1, 0xCF, 0x81, 0xCE, 0xB1, 0xCE, 0xBA, 0xCE, 0xB9, 0xCE, 0xB1 };
+static const symbol s_16_1[14] = { 0xCE, 0xBF, 0xCF, 0x85, 0xCE, 0xB4, 0xCE, 0xB1, 0xCE, 0xBA, 0xCE, 0xB9, 0xCE, 0xB1 };
+static const symbol s_16_2[10] = { 0xCE, 0xB1, 0xCF, 0x81, 0xCE, 0xB1, 0xCE, 0xBA, 0xCE, 0xB9 };
+static const symbol s_16_3[12] = { 0xCE, 0xBF, 0xCF, 0x85, 0xCE, 0xB4, 0xCE, 0xB1, 0xCE, 0xBA, 0xCE, 0xB9 };
+
+static const struct among a_16[4] =
+{
+{ 12, s_16_0, -1, 1, 0},
+{ 14, s_16_1, -1, 1, 0},
+{ 10, s_16_2, -1, 1, 0},
+{ 12, s_16_3, -1, 1, 0}
+};
+
+static const symbol s_17_0[2] = { 0xCF, 0x80 };
+static const symbol s_17_1[12] = { 0xCE, 0xBA, 0xCE, 0xB1, 0xCF, 0x84, 0xCF, 0x81, 0xCE, 0xB1, 0xCF, 0x80 };
+static const symbol s_17_2[2] = { 0xCF, 0x81 };
+static const symbol s_17_3[4] = { 0xCE, 0xB2, 0xCF, 0x81 };
+static const symbol s_17_4[8] = { 0xCE, 0xBB, 0xCE, 0xB1, 0xCE, 0xB2, 0xCF, 0x81 };
+static const symbol s_17_5[8] = { 0xCE, 0xB1, 0xCE, 0xBC, 0xCE, 0xB2, 0xCF, 0x81 };
+static const symbol s_17_6[10] = { 0xCF, 0x80, 0xCE, 0xB1, 0xCF, 0x84, 0xCE, 0xB5, 0xCF, 0x81 };
+static const symbol s_17_7[6] = { 0xCE, 0xBC, 0xCE, 0xB5, 0xCF, 0x81 };
+static const symbol s_17_8[8] = { 0xCE, 0xB1, 0xCE, 0xBD, 0xCE, 0xB8, 0xCF, 0x81 };
+static const symbol s_17_9[6] = { 0xCE, 0xBA, 0xCE, 0xBF, 0xCF, 0x81 };
+static const symbol s_17_10[2] = { 0xCF, 0x83 };
+static const symbol s_17_11[12] = { 0xCE, 0xBD, 0xCE, 0xB1, 0xCE, 0xB3, 0xCE, 0xBA, 0xCE, 0xB1, 0xCF, 0x83 };
+static const symbol s_17_12[6] = { 0xCF, 0x84, 0xCE, 0xBF, 0xCF, 0x83 };
+static const symbol s_17_13[10] = { 0xCE, 0xBC, 0xCE, 0xBF, 0xCF, 0x85, 0xCF, 0x83, 0xCF, 0x84 };
+static const symbol s_17_14[4] = { 0xCF, 0x81, 0xCF, 0x85 };
+static const symbol s_17_15[2] = { 0xCF, 0x86 };
+static const symbol s_17_16[4] = { 0xCF, 0x83, 0xCF, 0x86 };
+static const symbol s_17_17[10] = { 0xCE, 0xB1, 0xCE, 0xBB, 0xCE, 0xB9, 0xCF, 0x83, 0xCF, 0x86 };
+static const symbol s_17_18[6] = { 0xCE, 0xBD, 0xCF, 0x85, 0xCF, 0x86 };
+static const symbol s_17_19[2] = { 0xCF, 0x87 };
+static const symbol s_17_20[2] = { 0xCE, 0xB2 };
+static const symbol s_17_21[8] = { 0xCE, 0xB2, 0xCE, 0xB1, 0xCE, 0xBC, 0xCE, 0xB2 };
+static const symbol s_17_22[8] = { 0xCF, 0x83, 0xCE, 0xBB, 0xCE, 0xBF, 0xCE, 0xB2 };
+static const symbol s_17_23[18] = { 0xCF, 0x84, 0xCF, 0x83, 0xCE, 0xB5, 0xCF, 0x87, 0xCE, 0xBF, 0xCF, 0x83, 0xCE, 0xBB, 0xCE, 0xBF, 0xCE, 0xB2 };
+static const symbol s_17_24[8] = { 0xCE, 0xBA, 0xCE, 0xB1, 0xCF, 0x81, 0xCE, 0xB4 };
+static const symbol s_17_25[2] = { 0xCE, 0xB6 };
+static const symbol s_17_26[4] = { 0xCF, 0x84, 0xCE, 0xB6 };
+static const symbol s_17_27[2] = { 0xCE, 0xBA };
+static const symbol s_17_28[4] = { 0xCF, 0x83, 0xCE, 0xBA };
+static const symbol s_17_29[10] = { 0xCE, 0xBA, 0xCE, 0xB1, 0xCF, 0x80, 0xCE, 0xB1, 0xCE, 0xBA };
+static const symbol s_17_30[6] = { 0xCF, 0x83, 0xCE, 0xBF, 0xCE, 0xBA };
+static const symbol s_17_31[4] = { 0xCF, 0x80, 0xCE, 0xBB };
+static const symbol s_17_32[6] = { 0xCF, 0x86, 0xCF, 0x85, 0xCE, 0xBB };
+static const symbol s_17_33[8] = { 0xCE, 0xBB, 0xCE, 0xBF, 0xCF, 0x85, 0xCE, 0xBB };
+static const symbol s_17_34[6] = { 0xCE, 0xB2, 0xCE, 0xB1, 0xCE, 0xBB };
+static const symbol s_17_35[6] = { 0xCE, 0xBC, 0xCE, 0xB1, 0xCE, 0xBB };
+static const symbol s_17_36[4] = { 0xCE, 0xB3, 0xCE, 0xBB };
+static const symbol s_17_37[12] = { 0xCF, 0x84, 0xCF, 0x81, 0xCE, 0xB9, 0xCF, 0x80, 0xCE, 0xBF, 0xCE, 0xBB };
+static const symbol s_17_38[8] = { 0xCF, 0x86, 0xCE, 0xB1, 0xCF, 0x81, 0xCE, 0xBC };
+static const symbol s_17_39[8] = { 0xCE, 0xBA, 0xCE, 0xB1, 0xCE, 0xB9, 0xCE, 0xBC };
+static const symbol s_17_40[8] = { 0xCE, 0xBA, 0xCE, 0xBB, 0xCE, 0xB9, 0xCE, 0xBC };
+static const symbol s_17_41[12] = { 0xCE, 0xBC, 0xCE, 0xB1, 0xCE, 0xBA, 0xCF, 0x81, 0xCF, 0x85, 0xCE, 0xBD };
+static const symbol s_17_42[8] = { 0xCF, 0x83, 0xCF, 0x80, 0xCE, 0xB1, 0xCE, 0xBD };
+static const symbol s_17_43[8] = { 0xCE, 0xB3, 0xCE, 0xB9, 0xCE, 0xB1, 0xCE, 0xBD };
+static const symbol s_17_44[14] = { 0xCE, 0xB7, 0xCE, 0xB3, 0xCE, 0xBF, 0xCF, 0x85, 0xCE, 0xBC, 0xCE, 0xB5, 0xCE, 0xBD };
+static const symbol s_17_45[6] = { 0xCE, 0xBA, 0xCE, 0xBF, 0xCE, 0xBD };
+
+static const struct among a_17[46] =
+{
+{ 2, s_17_0, -1, 2, 0},
+{ 12, s_17_1, 0, 1, 0},
+{ 2, s_17_2, -1, 1, 0},
+{ 4, s_17_3, 2, 1, 0},
+{ 8, s_17_4, 3, 1, 0},
+{ 8, s_17_5, 3, 1, 0},
+{ 10, s_17_6, 2, 2, 0},
+{ 6, s_17_7, 2, 1, 0},
+{ 8, s_17_8, 2, 1, 0},
+{ 6, s_17_9, 2, 1, 0},
+{ 2, s_17_10, -1, 1, 0},
+{ 12, s_17_11, 10, 1, 0},
+{ 6, s_17_12, 10, 2, 0},
+{ 10, s_17_13, -1, 1, 0},
+{ 4, s_17_14, -1, 1, 0},
+{ 2, s_17_15, -1, 1, 0},
+{ 4, s_17_16, 15, 1, 0},
+{ 10, s_17_17, 16, 1, 0},
+{ 6, s_17_18, 15, 2, 0},
+{ 2, s_17_19, -1, 1, 0},
+{ 2, s_17_20, -1, 2, 0},
+{ 8, s_17_21, 20, 1, 0},
+{ 8, s_17_22, 20, 1, 0},
+{ 18, s_17_23, 22, 1, 0},
+{ 8, s_17_24, -1, 2, 0},
+{ 2, s_17_25, -1, 2, 0},
+{ 4, s_17_26, 25, 1, 0},
+{ 2, s_17_27, -1, 1, 0},
+{ 4, s_17_28, 27, 1, 0},
+{ 10, s_17_29, 27, 1, 0},
+{ 6, s_17_30, 27, 1, 0},
+{ 4, s_17_31, -1, 1, 0},
+{ 6, s_17_32, -1, 1, 0},
+{ 8, s_17_33, -1, 1, 0},
+{ 6, s_17_34, -1, 2, 0},
+{ 6, s_17_35, -1, 1, 0},
+{ 4, s_17_36, -1, 2, 0},
+{ 12, s_17_37, -1, 2, 0},
+{ 8, s_17_38, -1, 1, 0},
+{ 8, s_17_39, -1, 1, 0},
+{ 8, s_17_40, -1, 1, 0},
+{ 12, s_17_41, -1, 2, 0},
+{ 8, s_17_42, -1, 1, 0},
+{ 8, s_17_43, -1, 2, 0},
+{ 14, s_17_44, -1, 2, 0},
+{ 6, s_17_45, -1, 1, 0}
+};
+
+static const symbol s_18_0[10] = { 0xCE, 0xB9, 0xCF, 0x84, 0xCF, 0x83, 0xCE, 0xB1, 0xCF, 0x83 };
+static const symbol s_18_1[10] = { 0xCE, 0xB9, 0xCF, 0x84, 0xCF, 0x83, 0xCE, 0xB5, 0xCF, 0x83 };
+static const symbol s_18_2[8] = { 0xCE, 0xB9, 0xCF, 0x84, 0xCF, 0x83, 0xCE, 0xB1 };
+static const symbol s_18_3[8] = { 0xCE, 0xB1, 0xCE, 0xBA, 0xCE, 0xB9, 0xCE, 0xB1 };
+static const symbol s_18_4[12] = { 0xCE, 0xB1, 0xCF, 0x81, 0xCE, 0xB1, 0xCE, 0xBA, 0xCE, 0xB9, 0xCE, 0xB1 };
+static const symbol s_18_5[6] = { 0xCE, 0xB1, 0xCE, 0xBA, 0xCE, 0xB9 };
+static const symbol s_18_6[10] = { 0xCE, 0xB1, 0xCF, 0x81, 0xCE, 0xB1, 0xCE, 0xBA, 0xCE, 0xB9 };
+static const symbol s_18_7[10] = { 0xCE, 0xB9, 0xCF, 0x84, 0xCF, 0x83, 0xCF, 0x89, 0xCE, 0xBD };
+
+static const struct among a_18[8] =
+{
+{ 10, s_18_0, -1, 1, 0},
+{ 10, s_18_1, -1, 1, 0},
+{ 8, s_18_2, -1, 1, 0},
+{ 8, s_18_3, -1, 1, 0},
+{ 12, s_18_4, 3, 1, 0},
+{ 6, s_18_5, -1, 1, 0},
+{ 10, s_18_6, 5, 1, 0},
+{ 10, s_18_7, -1, 1, 0}
+};
+
+static const symbol s_19_0[4] = { 0xCE, 0xB9, 0xCF, 0x81 };
+static const symbol s_19_1[6] = { 0xCF, 0x88, 0xCE, 0xB1, 0xCE, 0xBB };
+static const symbol s_19_2[8] = { 0xCE, 0xB1, 0xCE, 0xB9, 0xCF, 0x86, 0xCE, 0xBD };
+static const symbol s_19_3[6] = { 0xCE, 0xBF, 0xCE, 0xBB, 0xCE, 0xBF };
+
+static const struct among a_19[4] =
+{
+{ 4, s_19_0, -1, 1, 0},
+{ 6, s_19_1, -1, 1, 0},
+{ 8, s_19_2, -1, 1, 0},
+{ 6, s_19_3, -1, 1, 0}
+};
+
+static const symbol s_20_0[2] = { 0xCE, 0xB5 };
+static const symbol s_20_1[10] = { 0xCF, 0x80, 0xCE, 0xB1, 0xCE, 0xB9, 0xCF, 0x87, 0xCE, 0xBD };
+
+static const struct among a_20[2] =
+{
+{ 2, s_20_0, -1, 1, 0},
+{ 10, s_20_1, -1, 1, 0}
+};
+
+static const symbol s_21_0[8] = { 0xCE, 0xB9, 0xCE, 0xB4, 0xCE, 0xB9, 0xCE, 0xB1 };
+static const symbol s_21_1[10] = { 0xCE, 0xB9, 0xCE, 0xB4, 0xCE, 0xB9, 0xCF, 0x89, 0xCE, 0xBD };
+static const symbol s_21_2[8] = { 0xCE, 0xB9, 0xCE, 0xB4, 0xCE, 0xB9, 0xCE, 0xBF };
+
+static const struct among a_21[3] =
+{
+{ 8, s_21_0, -1, 1, 0},
+{ 10, s_21_1, -1, 1, 0},
+{ 8, s_21_2, -1, 1, 0}
+};
+
+static const symbol s_22_0[2] = { 0xCF, 0x81 };
+static const symbol s_22_1[4] = { 0xCE, 0xB9, 0xCE, 0xB2 };
+static const symbol s_22_2[2] = { 0xCE, 0xB4 };
+static const symbol s_22_3[6] = { 0xCE, 0xBB, 0xCF, 0x85, 0xCE, 0xBA };
+static const symbol s_22_4[10] = { 0xCF, 0x86, 0xCF, 0x81, 0xCE, 0xB1, 0xCE, 0xB3, 0xCE, 0xBA };
+static const symbol s_22_5[8] = { 0xCE, 0xBF, 0xCE, 0xB2, 0xCE, 0xB5, 0xCE, 0xBB };
+static const symbol s_22_6[6] = { 0xCE, 0xBC, 0xCE, 0xB7, 0xCE, 0xBD };
+
+static const struct among a_22[7] =
+{
+{ 2, s_22_0, -1, 1, 0},
+{ 4, s_22_1, -1, 1, 0},
+{ 2, s_22_2, -1, 1, 0},
+{ 6, s_22_3, -1, 1, 0},
+{ 10, s_22_4, -1, 1, 0},
+{ 8, s_22_5, -1, 1, 0},
+{ 6, s_22_6, -1, 1, 0}
+};
+
+static const symbol s_23_0[10] = { 0xCE, 0xB9, 0xCF, 0x83, 0xCE, 0xBA, 0xCE, 0xBF, 0xCF, 0x83 };
+static const symbol s_23_1[10] = { 0xCE, 0xB9, 0xCF, 0x83, 0xCE, 0xBA, 0xCE, 0xBF, 0xCF, 0x85 };
+static const symbol s_23_2[8] = { 0xCE, 0xB9, 0xCF, 0x83, 0xCE, 0xBA, 0xCE, 0xB5 };
+static const symbol s_23_3[8] = { 0xCE, 0xB9, 0xCF, 0x83, 0xCE, 0xBA, 0xCE, 0xBF };
+
+static const struct among a_23[4] =
+{
+{ 10, s_23_0, -1, 1, 0},
+{ 10, s_23_1, -1, 1, 0},
+{ 8, s_23_2, -1, 1, 0},
+{ 8, s_23_3, -1, 1, 0}
+};
+
+static const symbol s_24_0[8] = { 0xCE, 0xB1, 0xCE, 0xB4, 0xCE, 0xB5, 0xCF, 0x83 };
+static const symbol s_24_1[8] = { 0xCE, 0xB1, 0xCE, 0xB4, 0xCF, 0x89, 0xCE, 0xBD };
+
+static const struct among a_24[2] =
+{
+{ 8, s_24_0, -1, 1, 0},
+{ 8, s_24_1, -1, 1, 0}
+};
+
+static const symbol s_25_0[10] = { 0xCE, 0xBC, 0xCF, 0x80, 0xCE, 0xB1, 0xCE, 0xBC, 0xCF, 0x80 };
+static const symbol s_25_1[6] = { 0xCE, 0xBA, 0xCF, 0x85, 0xCF, 0x81 };
+static const symbol s_25_2[10] = { 0xCF, 0x80, 0xCE, 0xB1, 0xCF, 0x84, 0xCE, 0xB5, 0xCF, 0x81 };
+static const symbol s_25_3[10] = { 0xCF, 0x80, 0xCE, 0xB5, 0xCE, 0xB8, 0xCE, 0xB5, 0xCF, 0x81 };
+static const symbol s_25_4[10] = { 0xCE, 0xBD, 0xCF, 0x84, 0xCE, 0xB1, 0xCE, 0xBD, 0xCF, 0x84 };
+static const symbol s_25_5[10] = { 0xCE, 0xB3, 0xCE, 0xB9, 0xCE, 0xB1, 0xCE, 0xB3, 0xCE, 0xB9 };
+static const symbol s_25_6[6] = { 0xCE, 0xB8, 0xCE, 0xB5, 0xCE, 0xB9 };
+static const symbol s_25_7[4] = { 0xCE, 0xBF, 0xCE, 0xBA };
+static const symbol s_25_8[6] = { 0xCE, 0xBC, 0xCE, 0xB1, 0xCE, 0xBC };
+static const symbol s_25_9[6] = { 0xCE, 0xBC, 0xCE, 0xB1, 0xCE, 0xBD };
+
+static const struct among a_25[10] =
+{
+{ 10, s_25_0, -1, -1, 0},
+{ 6, s_25_1, -1, -1, 0},
+{ 10, s_25_2, -1, -1, 0},
+{ 10, s_25_3, -1, -1, 0},
+{ 10, s_25_4, -1, -1, 0},
+{ 10, s_25_5, -1, -1, 0},
+{ 6, s_25_6, -1, -1, 0},
+{ 4, s_25_7, -1, -1, 0},
+{ 6, s_25_8, -1, -1, 0},
+{ 6, s_25_9, -1, -1, 0}
+};
+
+static const symbol s_26_0[8] = { 0xCE, 0xB5, 0xCE, 0xB4, 0xCE, 0xB5, 0xCF, 0x83 };
+static const symbol s_26_1[8] = { 0xCE, 0xB5, 0xCE, 0xB4, 0xCF, 0x89, 0xCE, 0xBD };
+
+static const struct among a_26[2] =
+{
+{ 8, s_26_0, -1, 1, 0},
+{ 8, s_26_1, -1, 1, 0}
+};
+
+static const symbol s_27_0[10] = { 0xCE, 0xBA, 0xCF, 0x81, 0xCE, 0xB1, 0xCF, 0x83, 0xCF, 0x80 };
+static const symbol s_27_1[4] = { 0xCF, 0x85, 0xCF, 0x80 };
+static const symbol s_27_2[6] = { 0xCE, 0xB4, 0xCE, 0xB1, 0xCF, 0x80 };
+static const symbol s_27_3[6] = { 0xCE, 0xB3, 0xCE, 0xB7, 0xCF, 0x80 };
+static const symbol s_27_4[4] = { 0xCE, 0xB9, 0xCF, 0x80 };
+static const symbol s_27_5[6] = { 0xCE, 0xB5, 0xCE, 0xBC, 0xCF, 0x80 };
+static const symbol s_27_6[4] = { 0xCE, 0xBF, 0xCF, 0x80 };
+static const symbol s_27_7[6] = { 0xCE, 0xBC, 0xCE, 0xB9, 0xCE, 0xBB };
+
+static const struct among a_27[8] =
+{
+{ 10, s_27_0, -1, 1, 0},
+{ 4, s_27_1, -1, 1, 0},
+{ 6, s_27_2, -1, 1, 0},
+{ 6, s_27_3, -1, 1, 0},
+{ 4, s_27_4, -1, 1, 0},
+{ 6, s_27_5, -1, 1, 0},
+{ 4, s_27_6, -1, 1, 0},
+{ 6, s_27_7, -1, 1, 0}
+};
+
+static const symbol s_28_0[10] = { 0xCE, 0xBF, 0xCF, 0x85, 0xCE, 0xB4, 0xCE, 0xB5, 0xCF, 0x83 };
+static const symbol s_28_1[10] = { 0xCE, 0xBF, 0xCF, 0x85, 0xCE, 0xB4, 0xCF, 0x89, 0xCE, 0xBD };
+
+static const struct among a_28[2] =
+{
+{ 10, s_28_0, -1, 1, 0},
+{ 10, s_28_1, -1, 1, 0}
+};
+
+static const symbol s_29_0[4] = { 0xCF, 0x83, 0xCF, 0x80 };
+static const symbol s_29_1[4] = { 0xCF, 0x86, 0xCF, 0x81 };
+static const symbol s_29_2[2] = { 0xCF, 0x83 };
+static const symbol s_29_3[6] = { 0xCE, 0xBB, 0xCE, 0xB9, 0xCF, 0x87 };
+static const symbol s_29_4[8] = { 0xCF, 0x84, 0xCF, 0x81, 0xCE, 0xB1, 0xCE, 0xB3 };
+static const symbol s_29_5[4] = { 0xCF, 0x86, 0xCE, 0xB5 };
+static const symbol s_29_6[6] = { 0xCE, 0xB1, 0xCF, 0x81, 0xCE, 0xBA };
+static const symbol s_29_7[4] = { 0xCF, 0x83, 0xCE, 0xBA };
+static const symbol s_29_8[12] = { 0xCE, 0xBA, 0xCE, 0xB1, 0xCE, 0xBB, 0xCE, 0xB9, 0xCE, 0xB1, 0xCE, 0xBA };
+static const symbol s_29_9[8] = { 0xCE, 0xBB, 0xCE, 0xBF, 0xCF, 0x85, 0xCE, 0xBB };
+static const symbol s_29_10[4] = { 0xCF, 0x86, 0xCE, 0xBB };
+static const symbol s_29_11[10] = { 0xCF, 0x80, 0xCE, 0xB5, 0xCF, 0x84, 0xCE, 0xB1, 0xCE, 0xBB };
+static const symbol s_29_12[6] = { 0xCE, 0xB2, 0xCE, 0xB5, 0xCE, 0xBB };
+static const symbol s_29_13[4] = { 0xCF, 0x87, 0xCE, 0xBD };
+static const symbol s_29_14[8] = { 0xCF, 0x80, 0xCE, 0xBB, 0xCE, 0xB5, 0xCE, 0xBE };
+
+static const struct among a_29[15] =
+{
+{ 4, s_29_0, -1, 1, 0},
+{ 4, s_29_1, -1, 1, 0},
+{ 2, s_29_2, -1, 1, 0},
+{ 6, s_29_3, -1, 1, 0},
+{ 8, s_29_4, -1, 1, 0},
+{ 4, s_29_5, -1, 1, 0},
+{ 6, s_29_6, -1, 1, 0},
+{ 4, s_29_7, -1, 1, 0},
+{ 12, s_29_8, -1, 1, 0},
+{ 8, s_29_9, -1, 1, 0},
+{ 4, s_29_10, -1, 1, 0},
+{ 10, s_29_11, -1, 1, 0},
+{ 6, s_29_12, -1, 1, 0},
+{ 4, s_29_13, -1, 1, 0},
+{ 8, s_29_14, -1, 1, 0}
+};
+
+static const symbol s_30_0[6] = { 0xCE, 0xB5, 0xCF, 0x89, 0xCF, 0x83 };
+static const symbol s_30_1[6] = { 0xCE, 0xB5, 0xCF, 0x89, 0xCE, 0xBD };
+
+static const struct among a_30[2] =
+{
+{ 6, s_30_0, -1, 1, 0},
+{ 6, s_30_1, -1, 1, 0}
+};
+
+static const symbol s_31_0[2] = { 0xCF, 0x80 };
+static const symbol s_31_1[6] = { 0xCF, 0x80, 0xCE, 0xB1, 0xCF, 0x81 };
+static const symbol s_31_2[2] = { 0xCE, 0xB4 };
+static const symbol s_31_3[4] = { 0xCE, 0xB9, 0xCE, 0xB4 };
+static const symbol s_31_4[2] = { 0xCE, 0xB8 };
+static const symbol s_31_5[6] = { 0xCE, 0xB3, 0xCE, 0xB1, 0xCE, 0xBB };
+static const symbol s_31_6[4] = { 0xCE, 0xB5, 0xCE, 0xBB };
+static const symbol s_31_7[2] = { 0xCE, 0xBD };
+
+static const struct among a_31[8] =
+{
+{ 2, s_31_0, -1, 1, 0},
+{ 6, s_31_1, -1, 1, 0},
+{ 2, s_31_2, -1, 1, 0},
+{ 4, s_31_3, 2, 1, 0},
+{ 2, s_31_4, -1, 1, 0},
+{ 6, s_31_5, -1, 1, 0},
+{ 4, s_31_6, -1, 1, 0},
+{ 2, s_31_7, -1, 1, 0}
+};
+
+static const symbol s_32_0[6] = { 0xCE, 0xB9, 0xCE, 0xBF, 0xCF, 0x85 };
+static const symbol s_32_1[4] = { 0xCE, 0xB9, 0xCE, 0xB1 };
+static const symbol s_32_2[6] = { 0xCE, 0xB9, 0xCF, 0x89, 0xCE, 0xBD };
+
+static const struct among a_32[3] =
+{
+{ 6, s_32_0, -1, 1, 0},
+{ 4, s_32_1, -1, 1, 0},
+{ 6, s_32_2, -1, 1, 0}
+};
+
+static const symbol s_33_0[8] = { 0xCE, 0xB9, 0xCE, 0xBA, 0xCE, 0xBF, 0xCF, 0x85 };
+static const symbol s_33_1[6] = { 0xCE, 0xB9, 0xCE, 0xBA, 0xCE, 0xB1 };
+static const symbol s_33_2[8] = { 0xCE, 0xB9, 0xCE, 0xBA, 0xCF, 0x89, 0xCE, 0xBD };
+static const symbol s_33_3[6] = { 0xCE, 0xB9, 0xCE, 0xBA, 0xCE, 0xBF };
+
+static const struct among a_33[4] =
+{
+{ 8, s_33_0, -1, 1, 0},
+{ 6, s_33_1, -1, 1, 0},
+{ 8, s_33_2, -1, 1, 0},
+{ 6, s_33_3, -1, 1, 0}
+};
+
+static const symbol s_34_0[8] = { 0xCE, 0xBA, 0xCE, 0xB1, 0xCE, 0xBB, 0xCF, 0x80 };
+static const symbol s_34_1[6] = { 0xCE, 0xB3, 0xCE, 0xB5, 0xCF, 0x81 };
+static const symbol s_34_2[12] = { 0xCF, 0x80, 0xCE, 0xBB, 0xCE, 0xB9, 0xCE, 0xB1, 0xCF, 0x84, 0xCF, 0x83 };
+static const symbol s_34_3[8] = { 0xCF, 0x80, 0xCE, 0xB5, 0xCF, 0x84, 0xCF, 0x83 };
+static const symbol s_34_4[8] = { 0xCF, 0x80, 0xCE, 0xB9, 0xCF, 0x84, 0xCF, 0x83 };
+static const symbol s_34_5[6] = { 0xCF, 0x86, 0xCF, 0x85, 0xCF, 0x83 };
+static const symbol s_34_6[6] = { 0xCF, 0x87, 0xCE, 0xB1, 0xCF, 0x83 };
+static const symbol s_34_7[8] = { 0xCE, 0xBC, 0xCF, 0x80, 0xCE, 0xBF, 0xCF, 0x83 };
+static const symbol s_34_8[8] = { 0xCF, 0x83, 0xCE, 0xB5, 0xCF, 0x81, 0xCF, 0x84 };
+static const symbol s_34_9[14] = { 0xCE, 0xBC, 0xCF, 0x80, 0xCE, 0xB1, 0xCE, 0xB3, 0xCE, 0xB9, 0xCE, 0xB1, 0xCF, 0x84 };
+static const symbol s_34_10[6] = { 0xCE, 0xBD, 0xCE, 0xB9, 0xCF, 0x84 };
+static const symbol s_34_11[12] = { 0xCF, 0x80, 0xCE, 0xB9, 0xCE, 0xBA, 0xCE, 0xB1, 0xCE, 0xBD, 0xCF, 0x84 };
+static const symbol s_34_12[8] = { 0xCE, 0xB5, 0xCE, 0xBE, 0xCF, 0x89, 0xCE, 0xB4 };
+static const symbol s_34_13[4] = { 0xCE, 0xB1, 0xCE, 0xB4 };
+static const symbol s_34_14[10] = { 0xCE, 0xBA, 0xCE, 0xB1, 0xCF, 0x84, 0xCE, 0xB1, 0xCE, 0xB4 };
+static const symbol s_34_15[10] = { 0xCF, 0x83, 0xCF, 0x85, 0xCE, 0xBD, 0xCE, 0xB1, 0xCE, 0xB4 };
+static const symbol s_34_16[10] = { 0xCE, 0xB1, 0xCE, 0xBD, 0xCF, 0x84, 0xCE, 0xB9, 0xCE, 0xB4 };
+static const symbol s_34_17[6] = { 0xCE, 0xB5, 0xCE, 0xBD, 0xCE, 0xB4 };
+static const symbol s_34_18[8] = { 0xCF, 0x85, 0xCF, 0x80, 0xCE, 0xBF, 0xCE, 0xB4 };
+static const symbol s_34_19[12] = { 0xCF, 0x80, 0xCF, 0x81, 0xCF, 0x89, 0xCF, 0x84, 0xCE, 0xBF, 0xCE, 0xB4 };
+static const symbol s_34_20[10] = { 0xCF, 0x86, 0xCF, 0x85, 0xCE, 0xBB, 0xCE, 0xBF, 0xCE, 0xB4 };
+static const symbol s_34_21[4] = { 0xCE, 0xB7, 0xCE, 0xB8 };
+static const symbol s_34_22[8] = { 0xCE, 0xB1, 0xCE, 0xBD, 0xCE, 0xB7, 0xCE, 0xB8 };
+static const symbol s_34_23[6] = { 0xCE, 0xBE, 0xCE, 0xB9, 0xCE, 0xBA };
+static const symbol s_34_24[8] = { 0xCE, 0xBC, 0xCE, 0xBF, 0xCF, 0x85, 0xCE, 0xBB };
+static const symbol s_34_25[4] = { 0xCE, 0xB1, 0xCE, 0xBB };
+static const symbol s_34_26[14] = { 0xCE, 0xB1, 0xCE, 0xBC, 0xCE, 0xBC, 0xCE, 0xBF, 0xCF, 0x87, 0xCE, 0xB1, 0xCE, 0xBB };
+static const symbol s_34_27[14] = { 0xCF, 0x83, 0xCF, 0x85, 0xCE, 0xBD, 0xCE, 0xBF, 0xCE, 0xBC, 0xCE, 0xB7, 0xCE, 0xBB };
+static const symbol s_34_28[8] = { 0xCE, 0xBC, 0xCF, 0x80, 0xCE, 0xBF, 0xCE, 0xBB };
+static const symbol s_34_29[8] = { 0xCE, 0xB2, 0xCF, 0x81, 0xCF, 0x89, 0xCE, 0xBC };
+static const symbol s_34_30[8] = { 0xCF, 0x84, 0xCF, 0x83, 0xCE, 0xB1, 0xCE, 0xBC };
+static const symbol s_34_31[8] = { 0xCE, 0xBC, 0xCF, 0x80, 0xCE, 0xB1, 0xCE, 0xBD };
+static const symbol s_34_32[8] = { 0xCE, 0xB1, 0xCE, 0xBC, 0xCE, 0xB1, 0xCE, 0xBD };
+static const symbol s_34_33[12] = { 0xCE, 0xBA, 0xCE, 0xB1, 0xCE, 0xBB, 0xCE, 0xBB, 0xCE, 0xB9, 0xCE, 0xBD };
+static const symbol s_34_34[14] = { 0xCF, 0x80, 0xCE, 0xBF, 0xCF, 0x83, 0xCF, 0x84, 0xCE, 0xB5, 0xCE, 0xBB, 0xCE, 0xBD };
+static const symbol s_34_35[10] = { 0xCF, 0x86, 0xCE, 0xB9, 0xCE, 0xBB, 0xCE, 0xBF, 0xCE, 0xBD };
+
+static const struct among a_34[36] =
+{
+{ 8, s_34_0, -1, 1, 0},
+{ 6, s_34_1, -1, 1, 0},
+{ 12, s_34_2, -1, 1, 0},
+{ 8, s_34_3, -1, 1, 0},
+{ 8, s_34_4, -1, 1, 0},
+{ 6, s_34_5, -1, 1, 0},
+{ 6, s_34_6, -1, 1, 0},
+{ 8, s_34_7, -1, 1, 0},
+{ 8, s_34_8, -1, 1, 0},
+{ 14, s_34_9, -1, 1, 0},
+{ 6, s_34_10, -1, 1, 0},
+{ 12, s_34_11, -1, 1, 0},
+{ 8, s_34_12, -1, 1, 0},
+{ 4, s_34_13, -1, 1, 0},
+{ 10, s_34_14, 13, 1, 0},
+{ 10, s_34_15, 13, 1, 0},
+{ 10, s_34_16, -1, 1, 0},
+{ 6, s_34_17, -1, 1, 0},
+{ 8, s_34_18, -1, 1, 0},
+{ 12, s_34_19, -1, 1, 0},
+{ 10, s_34_20, -1, 1, 0},
+{ 4, s_34_21, -1, 1, 0},
+{ 8, s_34_22, 21, 1, 0},
+{ 6, s_34_23, -1, 1, 0},
+{ 8, s_34_24, -1, 1, 0},
+{ 4, s_34_25, -1, 1, 0},
+{ 14, s_34_26, 25, 1, 0},
+{ 14, s_34_27, -1, 1, 0},
+{ 8, s_34_28, -1, 1, 0},
+{ 8, s_34_29, -1, 1, 0},
+{ 8, s_34_30, -1, 1, 0},
+{ 8, s_34_31, -1, 1, 0},
+{ 8, s_34_32, -1, 1, 0},
+{ 12, s_34_33, -1, 1, 0},
+{ 14, s_34_34, -1, 1, 0},
+{ 10, s_34_35, -1, 1, 0}
+};
+
+static const symbol s_35_0[12] = { 0xCE, 0xBF, 0xCF, 0x85, 0xCF, 0x83, 0xCE, 0xB1, 0xCE, 0xBC, 0xCE, 0xB5 };
+static const symbol s_35_1[10] = { 0xCE, 0xB7, 0xCF, 0x83, 0xCE, 0xB1, 0xCE, 0xBC, 0xCE, 0xB5 };
+static const symbol s_35_2[10] = { 0xCE, 0xB1, 0xCE, 0xB3, 0xCE, 0xB1, 0xCE, 0xBC, 0xCE, 0xB5 };
+static const symbol s_35_3[10] = { 0xCE, 0xB7, 0xCE, 0xBA, 0xCE, 0xB1, 0xCE, 0xBC, 0xCE, 0xB5 };
+static const symbol s_35_4[14] = { 0xCE, 0xB7, 0xCE, 0xB8, 0xCE, 0xB7, 0xCE, 0xBA, 0xCE, 0xB1, 0xCE, 0xBC, 0xCE, 0xB5 };
+
+static const struct among a_35[5] =
+{
+{ 12, s_35_0, -1, 1, 0},
+{ 10, s_35_1, -1, 1, 0},
+{ 10, s_35_2, -1, 1, 0},
+{ 10, s_35_3, -1, 1, 0},
+{ 14, s_35_4, 3, 1, 0}
+};
+
+static const symbol s_36_0[8] = { 0xCE, 0xB1, 0xCE, 0xBD, 0xCE, 0xB1, 0xCF, 0x80 };
+static const symbol s_36_1[8] = { 0xCF, 0x80, 0xCE, 0xB9, 0xCE, 0xBA, 0xCF, 0x81 };
+static const symbol s_36_2[10] = { 0xCE, 0xB1, 0xCF, 0x80, 0xCE, 0xBF, 0xCF, 0x83, 0xCF, 0x84 };
+static const symbol s_36_3[6] = { 0xCF, 0x80, 0xCE, 0xBF, 0xCF, 0x84 };
+static const symbol s_36_4[2] = { 0xCF, 0x87 };
+static const symbol s_36_5[6] = { 0xCF, 0x83, 0xCE, 0xB9, 0xCF, 0x87 };
+static const symbol s_36_6[8] = { 0xCE, 0xB2, 0xCE, 0xBF, 0xCF, 0x85, 0xCE, 0xB2 };
+static const symbol s_36_7[6] = { 0xCF, 0x80, 0xCE, 0xB5, 0xCE, 0xB8 };
+static const symbol s_36_8[6] = { 0xCE, 0xBE, 0xCE, 0xB5, 0xCE, 0xB8 };
+static const symbol s_36_9[8] = { 0xCE, 0xB1, 0xCF, 0x80, 0xCE, 0xBF, 0xCE, 0xB8 };
+static const symbol s_36_10[8] = { 0xCE, 0xB1, 0xCF, 0x80, 0xCE, 0xBF, 0xCE, 0xBA };
+static const symbol s_36_11[6] = { 0xCE, 0xBF, 0xCF, 0x85, 0xCE, 0xBB };
+
+static const struct among a_36[12] =
+{
+{ 8, s_36_0, -1, 1, 0},
+{ 8, s_36_1, -1, 1, 0},
+{ 10, s_36_2, -1, 1, 0},
+{ 6, s_36_3, -1, 1, 0},
+{ 2, s_36_4, -1, 1, 0},
+{ 6, s_36_5, 4, 1, 0},
+{ 8, s_36_6, -1, 1, 0},
+{ 6, s_36_7, -1, 1, 0},
+{ 6, s_36_8, -1, 1, 0},
+{ 8, s_36_9, -1, 1, 0},
+{ 8, s_36_10, -1, 1, 0},
+{ 6, s_36_11, -1, 1, 0}
+};
+
+static const symbol s_37_0[4] = { 0xCF, 0x84, 0xCF, 0x81 };
+static const symbol s_37_1[4] = { 0xCF, 0x84, 0xCF, 0x83 };
+
+static const struct among a_37[2] =
+{
+{ 4, s_37_0, -1, 1, 0},
+{ 4, s_37_1, -1, 1, 0}
+};
+
+static const symbol s_38_0[12] = { 0xCE, 0xBF, 0xCF, 0x85, 0xCF, 0x83, 0xCE, 0xB1, 0xCE, 0xBD, 0xCE, 0xB5 };
+static const symbol s_38_1[10] = { 0xCE, 0xB7, 0xCF, 0x83, 0xCE, 0xB1, 0xCE, 0xBD, 0xCE, 0xB5 };
+static const symbol s_38_2[14] = { 0xCE, 0xBF, 0xCF, 0x85, 0xCE, 0xBD, 0xCF, 0x84, 0xCE, 0xB1, 0xCE, 0xBD, 0xCE, 0xB5 };
+static const symbol s_38_3[16] = { 0xCE, 0xB9, 0xCE, 0xBF, 0xCF, 0x85, 0xCE, 0xBD, 0xCF, 0x84, 0xCE, 0xB1, 0xCE, 0xBD, 0xCE, 0xB5 };
+static const symbol s_38_4[12] = { 0xCE, 0xBF, 0xCE, 0xBD, 0xCF, 0x84, 0xCE, 0xB1, 0xCE, 0xBD, 0xCE, 0xB5 };
+static const symbol s_38_5[14] = { 0xCE, 0xB9, 0xCE, 0xBF, 0xCE, 0xBD, 0xCF, 0x84, 0xCE, 0xB1, 0xCE, 0xBD, 0xCE, 0xB5 };
+static const symbol s_38_6[10] = { 0xCE, 0xBF, 0xCF, 0x84, 0xCE, 0xB1, 0xCE, 0xBD, 0xCE, 0xB5 };
+static const symbol s_38_7[12] = { 0xCE, 0xB9, 0xCE, 0xBF, 0xCF, 0x84, 0xCE, 0xB1, 0xCE, 0xBD, 0xCE, 0xB5 };
+static const symbol s_38_8[10] = { 0xCE, 0xB1, 0xCE, 0xB3, 0xCE, 0xB1, 0xCE, 0xBD, 0xCE, 0xB5 };
+static const symbol s_38_9[10] = { 0xCE, 0xB7, 0xCE, 0xBA, 0xCE, 0xB1, 0xCE, 0xBD, 0xCE, 0xB5 };
+static const symbol s_38_10[14] = { 0xCE, 0xB7, 0xCE, 0xB8, 0xCE, 0xB7, 0xCE, 0xBA, 0xCE, 0xB1, 0xCE, 0xBD, 0xCE, 0xB5 };
+
+static const struct among a_38[11] =
+{
+{ 12, s_38_0, -1, 1, 0},
+{ 10, s_38_1, -1, 1, 0},
+{ 14, s_38_2, -1, 1, 0},
+{ 16, s_38_3, 2, 1, 0},
+{ 12, s_38_4, -1, 1, 0},
+{ 14, s_38_5, 4, 1, 0},
+{ 10, s_38_6, -1, 1, 0},
+{ 12, s_38_7, 6, 1, 0},
+{ 10, s_38_8, -1, 1, 0},
+{ 10, s_38_9, -1, 1, 0},
+{ 14, s_38_10, 9, 1, 0}
+};
+
+static const symbol s_39_0[2] = { 0xCF, 0x80 };
+static const symbol s_39_1[4] = { 0xCF, 0x83, 0xCF, 0x80 };
+static const symbol s_39_2[14] = { 0xCF, 0x80, 0xCE, 0xBF, 0xCE, 0xBB, 0xCF, 0x85, 0xCE, 0xB4, 0xCE, 0xB1, 0xCF, 0x80 };
+static const symbol s_39_3[8] = { 0xCE, 0xB1, 0xCE, 0xB4, 0xCE, 0xB1, 0xCF, 0x80 };
+static const symbol s_39_4[18] = { 0xCF, 0x87, 0xCE, 0xB1, 0xCE, 0xBC, 0xCE, 0xB7, 0xCE, 0xBB, 0xCE, 0xBF, 0xCE, 0xB4, 0xCE, 0xB1, 0xCF, 0x80 };
+static const symbol s_39_5[8] = { 0xCF, 0x84, 0xCF, 0x83, 0xCE, 0xBF, 0xCF, 0x80 };
+static const symbol s_39_6[6] = { 0xCE, 0xBA, 0xCE, 0xBF, 0xCF, 0x80 };
+static const symbol s_39_7[12] = { 0xCF, 0x85, 0xCF, 0x80, 0xCE, 0xBF, 0xCE, 0xBA, 0xCE, 0xBF, 0xCF, 0x80 };
+static const symbol s_39_8[12] = { 0xCF, 0x80, 0xCE, 0xB5, 0xCF, 0x81, 0xCE, 0xB9, 0xCF, 0x84, 0xCF, 0x81 };
+static const symbol s_39_9[6] = { 0xCE, 0xBF, 0xCF, 0x85, 0xCF, 0x81 };
+static const symbol s_39_10[4] = { 0xCE, 0xB5, 0xCF, 0x81 };
+static const symbol s_39_11[10] = { 0xCE, 0xB2, 0xCE, 0xB5, 0xCF, 0x84, 0xCE, 0xB5, 0xCF, 0x81 };
+static const symbol s_39_12[6] = { 0xCE, 0xB3, 0xCE, 0xB5, 0xCF, 0x81 };
+static const symbol s_39_13[12] = { 0xCE, 0xBB, 0xCE, 0xBF, 0xCF, 0x85, 0xCE, 0xB8, 0xCE, 0xB7, 0xCF, 0x81 };
+static const symbol s_39_14[12] = { 0xCE, 0xBA, 0xCE, 0xBF, 0xCF, 0x81, 0xCE, 0xBC, 0xCE, 0xBF, 0xCF, 0x81 };
+static const symbol s_39_15[2] = { 0xCF, 0x83 };
+static const symbol s_39_16[16] = { 0xCF, 0x83, 0xCE, 0xB1, 0xCF, 0x81, 0xCE, 0xB1, 0xCE, 0xBA, 0xCE, 0xB1, 0xCF, 0x84, 0xCF, 0x83 };
+static const symbol s_39_17[6] = { 0xCE, 0xB8, 0xCF, 0x85, 0xCF, 0x83 };
+static const symbol s_39_18[6] = { 0xCE, 0xB2, 0xCE, 0xB1, 0xCF, 0x83 };
+static const symbol s_39_19[10] = { 0xCF, 0x80, 0xCE, 0xBF, 0xCE, 0xBB, 0xCE, 0xB9, 0xCF, 0x83 };
+static const symbol s_39_20[8] = { 0xCE, 0xBA, 0xCE, 0xB1, 0xCF, 0x83, 0xCF, 0x84 };
+static const symbol s_39_21[8] = { 0xCE, 0xB4, 0xCE, 0xB9, 0xCE, 0xB1, 0xCF, 0x84 };
+static const symbol s_39_22[8] = { 0xCF, 0x80, 0xCE, 0xBB, 0xCE, 0xB1, 0xCF, 0x84 };
+static const symbol s_39_23[14] = { 0xCF, 0x84, 0xCF, 0x83, 0xCE, 0xB1, 0xCF, 0x81, 0xCE, 0xBB, 0xCE, 0xB1, 0xCF, 0x84 };
+static const symbol s_39_24[6] = { 0xCF, 0x84, 0xCE, 0xB5, 0xCF, 0x84 };
+static const symbol s_39_25[12] = { 0xCF, 0x80, 0xCE, 0xBF, 0xCF, 0x85, 0xCF, 0x81, 0xCE, 0xB9, 0xCF, 0x84 };
+static const symbol s_39_26[10] = { 0xCF, 0x83, 0xCE, 0xBF, 0xCF, 0x85, 0xCE, 0xBB, 0xCF, 0x84 };
+static const symbol s_39_27[8] = { 0xCE, 0xB6, 0xCF, 0x89, 0xCE, 0xBD, 0xCF, 0x84 };
+static const symbol s_39_28[10] = { 0xCE, 0xBC, 0xCE, 0xB1, 0xCE, 0xB9, 0xCE, 0xBD, 0xCF, 0x84 };
+static const symbol s_39_29[2] = { 0xCF, 0x86 };
+static const symbol s_39_30[14] = { 0xCF, 0x80, 0xCE, 0xB5, 0xCE, 0xBD, 0xCF, 0x84, 0xCE, 0xB1, 0xCF, 0x81, 0xCF, 0x86 };
+static const symbol s_39_31[14] = { 0xCE, 0xBA, 0xCE, 0xBF, 0xCE, 0xB9, 0xCE, 0xBB, 0xCE, 0xB1, 0xCF, 0x81, 0xCF, 0x86 };
+static const symbol s_39_32[6] = { 0xCE, 0xBF, 0xCF, 0x81, 0xCF, 0x86 };
+static const symbol s_39_33[8] = { 0xCE, 0xB4, 0xCE, 0xB9, 0xCE, 0xB1, 0xCF, 0x86 };
+static const symbol s_39_34[8] = { 0xCF, 0x83, 0xCF, 0x84, 0xCE, 0xB5, 0xCF, 0x86 };
+static const symbol s_39_35[16] = { 0xCF, 0x86, 0xCF, 0x89, 0xCF, 0x84, 0xCE, 0xBF, 0xCF, 0x83, 0xCF, 0x84, 0xCE, 0xB5, 0xCF, 0x86 };
+static const symbol s_39_36[10] = { 0xCF, 0x80, 0xCE, 0xB5, 0xCF, 0x81, 0xCE, 0xB7, 0xCF, 0x86 };
+static const symbol s_39_37[12] = { 0xCF, 0x85, 0xCF, 0x80, 0xCE, 0xB5, 0xCF, 0x81, 0xCE, 0xB7, 0xCF, 0x86 };
+static const symbol s_39_38[2] = { 0xCF, 0x87 };
+static const symbol s_39_39[14] = { 0xCF, 0x80, 0xCE, 0xBF, 0xCE, 0xBB, 0xCF, 0x85, 0xCE, 0xBC, 0xCE, 0xB7, 0xCF, 0x87 };
+static const symbol s_39_40[8] = { 0xCE, 0xB1, 0xCE, 0xBC, 0xCE, 0xB7, 0xCF, 0x87 };
+static const symbol s_39_41[12] = { 0xCE, 0xB2, 0xCE, 0xB9, 0xCE, 0xBF, 0xCE, 0xBC, 0xCE, 0xB7, 0xCF, 0x87 };
+static const symbol s_39_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_39_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_39_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_39_45[6] = { 0xCE, 0xBB, 0xCE, 0xB9, 0xCF, 0x87 };
+static const symbol s_39_46[6] = { 0xCF, 0x84, 0xCE, 0xB1, 0xCE, 0xB2 };
+static const symbol s_39_47[8] = { 0xCE, 0xBD, 0xCF, 0x84, 0xCE, 0xB1, 0xCE, 0xB2 };
+static const symbol s_39_48[14] = { 0xCF, 0x88, 0xCE, 0xB7, 0xCE, 0xBB, 0xCE, 0xBF, 0xCF, 0x84, 0xCE, 0xB1, 0xCE, 0xB2 };
+static const symbol s_39_49[6] = { 0xCE, 0xBB, 0xCE, 0xB9, 0xCE, 0xB2 };
+static const symbol s_39_50[8] = { 0xCE, 0xBA, 0xCE, 0xBB, 0xCE, 0xB9, 0xCE, 0xB2 };
+static const symbol s_39_51[16] = { 0xCE, 0xBE, 0xCE, 0xB7, 0xCF, 0x81, 0xCE, 0xBF, 0xCE, 0xBA, 0xCE, 0xBB, 0xCE, 0xB9, 0xCE, 0xB2 };
+static const symbol s_39_52[2] = { 0xCE, 0xB3 };
+static const symbol s_39_53[10] = { 0xCE, 0xB1, 0xCE, 0xBD, 0xCE, 0xBF, 0xCF, 0x81, 0xCE, 0xB3 };
+static const symbol s_39_54[10] = { 0xCE, 0xB5, 0xCE, 0xBD, 0xCE, 0xBF, 0xCF, 0x81, 0xCE, 0xB3 };
+static const symbol s_39_55[4] = { 0xCE, 0xB1, 0xCE, 0xB3 };
+static const symbol s_39_56[8] = { 0xCF, 0x84, 0xCF, 0x81, 0xCE, 0xB1, 0xCE, 0xB3 };
+static const symbol s_39_57[8] = { 0xCF, 0x84, 0xCF, 0x83, 0xCE, 0xB1, 0xCE, 0xB3 };
+static const symbol s_39_58[10] = { 0xCF, 0x84, 0xCF, 0x83, 0xCE, 0xB9, 0xCE, 0xB3, 0xCE, 0xB3 };
+static const symbol s_39_59[12] = { 0xCE, 0xB1, 0xCF, 0x84, 0xCF, 0x83, 0xCE, 0xB9, 0xCE, 0xB3, 0xCE, 0xB3 };
+static const symbol s_39_60[10] = { 0xCE, 0xB1, 0xCE, 0xB8, 0xCE, 0xB9, 0xCE, 0xB3, 0xCE, 0xB3 };
+static const symbol s_39_61[8] = { 0xCF, 0x83, 0xCF, 0x84, 0xCE, 0xB5, 0xCE, 0xB3 };
+static const symbol s_39_62[8] = { 0xCE, 0xB1, 0xCF, 0x80, 0xCE, 0xB7, 0xCE, 0xB3 };
+static const symbol s_39_63[6] = { 0xCF, 0x83, 0xCE, 0xB9, 0xCE, 0xB3 };
+static const symbol s_39_64[14] = { 0xCE, 0xBA, 0xCE, 0xB1, 0xCE, 0xBB, 0xCF, 0x80, 0xCE, 0xBF, 0xCF, 0x85, 0xCE, 0xB6 };
+static const symbol s_39_65[2] = { 0xCE, 0xB8 };
+static const symbol s_39_66[12] = { 0xCE, 0xBC, 0xCF, 0x89, 0xCE, 0xB1, 0xCE, 0xBC, 0xCE, 0xB5, 0xCE, 0xB8 };
+static const symbol s_39_67[6] = { 0xCF, 0x80, 0xCE, 0xB9, 0xCE, 0xB8 };
+static const symbol s_39_68[8] = { 0xCE, 0xB1, 0xCF, 0x80, 0xCE, 0xB9, 0xCE, 0xB8 };
+static const symbol s_39_69[8] = { 0xCE, 0xB2, 0xCE, 0xB1, 0xCF, 0x83, 0xCE, 0xBA };
+static const symbol s_39_70[12] = { 0xCE, 0xB2, 0xCF, 0x81, 0xCE, 0xB1, 0xCF, 0x87, 0xCF, 0x85, 0xCE, 0xBA };
+static const symbol s_39_71[6] = { 0xCE, 0xB4, 0xCE, 0xB5, 0xCE, 0xBA };
+static const symbol s_39_72[10] = { 0xCF, 0x80, 0xCE, 0xB5, 0xCE, 0xBB, 0xCE, 0xB5, 0xCE, 0xBA };
+static const symbol s_39_73[4] = { 0xCE, 0xB9, 0xCE, 0xBA };
+static const symbol s_39_74[8] = { 0xCE, 0xB1, 0xCE, 0xBD, 0xCE, 0xB9, 0xCE, 0xBA };
+static const symbol s_39_75[10] = { 0xCE, 0xB2, 0xCE, 0xBF, 0xCF, 0x85, 0xCE, 0xBB, 0xCE, 0xBA };
+static const symbol s_39_76[4] = { 0xCF, 0x80, 0xCE, 0xBB };
+static const symbol s_39_77[8] = { 0xCE, 0xB4, 0xCE, 0xB9, 0xCF, 0x80, 0xCE, 0xBB };
+static const symbol s_39_78[12] = { 0xCF, 0x88, 0xCF, 0x85, 0xCF, 0x87, 0xCE, 0xBF, 0xCF, 0x80, 0xCE, 0xBB };
+static const symbol s_39_79[10] = { 0xCE, 0xBB, 0xCE, 0xB1, 0xCE, 0xBF, 0xCF, 0x80, 0xCE, 0xBB };
+static const symbol s_39_80[6] = { 0xCE, 0xBF, 0xCF, 0x85, 0xCE, 0xBB };
+static const symbol s_39_81[6] = { 0xCE, 0xB3, 0xCE, 0xB1, 0xCE, 0xBB };
+static const symbol s_39_82[14] = { 0xCE, 0xB2, 0xCE, 0xB1, 0xCE, 0xB8, 0xCF, 0x85, 0xCE, 0xB3, 0xCE, 0xB1, 0xCE, 0xBB };
+static const symbol s_39_83[14] = { 0xCE, 0xBA, 0xCE, 0xB1, 0xCF, 0x84, 0xCE, 0xB1, 0xCE, 0xB3, 0xCE, 0xB1, 0xCE, 0xBB };
+static const symbol s_39_84[12] = { 0xCE, 0xBF, 0xCE, 0xBB, 0xCE, 0xBF, 0xCE, 0xB3, 0xCE, 0xB1, 0xCE, 0xBB };
+static const symbol s_39_85[12] = { 0xCE, 0xBA, 0xCE, 0xB1, 0xCF, 0x83, 0xCF, 0x84, 0xCE, 0xB5, 0xCE, 0xBB };
+static const symbol s_39_86[6] = { 0xCE, 0xBC, 0xCE, 0xB5, 0xCE, 0xBB };
+static const symbol s_39_87[12] = { 0xCF, 0x80, 0xCE, 0xBF, 0xCF, 0x81, 0xCF, 0x84, 0xCE, 0xBF, 0xCE, 0xBB };
+static const symbol s_39_88[2] = { 0xCE, 0xBC };
+static const symbol s_39_89[14] = { 0xCE, 0xB4, 0xCF, 0x81, 0xCE, 0xB1, 0xCE, 0xB4, 0xCE, 0xBF, 0xCF, 0x85, 0xCE, 0xBC };
+static const symbol s_39_90[10] = { 0xCE, 0xB2, 0xCF, 0x81, 0xCE, 0xB1, 0xCF, 0x87, 0xCE, 0xBC };
+static const symbol s_39_91[16] = { 0xCE, 0xBF, 0xCE, 0xBB, 0xCE, 0xB9, 0xCE, 0xB3, 0xCE, 0xBF, 0xCE, 0xB4, 0xCE, 0xB1, 0xCE, 0xBC };
+static const symbol s_39_92[16] = { 0xCE, 0xBC, 0xCE, 0xBF, 0xCF, 0x85, 0xCF, 0x83, 0xCE, 0xBF, 0xCF, 0x85, 0xCE, 0xBB, 0xCE, 0xBC };
+static const symbol s_39_93[2] = { 0xCE, 0xBD };
+static const symbol s_39_94[16] = { 0xCE, 0xB1, 0xCE, 0xBC, 0xCE, 0xB5, 0xCF, 0x81, 0xCE, 0xB9, 0xCE, 0xBA, 0xCE, 0xB1, 0xCE, 0xBD };
+
+static const struct among a_39[95] =
+{
+{ 2, s_39_0, -1, 1, 0},
+{ 4, s_39_1, 0, 1, 0},
+{ 14, s_39_2, 0, 1, 0},
+{ 8, s_39_3, 0, 1, 0},
+{ 18, s_39_4, 0, 1, 0},
+{ 8, s_39_5, 0, 1, 0},
+{ 6, s_39_6, 0, 1, 0},
+{ 12, s_39_7, 6, 1, 0},
+{ 12, s_39_8, -1, 1, 0},
+{ 6, s_39_9, -1, 1, 0},
+{ 4, s_39_10, -1, 1, 0},
+{ 10, s_39_11, 10, 1, 0},
+{ 6, s_39_12, 10, 1, 0},
+{ 12, s_39_13, -1, 1, 0},
+{ 12, s_39_14, -1, 1, 0},
+{ 2, s_39_15, -1, 1, 0},
+{ 16, s_39_16, 15, 1, 0},
+{ 6, s_39_17, 15, 1, 0},
+{ 6, s_39_18, 15, 1, 0},
+{ 10, s_39_19, 15, 1, 0},
+{ 8, s_39_20, -1, 1, 0},
+{ 8, s_39_21, -1, 1, 0},
+{ 8, s_39_22, -1, 1, 0},
+{ 14, s_39_23, -1, 1, 0},
+{ 6, s_39_24, -1, 1, 0},
+{ 12, s_39_25, -1, 1, 0},
+{ 10, s_39_26, -1, 1, 0},
+{ 8, s_39_27, -1, 1, 0},
+{ 10, s_39_28, -1, 1, 0},
+{ 2, s_39_29, -1, 1, 0},
+{ 14, s_39_30, 29, 1, 0},
+{ 14, s_39_31, 29, 1, 0},
+{ 6, s_39_32, 29, 1, 0},
+{ 8, s_39_33, 29, 1, 0},
+{ 8, s_39_34, 29, 1, 0},
+{ 16, s_39_35, 34, 1, 0},
+{ 10, s_39_36, 29, 1, 0},
+{ 12, s_39_37, 36, 1, 0},
+{ 2, s_39_38, -1, 1, 0},
+{ 14, s_39_39, 38, 1, 0},
+{ 8, s_39_40, 38, 1, 0},
+{ 12, s_39_41, 38, 1, 0},
+{ 22, s_39_42, 41, 1, 0},
+{ 22, s_39_43, 41, 1, 0},
+{ 22, s_39_44, 41, 1, 0},
+{ 6, s_39_45, 38, 1, 0},
+{ 6, s_39_46, -1, 1, 0},
+{ 8, s_39_47, 46, 1, 0},
+{ 14, s_39_48, 46, 1, 0},
+{ 6, s_39_49, -1, 1, 0},
+{ 8, s_39_50, 49, 1, 0},
+{ 16, s_39_51, 50, 1, 0},
+{ 2, s_39_52, -1, 1, 0},
+{ 10, s_39_53, 52, 1, 0},
+{ 10, s_39_54, 52, 1, 0},
+{ 4, s_39_55, 52, 1, 0},
+{ 8, s_39_56, 55, 1, 0},
+{ 8, s_39_57, 55, 1, 0},
+{ 10, s_39_58, 52, 1, 0},
+{ 12, s_39_59, 58, 1, 0},
+{ 10, s_39_60, 52, 1, 0},
+{ 8, s_39_61, 52, 1, 0},
+{ 8, s_39_62, 52, 1, 0},
+{ 6, s_39_63, 52, 1, 0},
+{ 14, s_39_64, -1, 1, 0},
+{ 2, s_39_65, -1, 1, 0},
+{ 12, s_39_66, 65, 1, 0},
+{ 6, s_39_67, 65, 1, 0},
+{ 8, s_39_68, 67, 1, 0},
+{ 8, s_39_69, -1, 1, 0},
+{ 12, s_39_70, -1, 1, 0},
+{ 6, s_39_71, -1, 1, 0},
+{ 10, s_39_72, -1, 1, 0},
+{ 4, s_39_73, -1, 1, 0},
+{ 8, s_39_74, 73, 1, 0},
+{ 10, s_39_75, -1, 1, 0},
+{ 4, s_39_76, -1, 1, 0},
+{ 8, s_39_77, 76, 1, 0},
+{ 12, s_39_78, 76, 1, 0},
+{ 10, s_39_79, 76, 1, 0},
+{ 6, s_39_80, -1, 1, 0},
+{ 6, s_39_81, -1, 1, 0},
+{ 14, s_39_82, 81, 1, 0},
+{ 14, s_39_83, 81, 1, 0},
+{ 12, s_39_84, 81, 1, 0},
+{ 12, s_39_85, -1, 1, 0},
+{ 6, s_39_86, -1, 1, 0},
+{ 12, s_39_87, -1, 1, 0},
+{ 2, s_39_88, -1, 1, 0},
+{ 14, s_39_89, 88, 1, 0},
+{ 10, s_39_90, 88, 1, 0},
+{ 16, s_39_91, 88, 1, 0},
+{ 16, s_39_92, 88, 1, 0},
+{ 2, s_39_93, -1, 1, 0},
+{ 16, s_39_94, 93, 1, 0}
+};
+
+static const symbol s_40_0[10] = { 0xCE, 0xB7, 0xCF, 0x83, 0xCE, 0xB5, 0xCF, 0x84, 0xCE, 0xB5 };
+
+static const struct among a_40[1] =
+{
+{ 10, s_40_0, -1, 1, 0}
+};
+
+static const symbol s_41_0[6] = { 0xCF, 0x80, 0xCF, 0x85, 0xCF, 0x81 };
+static const symbol s_41_1[6] = { 0xCE, 0xB5, 0xCF, 0x85, 0xCF, 0x81 };
+static const symbol s_41_2[6] = { 0xCF, 0x87, 0xCF, 0x89, 0xCF, 0x81 };
+static const symbol s_41_3[6] = { 0xCE, 0xB2, 0xCE, 0xB1, 0xCF, 0x81 };
+static const symbol s_41_4[4] = { 0xCE, 0xB2, 0xCF, 0x81 };
+static const symbol s_41_5[6] = { 0xCE, 0xB1, 0xCE, 0xB9, 0xCF, 0x81 };
+static const symbol s_41_6[6] = { 0xCF, 0x86, 0xCE, 0xBF, 0xCF, 0x81 };
+static const symbol s_41_7[6] = { 0xCE, 0xBD, 0xCE, 0xB5, 0xCF, 0x84 };
+static const symbol s_41_8[4] = { 0xCF, 0x83, 0xCF, 0x87 };
+static const symbol s_41_9[8] = { 0xCF, 0x83, 0xCF, 0x85, 0xCE, 0xBD, 0xCE, 0xB4 };
+static const symbol s_41_10[6] = { 0xCE, 0xB5, 0xCE, 0xBD, 0xCE, 0xB4 };
+static const symbol s_41_11[4] = { 0xCE, 0xBF, 0xCE, 0xB4 };
+static const symbol s_41_12[10] = { 0xCF, 0x85, 0xCF, 0x80, 0xCE, 0xB5, 0xCF, 0x81, 0xCE, 0xB8 };
+static const symbol s_41_13[4] = { 0xCF, 0x83, 0xCE, 0xB8 };
+static const symbol s_41_14[6] = { 0xCE, 0xB5, 0xCF, 0x85, 0xCE, 0xB8 };
+static const symbol s_41_15[6] = { 0xCF, 0x81, 0xCE, 0xB1, 0xCE, 0xB8 };
+static const symbol s_41_16[6] = { 0xCF, 0x84, 0xCE, 0xB1, 0xCE, 0xB8 };
+static const symbol s_41_17[8] = { 0xCE, 0xB4, 0xCE, 0xB9, 0xCE, 0xB1, 0xCE, 0xB8 };
+static const symbol s_41_18[6] = { 0xCE, 0xBA, 0xCE, 0xB1, 0xCE, 0xB8 };
+static const symbol s_41_19[6] = { 0xCF, 0x84, 0xCE, 0xB9, 0xCE, 0xB8 };
+static const symbol s_41_20[6] = { 0xCE, 0xB5, 0xCE, 0xBA, 0xCE, 0xB8 };
+static const symbol s_41_21[8] = { 0xCF, 0x83, 0xCF, 0x85, 0xCE, 0xBD, 0xCE, 0xB8 };
+static const symbol s_41_22[6] = { 0xCE, 0xB5, 0xCE, 0xBD, 0xCE, 0xB8 };
+static const symbol s_41_23[6] = { 0xCF, 0x81, 0xCE, 0xBF, 0xCE, 0xB8 };
+static const symbol s_41_24[6] = { 0xCE, 0xB1, 0xCF, 0x81, 0xCE, 0xBA };
+static const symbol s_41_25[8] = { 0xCF, 0x89, 0xCF, 0x86, 0xCE, 0xB5, 0xCE, 0xBB };
+static const symbol s_41_26[6] = { 0xCE, 0xB2, 0xCE, 0xBF, 0xCE, 0xBB };
+static const symbol s_41_27[6] = { 0xCF, 0x83, 0xCF, 0x85, 0xCE, 0xBD };
+static const symbol s_41_28[6] = { 0xCE, 0xB1, 0xCE, 0xB9, 0xCE, 0xBD };
+static const symbol s_41_29[6] = { 0xCF, 0x80, 0xCE, 0xBF, 0xCE, 0xBD };
+static const symbol s_41_30[6] = { 0xCF, 0x81, 0xCE, 0xBF, 0xCE, 0xBD };
+
+static const struct among a_41[31] =
+{
+{ 6, s_41_0, -1, 1, 0},
+{ 6, s_41_1, -1, 1, 0},
+{ 6, s_41_2, -1, 1, 0},
+{ 6, s_41_3, -1, 1, 0},
+{ 4, s_41_4, -1, 1, 0},
+{ 6, s_41_5, -1, 1, 0},
+{ 6, s_41_6, -1, 1, 0},
+{ 6, s_41_7, -1, 1, 0},
+{ 4, s_41_8, -1, 1, 0},
+{ 8, s_41_9, -1, 1, 0},
+{ 6, s_41_10, -1, 1, 0},
+{ 4, s_41_11, -1, 1, 0},
+{ 10, s_41_12, -1, 1, 0},
+{ 4, s_41_13, -1, 1, 0},
+{ 6, s_41_14, -1, 1, 0},
+{ 6, s_41_15, -1, 1, 0},
+{ 6, s_41_16, -1, 1, 0},
+{ 8, s_41_17, -1, 1, 0},
+{ 6, s_41_18, -1, 1, 0},
+{ 6, s_41_19, -1, 1, 0},
+{ 6, s_41_20, -1, 1, 0},
+{ 8, s_41_21, -1, 1, 0},
+{ 6, s_41_22, -1, 1, 0},
+{ 6, s_41_23, -1, 1, 0},
+{ 6, s_41_24, -1, 1, 0},
+{ 8, s_41_25, -1, 1, 0},
+{ 6, s_41_26, -1, 1, 0},
+{ 6, s_41_27, -1, 1, 0},
+{ 6, s_41_28, -1, 1, 0},
+{ 6, s_41_29, -1, 1, 0},
+{ 6, s_41_30, -1, 1, 0}
+};
+
+static const symbol s_42_0[8] = { 0xCF, 0x83, 0xCE, 0xB5, 0xCF, 0x81, 0xCF, 0x80 };
+static const symbol s_42_1[6] = { 0xCE, 0xBA, 0xCE, 0xBF, 0xCF, 0x80 };
+static const symbol s_42_2[8] = { 0xCE, 0xB8, 0xCE, 0xB1, 0xCF, 0x81, 0xCF, 0x81 };
+static const symbol s_42_3[6] = { 0xCE, 0xBD, 0xCF, 0x84, 0xCF, 0x81 };
+static const symbol s_42_4[8] = { 0xCE, 0xB1, 0xCE, 0xB2, 0xCE, 0xB1, 0xCF, 0x81 };
+static const symbol s_42_5[8] = { 0xCE, 0xB5, 0xCE, 0xBD, 0xCE, 0xB1, 0xCF, 0x81 };
+static const symbol s_42_6[6] = { 0xCE, 0xB1, 0xCE, 0xB2, 0xCF, 0x81 };
+static const symbol s_42_7[8] = { 0xCE, 0xBC, 0xCF, 0x80, 0xCE, 0xBF, 0xCF, 0x81 };
+static const symbol s_42_8[2] = { 0xCF, 0x85 };
+static const symbol s_42_9[8] = { 0xCF, 0x83, 0xCF, 0x85, 0xCF, 0x81, 0xCF, 0x86 };
+static const symbol s_42_10[6] = { 0xCE, 0xBD, 0xCE, 0xB9, 0xCF, 0x86 };
+static const symbol s_42_11[6] = { 0xCF, 0x80, 0xCE, 0xB1, 0xCE, 0xB3 };
+static const symbol s_42_12[2] = { 0xCE, 0xB4 };
+static const symbol s_42_13[4] = { 0xCE, 0xB1, 0xCE, 0xB4 };
+static const symbol s_42_14[2] = { 0xCE, 0xB8 };
+static const symbol s_42_15[4] = { 0xCE, 0xB1, 0xCE, 0xB8 };
+static const symbol s_42_16[4] = { 0xCF, 0x83, 0xCE, 0xBA };
+static const symbol s_42_17[6] = { 0xCF, 0x84, 0xCE, 0xBF, 0xCE, 0xBA };
+static const symbol s_42_18[6] = { 0xCE, 0xB1, 0xCF, 0x80, 0xCE, 0xBB };
+static const symbol s_42_19[14] = { 0xCF, 0x80, 0xCE, 0xB1, 0xCF, 0x81, 0xCE, 0xB1, 0xCE, 0xBA, 0xCE, 0xB1, 0xCE, 0xBB };
+static const symbol s_42_20[8] = { 0xCF, 0x83, 0xCE, 0xBA, 0xCE, 0xB5, 0xCE, 0xBB };
+static const symbol s_42_21[4] = { 0xCE, 0xB5, 0xCE, 0xBC };
+static const symbol s_42_22[4] = { 0xCE, 0xB1, 0xCE, 0xBD };
+static const symbol s_42_23[6] = { 0xCE, 0xB2, 0xCE, 0xB5, 0xCE, 0xBD };
+static const symbol s_42_24[10] = { 0xCE, 0xB2, 0xCE, 0xB1, 0xCF, 0x81, 0xCE, 0xBF, 0xCE, 0xBD };
+
+static const struct among a_42[25] =
+{
+{ 8, s_42_0, -1, 1, 0},
+{ 6, s_42_1, -1, 1, 0},
+{ 8, s_42_2, -1, 1, 0},
+{ 6, s_42_3, -1, 1, 0},
+{ 8, s_42_4, -1, 1, 0},
+{ 8, s_42_5, -1, 1, 0},
+{ 6, s_42_6, -1, 1, 0},
+{ 8, s_42_7, -1, 1, 0},
+{ 2, s_42_8, -1, 1, 0},
+{ 8, s_42_9, -1, 1, 0},
+{ 6, s_42_10, -1, 1, 0},
+{ 6, s_42_11, -1, 1, 0},
+{ 2, s_42_12, -1, 1, 0},
+{ 4, s_42_13, 12, 1, 0},
+{ 2, s_42_14, -1, 1, 0},
+{ 4, s_42_15, 14, 1, 0},
+{ 4, s_42_16, -1, 1, 0},
+{ 6, s_42_17, -1, 1, 0},
+{ 6, s_42_18, -1, 1, 0},
+{ 14, s_42_19, -1, 1, 0},
+{ 8, s_42_20, -1, 1, 0},
+{ 4, s_42_21, -1, 1, 0},
+{ 4, s_42_22, -1, 1, 0},
+{ 6, s_42_23, -1, 1, 0},
+{ 10, s_42_24, -1, 1, 0}
+};
+
+static const symbol s_43_0[10] = { 0xCF, 0x89, 0xCE, 0xBD, 0xCF, 0x84, 0xCE, 0xB1, 0xCF, 0x83 };
+static const symbol s_43_1[10] = { 0xCE, 0xBF, 0xCE, 0xBD, 0xCF, 0x84, 0xCE, 0xB1, 0xCF, 0x83 };
+
+static const struct among a_43[2] =
+{
+{ 10, s_43_0, -1, 1, 0},
+{ 10, s_43_1, -1, 1, 0}
+};
+
+static const symbol s_44_0[12] = { 0xCE, 0xBF, 0xCE, 0xBC, 0xCE, 0xB1, 0xCF, 0x83, 0xCF, 0x84, 0xCE, 0xB5 };
+static const symbol s_44_1[14] = { 0xCE, 0xB9, 0xCE, 0xBF, 0xCE, 0xBC, 0xCE, 0xB1, 0xCF, 0x83, 0xCF, 0x84, 0xCE, 0xB5 };
+
+static const struct among a_44[2] =
+{
+{ 12, s_44_0, -1, 1, 0},
+{ 14, s_44_1, 0, 1, 0}
+};
+
+static const symbol s_45_0[2] = { 0xCF, 0x80 };
+static const symbol s_45_1[4] = { 0xCE, 0xB1, 0xCF, 0x80 };
+static const symbol s_45_2[12] = { 0xCE, 0xB1, 0xCE, 0xBA, 0xCE, 0xB1, 0xCF, 0x84, 0xCE, 0xB1, 0xCF, 0x80 };
+static const symbol s_45_3[8] = { 0xCF, 0x83, 0xCF, 0x85, 0xCE, 0xBC, 0xCF, 0x80 };
+static const symbol s_45_4[10] = { 0xCE, 0xB1, 0xCF, 0x83, 0xCF, 0x85, 0xCE, 0xBC, 0xCF, 0x80 };
+static const symbol s_45_5[14] = { 0xCE, 0xB1, 0xCE, 0xBC, 0xCE, 0xB5, 0xCF, 0x84, 0xCE, 0xB1, 0xCE, 0xBC, 0xCF, 0x86 };
+
+static const struct among a_45[6] =
+{
+{ 2, s_45_0, -1, 1, 0},
+{ 4, s_45_1, 0, 1, 0},
+{ 12, s_45_2, 1, 1, 0},
+{ 8, s_45_3, 0, 1, 0},
+{ 10, s_45_4, 3, 1, 0},
+{ 14, s_45_5, -1, 1, 0}
+};
+
+static const symbol s_46_0[4] = { 0xCE, 0xB1, 0xCF, 0x81 };
+static const symbol s_46_1[6] = { 0xCE, 0xBD, 0xCE, 0xB9, 0xCF, 0x83 };
+static const symbol s_46_2[2] = { 0xCE, 0xB6 };
+static const symbol s_46_3[4] = { 0xCE, 0xB1, 0xCE, 0xBB };
+static const symbol s_46_4[14] = { 0xCF, 0x80, 0xCE, 0xB1, 0xCF, 0x81, 0xCE, 0xB1, 0xCE, 0xBA, 0xCE, 0xB1, 0xCE, 0xBB };
+static const symbol s_46_5[10] = { 0xCE, 0xB5, 0xCE, 0xBA, 0xCF, 0x84, 0xCE, 0xB5, 0xCE, 0xBB };
+static const symbol s_46_6[2] = { 0xCE, 0xBC };
+static const symbol s_46_7[2] = { 0xCE, 0xBE };
+static const symbol s_46_8[6] = { 0xCF, 0x80, 0xCF, 0x81, 0xCE, 0xBF };
+
+static const struct among a_46[9] =
+{
+{ 4, s_46_0, -1, 1, 0},
+{ 6, s_46_1, -1, 1, 0},
+{ 2, s_46_2, -1, 1, 0},
+{ 4, s_46_3, -1, 1, 0},
+{ 14, s_46_4, 3, 1, 0},
+{ 10, s_46_5, -1, 1, 0},
+{ 2, s_46_6, -1, 1, 0},
+{ 2, s_46_7, -1, 1, 0},
+{ 6, s_46_8, -1, 1, 0}
+};
+
+static const symbol s_47_0[12] = { 0xCE, 0xB7, 0xCE, 0xB8, 0xCE, 0xB7, 0xCE, 0xBA, 0xCE, 0xB5, 0xCF, 0x83 };
+static const symbol s_47_1[10] = { 0xCE, 0xB7, 0xCE, 0xB8, 0xCE, 0xB7, 0xCE, 0xBA, 0xCE, 0xB1 };
+static const symbol s_47_2[10] = { 0xCE, 0xB7, 0xCE, 0xB8, 0xCE, 0xB7, 0xCE, 0xBA, 0xCE, 0xB5 };
+
+static const struct among a_47[3] =
+{
+{ 12, s_47_0, -1, 1, 0},
+{ 10, s_47_1, -1, 1, 0},
+{ 10, s_47_2, -1, 1, 0}
+};
+
+static const symbol s_48_0[4] = { 0xCF, 0x83, 0xCF, 0x86 };
+static const symbol s_48_1[8] = { 0xCE, 0xBD, 0xCE, 0xB1, 0xCF, 0x81, 0xCE, 0xB8 };
+static const symbol s_48_2[6] = { 0xCF, 0x80, 0xCE, 0xB9, 0xCE, 0xB8 };
+static const symbol s_48_3[4] = { 0xCE, 0xBF, 0xCE, 0xB8 };
+static const symbol s_48_4[10] = { 0xCF, 0x83, 0xCE, 0xBA, 0xCE, 0xBF, 0xCF, 0x85, 0xCE, 0xBB };
+static const symbol s_48_5[8] = { 0xCF, 0x83, 0xCE, 0xBA, 0xCF, 0x89, 0xCE, 0xBB };
+
+static const struct among a_48[6] =
+{
+{ 4, s_48_0, -1, 1, 0},
+{ 8, s_48_1, -1, 1, 0},
+{ 6, s_48_2, -1, 1, 0},
+{ 4, s_48_3, -1, 1, 0},
+{ 10, s_48_4, -1, 1, 0},
+{ 8, s_48_5, -1, 1, 0}
+};
+
+static const symbol s_49_0[2] = { 0xCE, 0xB8 };
+static const symbol s_49_1[10] = { 0xCF, 0x80, 0xCF, 0x81, 0xCE, 0xBF, 0xCF, 0x83, 0xCE, 0xB8 };
+static const symbol s_49_2[18] = { 0xCF, 0x80, 0xCE, 0xB1, 0xCF, 0x81, 0xCE, 0xB1, 0xCE, 0xBA, 0xCE, 0xB1, 0xCF, 0x84, 0xCE, 0xB1, 0xCE, 0xB8 };
+static const symbol s_49_3[8] = { 0xCE, 0xB4, 0xCE, 0xB9, 0xCE, 0xB1, 0xCE, 0xB8 };
+static const symbol s_49_4[8] = { 0xCF, 0x83, 0xCF, 0x85, 0xCE, 0xBD, 0xCE, 0xB8 };
+
+static const struct among a_49[5] =
+{
+{ 2, s_49_0, -1, 1, 0},
+{ 10, s_49_1, 0, 1, 0},
+{ 18, s_49_2, 0, 1, 0},
+{ 8, s_49_3, 0, 1, 0},
+{ 8, s_49_4, 0, 1, 0}
+};
+
+static const symbol s_50_0[8] = { 0xCE, 0xB7, 0xCE, 0xBA, 0xCE, 0xB5, 0xCF, 0x83 };
+static const symbol s_50_1[6] = { 0xCE, 0xB7, 0xCE, 0xBA, 0xCE, 0xB1 };
+static const symbol s_50_2[6] = { 0xCE, 0xB7, 0xCE, 0xBA, 0xCE, 0xB5 };
+
+static const struct among a_50[3] =
+{
+{ 8, s_50_0, -1, 1, 0},
+{ 6, s_50_1, -1, 1, 0},
+{ 6, s_50_2, -1, 1, 0}
+};
+
+static const symbol s_51_0[8] = { 0xCE, 0xB2, 0xCE, 0xBB, 0xCE, 0xB5, 0xCF, 0x80 };
+static const symbol s_51_1[10] = { 0xCF, 0x80, 0xCE, 0xBF, 0xCE, 0xB4, 0xCE, 0xB1, 0xCF, 0x81 };
+static const symbol s_51_2[8] = { 0xCF, 0x80, 0xCF, 0x81, 0xCF, 0x89, 0xCF, 0x84 };
+static const symbol s_51_3[10] = { 0xCE, 0xBA, 0xCF, 0x85, 0xCE, 0xBC, 0xCE, 0xB1, 0xCF, 0x84 };
+static const symbol s_51_4[12] = { 0xCF, 0x80, 0xCE, 0xB1, 0xCE, 0xBD, 0xCF, 0x84, 0xCE, 0xB1, 0xCF, 0x87 };
+static const symbol s_51_5[6] = { 0xCE, 0xBB, 0xCE, 0xB1, 0xCF, 0x87 };
+static const symbol s_51_6[6] = { 0xCF, 0x86, 0xCE, 0xB1, 0xCE, 0xB3 };
+static const symbol s_51_7[6] = { 0xCE, 0xBB, 0xCE, 0xB7, 0xCE, 0xB3 };
+static const symbol s_51_8[8] = { 0xCF, 0x86, 0xCF, 0x81, 0xCF, 0x85, 0xCE, 0xB4 };
+static const symbol s_51_9[12] = { 0xCE, 0xBC, 0xCE, 0xB1, 0xCE, 0xBD, 0xCF, 0x84, 0xCE, 0xB9, 0xCE, 0xBB };
+static const symbol s_51_10[8] = { 0xCE, 0xBC, 0xCE, 0xB1, 0xCE, 0xBB, 0xCE, 0xBB };
+static const symbol s_51_11[4] = { 0xCE, 0xBF, 0xCE, 0xBC };
+
+static const struct among a_51[12] =
+{
+{ 8, s_51_0, -1, 1, 0},
+{ 10, s_51_1, -1, 1, 0},
+{ 8, s_51_2, -1, 1, 0},
+{ 10, s_51_3, -1, 1, 0},
+{ 12, s_51_4, -1, 1, 0},
+{ 6, s_51_5, -1, 1, 0},
+{ 6, s_51_6, -1, 1, 0},
+{ 6, s_51_7, -1, 1, 0},
+{ 8, s_51_8, -1, 1, 0},
+{ 12, s_51_9, -1, 1, 0},
+{ 8, s_51_10, -1, 1, 0},
+{ 4, s_51_11, -1, 1, 0}
+};
+
+static const symbol s_52_0[10] = { 0xCE, 0xB5, 0xCE, 0xBA, 0xCE, 0xBB, 0xCE, 0xB9, 0xCF, 0x80 };
+static const symbol s_52_1[2] = { 0xCF, 0x81 };
+static const symbol s_52_2[10] = { 0xCE, 0xB1, 0xCE, 0xBD, 0xCE, 0xB1, 0xCF, 0x81, 0xCF, 0x81 };
+static const symbol s_52_3[16] = { 0xCE, 0xB5, 0xCE, 0xBD, 0xCE, 0xB4, 0xCE, 0xB9, 0xCE, 0xB1, 0xCF, 0x86, 0xCE, 0xB5, 0xCF, 0x81 };
+static const symbol s_52_4[6] = { 0xCF, 0x80, 0xCE, 0xB1, 0xCF, 0x84 };
+static const symbol s_52_5[14] = { 0xCE, 0xBA, 0xCE, 0xB1, 0xCE, 0xB8, 0xCE, 0xB1, 0xCF, 0x81, 0xCE, 0xB5, 0xCF, 0x85 };
+static const symbol s_52_6[16] = { 0xCE, 0xB4, 0xCE, 0xB5, 0xCF, 0x85, 0xCF, 0x84, 0xCE, 0xB5, 0xCF, 0x81, 0xCE, 0xB5, 0xCF, 0x85 };
+static const symbol s_52_7[6] = { 0xCE, 0xBB, 0xCE, 0xB5, 0xCF, 0x87 };
+static const symbol s_52_8[6] = { 0xCF, 0x84, 0xCF, 0x83, 0xCE, 0xB1 };
+static const symbol s_52_9[6] = { 0xCF, 0x87, 0xCE, 0xB1, 0xCE, 0xB4 };
+static const symbol s_52_10[6] = { 0xCE, 0xBC, 0xCE, 0xB5, 0xCE, 0xB4 };
+static const symbol s_52_11[12] = { 0xCE, 0xBB, 0xCE, 0xB1, 0xCE, 0xBC, 0xCF, 0x80, 0xCE, 0xB9, 0xCE, 0xB4 };
+static const symbol s_52_12[4] = { 0xCE, 0xB4, 0xCE, 0xB5 };
+static const symbol s_52_13[6] = { 0xCF, 0x80, 0xCE, 0xBB, 0xCE, 0xB5 };
+static const symbol s_52_14[10] = { 0xCE, 0xBC, 0xCE, 0xB5, 0xCF, 0x83, 0xCE, 0xB1, 0xCE, 0xB6 };
+static const symbol s_52_15[12] = { 0xCE, 0xB4, 0xCE, 0xB5, 0xCF, 0x83, 0xCF, 0x80, 0xCE, 0xBF, 0xCE, 0xB6 };
+static const symbol s_52_16[6] = { 0xCE, 0xB1, 0xCE, 0xB9, 0xCE, 0xB8 };
+static const symbol s_52_17[12] = { 0xCF, 0x86, 0xCE, 0xB1, 0xCF, 0x81, 0xCE, 0xBC, 0xCE, 0xB1, 0xCE, 0xBA };
+static const symbol s_52_18[6] = { 0xCE, 0xB1, 0xCE, 0xB3, 0xCE, 0xBA };
+static const symbol s_52_19[8] = { 0xCE, 0xB1, 0xCE, 0xBD, 0xCE, 0xB7, 0xCE, 0xBA };
+static const symbol s_52_20[2] = { 0xCE, 0xBB };
+static const symbol s_52_21[2] = { 0xCE, 0xBC };
+static const symbol s_52_22[4] = { 0xCE, 0xB1, 0xCE, 0xBC };
+static const symbol s_52_23[8] = { 0xCE, 0xB2, 0xCF, 0x81, 0xCE, 0xBF, 0xCE, 0xBC };
+static const symbol s_52_24[14] = { 0xCF, 0x85, 0xCF, 0x80, 0xCE, 0xBF, 0xCF, 0x84, 0xCE, 0xB5, 0xCE, 0xB9, 0xCE, 0xBD };
+
+static const struct among a_52[25] =
+{
+{ 10, s_52_0, -1, 1, 0},
+{ 2, s_52_1, -1, 1, 0},
+{ 10, s_52_2, 1, 1, 0},
+{ 16, s_52_3, 1, 1, 0},
+{ 6, s_52_4, -1, 1, 0},
+{ 14, s_52_5, -1, 1, 0},
+{ 16, s_52_6, -1, 1, 0},
+{ 6, s_52_7, -1, 1, 0},
+{ 6, s_52_8, -1, 1, 0},
+{ 6, s_52_9, -1, 1, 0},
+{ 6, s_52_10, -1, 1, 0},
+{ 12, s_52_11, -1, 1, 0},
+{ 4, s_52_12, -1, 1, 0},
+{ 6, s_52_13, -1, 1, 0},
+{ 10, s_52_14, -1, 1, 0},
+{ 12, s_52_15, -1, 1, 0},
+{ 6, s_52_16, -1, 1, 0},
+{ 12, s_52_17, -1, 1, 0},
+{ 6, s_52_18, -1, 1, 0},
+{ 8, s_52_19, -1, 1, 0},
+{ 2, s_52_20, -1, 1, 0},
+{ 2, s_52_21, -1, 1, 0},
+{ 4, s_52_22, 21, 1, 0},
+{ 8, s_52_23, 21, 1, 0},
+{ 14, s_52_24, -1, 1, 0}
+};
+
+static const symbol s_53_0[10] = { 0xCE, 0xBF, 0xCF, 0x85, 0xCF, 0x83, 0xCE, 0xB5, 0xCF, 0x83 };
+static const symbol s_53_1[8] = { 0xCE, 0xBF, 0xCF, 0x85, 0xCF, 0x83, 0xCE, 0xB1 };
+static const symbol s_53_2[8] = { 0xCE, 0xBF, 0xCF, 0x85, 0xCF, 0x83, 0xCE, 0xB5 };
+
+static const struct among a_53[3] =
+{
+{ 10, s_53_0, -1, 1, 0},
+{ 8, s_53_1, -1, 1, 0},
+{ 8, s_53_2, -1, 1, 0}
+};
+
+static const symbol s_54_0[4] = { 0xCF, 0x81, 0xCF, 0x80 };
+static const symbol s_54_1[4] = { 0xCF, 0x80, 0xCF, 0x81 };
+static const symbol s_54_2[4] = { 0xCF, 0x86, 0xCF, 0x81 };
+static const symbol s_54_3[8] = { 0xCF, 0x87, 0xCE, 0xBF, 0xCF, 0x81, 0xCF, 0x84 };
+static const symbol s_54_4[4] = { 0xCF, 0x83, 0xCF, 0x86 };
+static const symbol s_54_5[4] = { 0xCE, 0xBF, 0xCF, 0x86 };
+static const symbol s_54_6[6] = { 0xCF, 0x88, 0xCE, 0xBF, 0xCF, 0x86 };
+static const symbol s_54_7[6] = { 0xCE, 0xBB, 0xCE, 0xBF, 0xCF, 0x87 };
+static const symbol s_54_8[12] = { 0xCE, 0xBD, 0xCE, 0xB1, 0xCF, 0x85, 0xCE, 0xBB, 0xCE, 0xBF, 0xCF, 0x87 };
+static const symbol s_54_9[6] = { 0xCF, 0x80, 0xCE, 0xB5, 0xCE, 0xBB };
+static const symbol s_54_10[4] = { 0xCE, 0xBB, 0xCE, 0xBB };
+static const symbol s_54_11[8] = { 0xCF, 0x83, 0xCE, 0xBC, 0xCE, 0xB7, 0xCE, 0xBD };
+
+static const struct among a_54[12] =
+{
+{ 4, s_54_0, -1, 1, 0},
+{ 4, s_54_1, -1, 1, 0},
+{ 4, s_54_2, -1, 1, 0},
+{ 8, s_54_3, -1, 1, 0},
+{ 4, s_54_4, -1, 1, 0},
+{ 4, s_54_5, -1, 1, 0},
+{ 6, s_54_6, 5, -1, 0},
+{ 6, s_54_7, -1, 1, 0},
+{ 12, s_54_8, 7, -1, 0},
+{ 6, s_54_9, -1, 1, 0},
+{ 4, s_54_10, -1, 1, 0},
+{ 8, s_54_11, -1, 1, 0}
+};
+
+static const symbol s_55_0[2] = { 0xCF, 0x80 };
+static const symbol s_55_1[6] = { 0xCE, 0xB1, 0xCF, 0x83, 0xCF, 0x80 };
+static const symbol s_55_2[8] = { 0xCE, 0xB1, 0xCE, 0xBD, 0xCF, 0x85, 0xCF, 0x80 };
+static const symbol s_55_3[10] = { 0xCE, 0xB1, 0xCF, 0x81, 0xCF, 0x84, 0xCE, 0xB9, 0xCF, 0x80 };
+static const symbol s_55_4[8] = { 0xCE, 0xB1, 0xCE, 0xB5, 0xCE, 0xB9, 0xCF, 0x80 };
+static const symbol s_55_5[8] = { 0xCF, 0x83, 0xCF, 0x85, 0xCE, 0xBC, 0xCF, 0x80 };
+static const symbol s_55_6[16] = { 0xCF, 0x80, 0xCF, 0x81, 0xCE, 0xBF, 0xCF, 0x83, 0xCF, 0x89, 0xCF, 0x80, 0xCE, 0xBF, 0xCF, 0x80 };
+static const symbol s_55_7[14] = { 0xCF, 0x83, 0xCE, 0xB9, 0xCE, 0xB4, 0xCE, 0xB7, 0xCF, 0x81, 0xCE, 0xBF, 0xCF, 0x80 };
+static const symbol s_55_8[12] = { 0xCE, 0xB4, 0xCF, 0x81, 0xCE, 0xBF, 0xCF, 0x83, 0xCE, 0xBF, 0xCF, 0x80 };
+static const symbol s_55_9[8] = { 0xCE, 0xBD, 0xCE, 0xB5, 0xCE, 0xBF, 0xCF, 0x80 };
+static const symbol s_55_10[16] = { 0xCE, 0xBA, 0xCF, 0x81, 0xCE, 0xBF, 0xCE, 0xBA, 0xCE, 0xB1, 0xCE, 0xBB, 0xCE, 0xBF, 0xCF, 0x80 };
+static const symbol s_55_11[8] = { 0xCE, 0xBF, 0xCE, 0xBB, 0xCE, 0xBF, 0xCF, 0x80 };
+static const symbol s_55_12[2] = { 0xCF, 0x81 };
+static const symbol s_55_13[4] = { 0xCF, 0x84, 0xCF, 0x81 };
+static const symbol s_55_14[6] = { 0xCE, 0xBF, 0xCF, 0x85, 0xCF, 0x81 };
+static const symbol s_55_15[10] = { 0xCE, 0xB1, 0xCF, 0x83, 0xCF, 0x80, 0xCE, 0xB1, 0xCF, 0x81 };
+static const symbol s_55_16[6] = { 0xCF, 0x87, 0xCE, 0xB1, 0xCF, 0x81 };
+static const symbol s_55_17[8] = { 0xCE, 0xB1, 0xCF, 0x87, 0xCE, 0xB1, 0xCF, 0x81 };
+static const symbol s_55_18[8] = { 0xCE, 0xB1, 0xCF, 0x80, 0xCE, 0xB5, 0xCF, 0x81 };
+static const symbol s_55_19[2] = { 0xCF, 0x84 };
+static const symbol s_55_20[10] = { 0xCE, 0xB1, 0xCE, 0xBD, 0xCF, 0x85, 0xCF, 0x83, 0xCF, 0x84 };
+static const symbol s_55_21[10] = { 0xCE, 0xB1, 0xCE, 0xB2, 0xCE, 0xB1, 0xCF, 0x83, 0xCF, 0x84 };
+static const symbol s_55_22[10] = { 0xCF, 0x80, 0xCF, 0x81, 0xCE, 0xBF, 0xCF, 0x83, 0xCF, 0x84 };
+static const symbol s_55_23[12] = { 0xCE, 0xB1, 0xCE, 0xB9, 0xCE, 0xBC, 0xCE, 0xBF, 0xCF, 0x83, 0xCF, 0x84 };
+static const symbol s_55_24[8] = { 0xCE, 0xB4, 0xCE, 0xB9, 0xCE, 0xB1, 0xCF, 0x84 };
+static const symbol s_55_25[8] = { 0xCE, 0xB5, 0xCF, 0x80, 0xCE, 0xB9, 0xCF, 0x84 };
+static const symbol s_55_26[8] = { 0xCF, 0x83, 0xCF, 0x85, 0xCE, 0xBD, 0xCF, 0x84 };
+static const symbol s_55_27[8] = { 0xCF, 0x85, 0xCF, 0x80, 0xCE, 0xBF, 0xCF, 0x84 };
+static const symbol s_55_28[8] = { 0xCE, 0xB1, 0xCF, 0x80, 0xCE, 0xBF, 0xCF, 0x84 };
+static const symbol s_55_29[8] = { 0xCE, 0xBF, 0xCE, 0xBC, 0xCE, 0xBF, 0xCF, 0x84 };
+static const symbol s_55_30[10] = { 0xCE, 0xBD, 0xCE, 0xBF, 0xCE, 0xBC, 0xCE, 0xBF, 0xCF, 0x84 };
+static const symbol s_55_31[6] = { 0xCE, 0xBD, 0xCE, 0xB1, 0xCF, 0x85 };
+static const symbol s_55_32[10] = { 0xCF, 0x80, 0xCE, 0xBF, 0xCE, 0xBB, 0xCF, 0x85, 0xCF, 0x86 };
+static const symbol s_55_33[4] = { 0xCE, 0xB1, 0xCF, 0x86 };
+static const symbol s_55_34[6] = { 0xCE, 0xBE, 0xCE, 0xB5, 0xCF, 0x86 };
+static const symbol s_55_35[8] = { 0xCE, 0xB1, 0xCE, 0xB4, 0xCE, 0xB7, 0xCF, 0x86 };
+static const symbol s_55_36[8] = { 0xCF, 0x80, 0xCE, 0xB1, 0xCE, 0xBC, 0xCF, 0x86 };
+static const symbol s_55_37[12] = { 0xCE, 0xB1, 0xCE, 0xBC, 0xCE, 0xB1, 0xCE, 0xBB, 0xCE, 0xBB, 0xCE, 0xB9 };
+static const symbol s_55_38[2] = { 0xCE, 0xBB };
+static const symbol s_55_39[8] = { 0xCE, 0xB1, 0xCE, 0xBC, 0xCE, 0xB1, 0xCE, 0xBB };
+static const symbol s_55_40[2] = { 0xCE, 0xBC };
+static const symbol s_55_41[10] = { 0xCE, 0xBF, 0xCF, 0x85, 0xCE, 0xBB, 0xCE, 0xB1, 0xCE, 0xBC };
+static const symbol s_55_42[4] = { 0xCE, 0xB5, 0xCE, 0xBD };
+static const symbol s_55_43[12] = { 0xCE, 0xB4, 0xCE, 0xB5, 0xCF, 0x81, 0xCE, 0xB2, 0xCE, 0xB5, 0xCE, 0xBD };
+
+static const struct among a_55[44] =
+{
+{ 2, s_55_0, -1, 1, 0},
+{ 6, s_55_1, 0, 1, 0},
+{ 8, s_55_2, 0, 1, 0},
+{ 10, s_55_3, 0, 1, 0},
+{ 8, s_55_4, 0, 1, 0},
+{ 8, s_55_5, 0, 1, 0},
+{ 16, s_55_6, 0, 1, 0},
+{ 14, s_55_7, 0, 1, 0},
+{ 12, s_55_8, 0, 1, 0},
+{ 8, s_55_9, 0, 1, 0},
+{ 16, s_55_10, 0, 1, 0},
+{ 8, s_55_11, 0, 1, 0},
+{ 2, s_55_12, -1, 1, 0},
+{ 4, s_55_13, 12, 1, 0},
+{ 6, s_55_14, 12, 1, 0},
+{ 10, s_55_15, 12, 1, 0},
+{ 6, s_55_16, 12, 1, 0},
+{ 8, s_55_17, 16, 1, 0},
+{ 8, s_55_18, 12, 1, 0},
+{ 2, s_55_19, -1, 1, 0},
+{ 10, s_55_20, 19, 1, 0},
+{ 10, s_55_21, 19, 1, 0},
+{ 10, s_55_22, 19, 1, 0},
+{ 12, s_55_23, 19, 1, 0},
+{ 8, s_55_24, 19, 1, 0},
+{ 8, s_55_25, 19, 1, 0},
+{ 8, s_55_26, 19, 1, 0},
+{ 8, s_55_27, 19, 1, 0},
+{ 8, s_55_28, 19, 1, 0},
+{ 8, s_55_29, 19, 1, 0},
+{ 10, s_55_30, 29, 1, 0},
+{ 6, s_55_31, -1, 1, 0},
+{ 10, s_55_32, -1, 1, 0},
+{ 4, s_55_33, -1, 1, 0},
+{ 6, s_55_34, -1, 1, 0},
+{ 8, s_55_35, -1, 1, 0},
+{ 8, s_55_36, -1, 1, 0},
+{ 12, s_55_37, -1, 1, 0},
+{ 2, s_55_38, -1, 1, 0},
+{ 8, s_55_39, 38, 1, 0},
+{ 2, s_55_40, -1, 1, 0},
+{ 10, s_55_41, 40, 1, 0},
+{ 4, s_55_42, -1, 1, 0},
+{ 12, s_55_43, 42, 1, 0}
+};
+
+static const symbol s_56_0[8] = { 0xCE, 0xB1, 0xCE, 0xB3, 0xCE, 0xB5, 0xCF, 0x83 };
+static const symbol s_56_1[6] = { 0xCE, 0xB1, 0xCE, 0xB3, 0xCE, 0xB1 };
+static const symbol s_56_2[6] = { 0xCE, 0xB1, 0xCE, 0xB3, 0xCE, 0xB5 };
+
+static const struct among a_56[3] =
+{
+{ 8, s_56_0, -1, 1, 0},
+{ 6, s_56_1, -1, 1, 0},
+{ 6, s_56_2, -1, 1, 0}
+};
+
+static const symbol s_57_0[8] = { 0xCE, 0xB7, 0xCF, 0x83, 0xCE, 0xBF, 0xCF, 0x85 };
+static const symbol s_57_1[6] = { 0xCE, 0xB7, 0xCF, 0x83, 0xCE, 0xB1 };
+static const symbol s_57_2[6] = { 0xCE, 0xB7, 0xCF, 0x83, 0xCE, 0xB5 };
+
+static const struct among a_57[3] =
+{
+{ 8, s_57_0, -1, 1, 0},
+{ 6, s_57_1, -1, 1, 0},
+{ 6, s_57_2, -1, 1, 0}
+};
+
+static const symbol s_58_0[2] = { 0xCE, 0xBD };
+static const symbol s_58_1[10] = { 0xCE, 0xB5, 0xCF, 0x80, 0xCF, 0x84, 0xCE, 0xB1, 0xCE, 0xBD };
+static const symbol s_58_2[14] = { 0xCE, 0xB4, 0xCF, 0x89, 0xCE, 0xB4, 0xCE, 0xB5, 0xCE, 0xBA, 0xCE, 0xB1, 0xCE, 0xBD };
+static const symbol s_58_3[12] = { 0xCF, 0x87, 0xCE, 0xB5, 0xCF, 0x81, 0xCF, 0x83, 0xCE, 0xBF, 0xCE, 0xBD };
+static const symbol s_58_4[14] = { 0xCE, 0xBC, 0xCE, 0xB5, 0xCE, 0xB3, 0xCE, 0xB1, 0xCE, 0xBB, 0xCE, 0xBF, 0xCE, 0xBD };
+static const symbol s_58_5[12] = { 0xCE, 0xB5, 0xCF, 0x81, 0xCE, 0xB7, 0xCE, 0xBC, 0xCE, 0xBF, 0xCE, 0xBD };
+
+static const struct among a_58[6] =
+{
+{ 2, s_58_0, -1, 1, 0},
+{ 10, s_58_1, 0, 1, 0},
+{ 14, s_58_2, 0, 1, 0},
+{ 12, s_58_3, 0, 1, 0},
+{ 14, s_58_4, 0, 1, 0},
+{ 12, s_58_5, 0, 1, 0}
+};
+
+static const symbol s_59_0[8] = { 0xCE, 0xB7, 0xCF, 0x83, 0xCF, 0x84, 0xCE, 0xB5 };
+
+static const struct among a_59[1] =
+{
+{ 8, s_59_0, -1, 1, 0}
+};
+
+static const symbol s_60_0[4] = { 0xCF, 0x87, 0xCF, 0x81 };
+static const symbol s_60_1[10] = { 0xCE, 0xB4, 0xCF, 0x85, 0xCF, 0x83, 0xCF, 0x87, 0xCF, 0x81 };
+static const symbol s_60_2[8] = { 0xCE, 0xB5, 0xCF, 0x85, 0xCF, 0x87, 0xCF, 0x81 };
+static const symbol s_60_3[6] = { 0xCE, 0xB1, 0xCF, 0x87, 0xCF, 0x81 };
+static const symbol s_60_4[14] = { 0xCE, 0xBA, 0xCE, 0xBF, 0xCE, 0xB9, 0xCE, 0xBD, 0xCE, 0xBF, 0xCF, 0x87, 0xCF, 0x81 };
+static const symbol s_60_5[12] = { 0xCF, 0x80, 0xCE, 0xB1, 0xCE, 0xBB, 0xCE, 0xB9, 0xCE, 0xBC, 0xCF, 0x88 };
+static const symbol s_60_6[4] = { 0xCF, 0x83, 0xCE, 0xB2 };
+static const symbol s_60_7[6] = { 0xCE, 0xB1, 0xCF, 0x83, 0xCE, 0xB2 };
+static const symbol s_60_8[6] = { 0xCE, 0xB1, 0xCF, 0x80, 0xCE, 0xBB };
+static const symbol s_60_9[10] = { 0xCE, 0xB1, 0xCE, 0xB5, 0xCE, 0xB9, 0xCE, 0xBC, 0xCE, 0xBD };
+
+static const struct among a_60[10] =
+{
+{ 4, s_60_0, -1, 1, 0},
+{ 10, s_60_1, 0, 1, 0},
+{ 8, s_60_2, 0, 1, 0},
+{ 6, s_60_3, 0, 1, 0},
+{ 14, s_60_4, 0, 1, 0},
+{ 12, s_60_5, -1, 1, 0},
+{ 4, s_60_6, -1, 1, 0},
+{ 6, s_60_7, 6, 1, 0},
+{ 6, s_60_8, -1, 1, 0},
+{ 10, s_60_9, -1, 1, 0}
+};
+
+static const symbol s_61_0[8] = { 0xCE, 0xBF, 0xCF, 0x85, 0xCE, 0xBD, 0xCE, 0xB5 };
+static const symbol s_61_1[12] = { 0xCE, 0xB7, 0xCF, 0x83, 0xCE, 0xBF, 0xCF, 0x85, 0xCE, 0xBD, 0xCE, 0xB5 };
+static const symbol s_61_2[12] = { 0xCE, 0xB7, 0xCE, 0xB8, 0xCE, 0xBF, 0xCF, 0x85, 0xCE, 0xBD, 0xCE, 0xB5 };
+
+static const struct among a_61[3] =
+{
+{ 8, s_61_0, -1, 1, 0},
+{ 12, s_61_1, 0, 1, 0},
+{ 12, s_61_2, 0, 1, 0}
+};
+
+static const symbol s_62_0[2] = { 0xCF, 0x81 };
+static const symbol s_62_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_62_2[18] = { 0xCE, 0xBA, 0xCE, 0xB1, 0xCE, 0xBA, 0xCE, 0xBF, 0xCE, 0xBC, 0xCE, 0xBF, 0xCF, 0x85, 0xCF, 0x84, 0xCF, 0x83 };
+static const symbol s_62_3[6] = { 0xCF, 0x83, 0xCF, 0x80, 0xCE, 0xB9 };
+static const symbol s_62_4[2] = { 0xCE, 0xBD };
+static const symbol s_62_5[8] = { 0xCE, 0xB5, 0xCE, 0xBE, 0xCF, 0x89, 0xCE, 0xBD };
+
+static const struct among a_62[6] =
+{
+{ 2, s_62_0, -1, 1, 0},
+{ 22, s_62_1, -1, 1, 0},
+{ 18, s_62_2, -1, 1, 0},
+{ 6, s_62_3, -1, 1, 0},
+{ 2, s_62_4, -1, 1, 0},
+{ 8, s_62_5, 4, 1, 0}
+};
+
+static const symbol s_63_0[8] = { 0xCE, 0xBF, 0xCF, 0x85, 0xCE, 0xBC, 0xCE, 0xB5 };
+static const symbol s_63_1[12] = { 0xCE, 0xB7, 0xCF, 0x83, 0xCE, 0xBF, 0xCF, 0x85, 0xCE, 0xBC, 0xCE, 0xB5 };
+static const symbol s_63_2[12] = { 0xCE, 0xB7, 0xCE, 0xB8, 0xCE, 0xBF, 0xCF, 0x85, 0xCE, 0xBC, 0xCE, 0xB5 };
+
+static const struct among a_63[3] =
+{
+{ 8, s_63_0, -1, 1, 0},
+{ 12, s_63_1, 0, 1, 0},
+{ 12, s_63_2, 0, 1, 0}
+};
+
+static const symbol s_64_0[10] = { 0xCE, 0xB1, 0xCF, 0x83, 0xCE, 0xBF, 0xCF, 0x85, 0xCF, 0x83 };
+static const symbol s_64_1[16] = { 0xCF, 0x80, 0xCE, 0xB1, 0xCF, 0x81, 0xCE, 0xB1, 0xCF, 0x83, 0xCE, 0xBF, 0xCF, 0x85, 0xCF, 0x83 };
+static const symbol s_64_2[16] = { 0xCE, 0xB1, 0xCE, 0xBB, 0xCE, 0xBB, 0xCE, 0xBF, 0xCF, 0x83, 0xCE, 0xBF, 0xCF, 0x85, 0xCF, 0x83 };
+static const symbol s_64_3[2] = { 0xCF, 0x86 };
+static const symbol s_64_4[2] = { 0xCF, 0x87 };
+static const symbol s_64_5[4] = { 0xCE, 0xB1, 0xCE, 0xB6 };
+static const symbol s_64_6[12] = { 0xCF, 0x89, 0xCF, 0x81, 0xCE, 0xB9, 0xCE, 0xBF, 0xCF, 0x80, 0xCE, 0xBB };
+
+static const struct among a_64[7] =
+{
+{ 10, s_64_0, -1, 1, 0},
+{ 16, s_64_1, 0, 1, 0},
+{ 16, s_64_2, -1, 1, 0},
+{ 2, s_64_3, -1, 1, 0},
+{ 2, s_64_4, -1, 1, 0},
+{ 4, s_64_5, -1, 1, 0},
+{ 12, s_64_6, -1, 1, 0}
+};
+
+static const symbol s_65_0[10] = { 0xCE, 0xBC, 0xCE, 0xB1, 0xCF, 0x84, 0xCE, 0xBF, 0xCF, 0x83 };
+static const symbol s_65_1[8] = { 0xCE, 0xBC, 0xCE, 0xB1, 0xCF, 0x84, 0xCE, 0xB1 };
+static const symbol s_65_2[10] = { 0xCE, 0xBC, 0xCE, 0xB1, 0xCF, 0x84, 0xCF, 0x89, 0xCE, 0xBD };
+
+static const struct among a_65[3] =
+{
+{ 10, s_65_0, -1, 1, 0},
+{ 8, s_65_1, -1, 1, 0},
+{ 10, s_65_2, -1, 1, 0}
+};
+
+static const symbol s_66_0[4] = { 0xCF, 0x85, 0xCF, 0x83 };
+static const symbol s_66_1[6] = { 0xCE, 0xBF, 0xCF, 0x85, 0xCF, 0x83 };
+static const symbol s_66_2[4] = { 0xCE, 0xB1, 0xCF, 0x83 };
+static const symbol s_66_3[4] = { 0xCE, 0xB5, 0xCF, 0x83 };
+static const symbol s_66_4[8] = { 0xCE, 0xB7, 0xCF, 0x83, 0xCE, 0xB5, 0xCF, 0x83 };
+static const symbol s_66_5[8] = { 0xCE, 0xB7, 0xCE, 0xB4, 0xCE, 0xB5, 0xCF, 0x83 };
+static const symbol s_66_6[4] = { 0xCE, 0xB7, 0xCF, 0x83 };
+static const symbol s_66_7[6] = { 0xCE, 0xB5, 0xCE, 0xB9, 0xCF, 0x83 };
+static const symbol s_66_8[10] = { 0xCE, 0xB7, 0xCE, 0xB8, 0xCE, 0xB5, 0xCE, 0xB9, 0xCF, 0x83 };
+static const symbol s_66_9[4] = { 0xCE, 0xBF, 0xCF, 0x83 };
+static const symbol s_66_10[2] = { 0xCF, 0x85 };
+static const symbol s_66_11[4] = { 0xCE, 0xBF, 0xCF, 0x85 };
+static const symbol s_66_12[2] = { 0xCF, 0x89 };
+static const symbol s_66_13[6] = { 0xCE, 0xB7, 0xCF, 0x83, 0xCF, 0x89 };
+static const symbol s_66_14[4] = { 0xCE, 0xB1, 0xCF, 0x89 };
+static const symbol s_66_15[6] = { 0xCE, 0xB7, 0xCE, 0xB8, 0xCF, 0x89 };
+static const symbol s_66_16[2] = { 0xCE, 0xB1 };
+static const symbol s_66_17[10] = { 0xCE, 0xB9, 0xCE, 0xBF, 0xCF, 0x85, 0xCE, 0xBC, 0xCE, 0xB1 };
+static const symbol s_66_18[12] = { 0xCE, 0xBF, 0xCF, 0x83, 0xCE, 0xBF, 0xCF, 0x85, 0xCE, 0xBD, 0xCE, 0xB1 };
+static const symbol s_66_19[14] = { 0xCE, 0xB9, 0xCE, 0xBF, 0xCF, 0x83, 0xCE, 0xBF, 0xCF, 0x85, 0xCE, 0xBD, 0xCE, 0xB1 };
+static const symbol s_66_20[12] = { 0xCE, 0xBF, 0xCE, 0xBC, 0xCE, 0xBF, 0xCF, 0x85, 0xCE, 0xBD, 0xCE, 0xB1 };
+static const symbol s_66_21[14] = { 0xCE, 0xB9, 0xCE, 0xBF, 0xCE, 0xBC, 0xCE, 0xBF, 0xCF, 0x85, 0xCE, 0xBD, 0xCE, 0xB1 };
+static const symbol s_66_22[2] = { 0xCE, 0xB5 };
+static const symbol s_66_23[14] = { 0xCE, 0xB9, 0xCE, 0xB5, 0xCF, 0x83, 0xCE, 0xB1, 0xCF, 0x83, 0xCF, 0x84, 0xCE, 0xB5 };
+static const symbol s_66_24[12] = { 0xCE, 0xBF, 0xCF, 0x83, 0xCE, 0xB1, 0xCF, 0x83, 0xCF, 0x84, 0xCE, 0xB5 };
+static const symbol s_66_25[14] = { 0xCE, 0xB9, 0xCE, 0xBF, 0xCF, 0x83, 0xCE, 0xB1, 0xCF, 0x83, 0xCF, 0x84, 0xCE, 0xB5 };
+static const symbol s_66_26[14] = { 0xCE, 0xBF, 0xCF, 0x85, 0xCE, 0xBC, 0xCE, 0xB1, 0xCF, 0x83, 0xCF, 0x84, 0xCE, 0xB5 };
+static const symbol s_66_27[16] = { 0xCE, 0xB9, 0xCE, 0xBF, 0xCF, 0x85, 0xCE, 0xBC, 0xCE, 0xB1, 0xCF, 0x83, 0xCF, 0x84, 0xCE, 0xB5 };
+static const symbol s_66_28[14] = { 0xCE, 0xB9, 0xCE, 0xB5, 0xCE, 0xBC, 0xCE, 0xB1, 0xCF, 0x83, 0xCF, 0x84, 0xCE, 0xB5 };
+static const symbol s_66_29[12] = { 0xCE, 0xBF, 0xCF, 0x85, 0xCF, 0x83, 0xCE, 0xB1, 0xCF, 0x84, 0xCE, 0xB5 };
+static const symbol s_66_30[10] = { 0xCE, 0xB7, 0xCF, 0x83, 0xCE, 0xB1, 0xCF, 0x84, 0xCE, 0xB5 };
+static const symbol s_66_31[10] = { 0xCE, 0xB1, 0xCE, 0xB3, 0xCE, 0xB1, 0xCF, 0x84, 0xCE, 0xB5 };
+static const symbol s_66_32[10] = { 0xCE, 0xB7, 0xCE, 0xBA, 0xCE, 0xB1, 0xCF, 0x84, 0xCE, 0xB5 };
+static const symbol s_66_33[14] = { 0xCE, 0xB7, 0xCE, 0xB8, 0xCE, 0xB7, 0xCE, 0xBA, 0xCE, 0xB1, 0xCF, 0x84, 0xCE, 0xB5 };
+static const symbol s_66_34[8] = { 0xCE, 0xB5, 0xCE, 0xB9, 0xCF, 0x84, 0xCE, 0xB5 };
+static const symbol s_66_35[12] = { 0xCE, 0xB7, 0xCE, 0xB8, 0xCE, 0xB5, 0xCE, 0xB9, 0xCF, 0x84, 0xCE, 0xB5 };
+static const symbol s_66_36[2] = { 0xCE, 0xB7 };
+static const symbol s_66_37[2] = { 0xCE, 0xB9 };
+static const symbol s_66_38[8] = { 0xCE, 0xB1, 0xCF, 0x83, 0xCE, 0xB1, 0xCE, 0xB9 };
+static const symbol s_66_39[8] = { 0xCE, 0xB5, 0xCF, 0x83, 0xCE, 0xB1, 0xCE, 0xB9 };
+static const symbol s_66_40[10] = { 0xCE, 0xB9, 0xCE, 0xB5, 0xCF, 0x83, 0xCE, 0xB1, 0xCE, 0xB9 };
+static const symbol s_66_41[8] = { 0xCE, 0xB1, 0xCF, 0x84, 0xCE, 0xB1, 0xCE, 0xB9 };
+static const symbol s_66_42[8] = { 0xCE, 0xB5, 0xCF, 0x84, 0xCE, 0xB1, 0xCE, 0xB9 };
+static const symbol s_66_43[10] = { 0xCE, 0xB9, 0xCE, 0xB5, 0xCF, 0x84, 0xCE, 0xB1, 0xCE, 0xB9 };
+static const symbol s_66_44[12] = { 0xCE, 0xBF, 0xCF, 0x85, 0xCE, 0xBD, 0xCF, 0x84, 0xCE, 0xB1, 0xCE, 0xB9 };
+static const symbol s_66_45[14] = { 0xCE, 0xB9, 0xCE, 0xBF, 0xCF, 0x85, 0xCE, 0xBD, 0xCF, 0x84, 0xCE, 0xB1, 0xCE, 0xB9 };
+static const symbol s_66_46[10] = { 0xCE, 0xBF, 0xCE, 0xBD, 0xCF, 0x84, 0xCE, 0xB1, 0xCE, 0xB9 };
+static const symbol s_66_47[10] = { 0xCE, 0xBF, 0xCF, 0x85, 0xCE, 0xBC, 0xCE, 0xB1, 0xCE, 0xB9 };
+static const symbol s_66_48[8] = { 0xCE, 0xB1, 0xCE, 0xBC, 0xCE, 0xB1, 0xCE, 0xB9 };
+static const symbol s_66_49[10] = { 0xCE, 0xB9, 0xCE, 0xB5, 0xCE, 0xBC, 0xCE, 0xB1, 0xCE, 0xB9 };
+static const symbol s_66_50[8] = { 0xCE, 0xBF, 0xCE, 0xBC, 0xCE, 0xB1, 0xCE, 0xB9 };
+static const symbol s_66_51[4] = { 0xCE, 0xB5, 0xCE, 0xB9 };
+static const symbol s_66_52[8] = { 0xCE, 0xB7, 0xCF, 0x83, 0xCE, 0xB5, 0xCE, 0xB9 };
+static const symbol s_66_53[6] = { 0xCE, 0xB1, 0xCE, 0xB5, 0xCE, 0xB9 };
+static const symbol s_66_54[8] = { 0xCE, 0xB7, 0xCE, 0xB8, 0xCE, 0xB5, 0xCE, 0xB9 };
+static const symbol s_66_55[4] = { 0xCE, 0xBF, 0xCE, 0xB9 };
+static const symbol s_66_56[6] = { 0xCE, 0xBF, 0xCF, 0x85, 0xCE, 0xBD };
+static const symbol s_66_57[10] = { 0xCE, 0xB7, 0xCF, 0x83, 0xCE, 0xBF, 0xCF, 0x85, 0xCE, 0xBD };
+static const symbol s_66_58[10] = { 0xCE, 0xBF, 0xCF, 0x83, 0xCE, 0xBF, 0xCF, 0x85, 0xCE, 0xBD };
+static const symbol s_66_59[12] = { 0xCE, 0xB9, 0xCE, 0xBF, 0xCF, 0x83, 0xCE, 0xBF, 0xCF, 0x85, 0xCE, 0xBD };
+static const symbol s_66_60[10] = { 0xCE, 0xB7, 0xCE, 0xB8, 0xCE, 0xBF, 0xCF, 0x85, 0xCE, 0xBD };
+static const symbol s_66_61[10] = { 0xCE, 0xBF, 0xCE, 0xBC, 0xCE, 0xBF, 0xCF, 0x85, 0xCE, 0xBD };
+static const symbol s_66_62[12] = { 0xCE, 0xB9, 0xCE, 0xBF, 0xCE, 0xBC, 0xCE, 0xBF, 0xCF, 0x85, 0xCE, 0xBD };
+static const symbol s_66_63[4] = { 0xCF, 0x89, 0xCE, 0xBD };
+static const symbol s_66_64[8] = { 0xCE, 0xB7, 0xCE, 0xB4, 0xCF, 0x89, 0xCE, 0xBD };
+static const symbol s_66_65[4] = { 0xCE, 0xB1, 0xCE, 0xBD };
+static const symbol s_66_66[10] = { 0xCE, 0xBF, 0xCF, 0x85, 0xCF, 0x83, 0xCE, 0xB1, 0xCE, 0xBD };
+static const symbol s_66_67[16] = { 0xCE, 0xBF, 0xCE, 0xBD, 0xCF, 0x84, 0xCE, 0xBF, 0xCF, 0x85, 0xCF, 0x83, 0xCE, 0xB1, 0xCE, 0xBD };
+static const symbol s_66_68[18] = { 0xCE, 0xB9, 0xCE, 0xBF, 0xCE, 0xBD, 0xCF, 0x84, 0xCE, 0xBF, 0xCF, 0x85, 0xCF, 0x83, 0xCE, 0xB1, 0xCE, 0xBD };
+static const symbol s_66_69[8] = { 0xCE, 0xB7, 0xCF, 0x83, 0xCE, 0xB1, 0xCE, 0xBD };
+static const symbol s_66_70[14] = { 0xCE, 0xBF, 0xCF, 0x83, 0xCE, 0xB1, 0xCF, 0x83, 0xCF, 0x84, 0xCE, 0xB1, 0xCE, 0xBD };
+static const symbol s_66_71[16] = { 0xCE, 0xB9, 0xCE, 0xBF, 0xCF, 0x83, 0xCE, 0xB1, 0xCF, 0x83, 0xCF, 0x84, 0xCE, 0xB1, 0xCE, 0xBD };
+static const symbol s_66_72[14] = { 0xCE, 0xBF, 0xCE, 0xBC, 0xCE, 0xB1, 0xCF, 0x83, 0xCF, 0x84, 0xCE, 0xB1, 0xCE, 0xBD };
+static const symbol s_66_73[16] = { 0xCE, 0xB9, 0xCE, 0xBF, 0xCE, 0xBC, 0xCE, 0xB1, 0xCF, 0x83, 0xCF, 0x84, 0xCE, 0xB1, 0xCE, 0xBD };
+static const symbol s_66_74[12] = { 0xCE, 0xBF, 0xCF, 0x85, 0xCE, 0xBD, 0xCF, 0x84, 0xCE, 0xB1, 0xCE, 0xBD };
+static const symbol s_66_75[14] = { 0xCE, 0xB9, 0xCE, 0xBF, 0xCF, 0x85, 0xCE, 0xBD, 0xCF, 0x84, 0xCE, 0xB1, 0xCE, 0xBD };
+static const symbol s_66_76[10] = { 0xCE, 0xBF, 0xCE, 0xBD, 0xCF, 0x84, 0xCE, 0xB1, 0xCE, 0xBD };
+static const symbol s_66_77[12] = { 0xCE, 0xB9, 0xCE, 0xBF, 0xCE, 0xBD, 0xCF, 0x84, 0xCE, 0xB1, 0xCE, 0xBD };
+static const symbol s_66_78[8] = { 0xCE, 0xBF, 0xCF, 0x84, 0xCE, 0xB1, 0xCE, 0xBD };
+static const symbol s_66_79[10] = { 0xCE, 0xB9, 0xCE, 0xBF, 0xCF, 0x84, 0xCE, 0xB1, 0xCE, 0xBD };
+static const symbol s_66_80[8] = { 0xCE, 0xB1, 0xCE, 0xB3, 0xCE, 0xB1, 0xCE, 0xBD };
+static const symbol s_66_81[8] = { 0xCE, 0xB7, 0xCE, 0xBA, 0xCE, 0xB1, 0xCE, 0xBD };
+static const symbol s_66_82[12] = { 0xCE, 0xB7, 0xCE, 0xB8, 0xCE, 0xB7, 0xCE, 0xBA, 0xCE, 0xB1, 0xCE, 0xBD };
+static const symbol s_66_83[2] = { 0xCE, 0xBF };
+
+static const struct among a_66[84] =
+{
+{ 4, s_66_0, -1, 1, 0},
+{ 6, s_66_1, 0, 1, 0},
+{ 4, s_66_2, -1, 1, 0},
+{ 4, s_66_3, -1, 1, 0},
+{ 8, s_66_4, 3, 1, 0},
+{ 8, s_66_5, 3, 1, 0},
+{ 4, s_66_6, -1, 1, 0},
+{ 6, s_66_7, -1, 1, 0},
+{ 10, s_66_8, 7, 1, 0},
+{ 4, s_66_9, -1, 1, 0},
+{ 2, s_66_10, -1, 1, 0},
+{ 4, s_66_11, 10, 1, 0},
+{ 2, s_66_12, -1, 1, 0},
+{ 6, s_66_13, 12, 1, 0},
+{ 4, s_66_14, 12, 1, 0},
+{ 6, s_66_15, 12, 1, 0},
+{ 2, s_66_16, -1, 1, 0},
+{ 10, s_66_17, 16, 1, 0},
+{ 12, s_66_18, 16, 1, 0},
+{ 14, s_66_19, 18, 1, 0},
+{ 12, s_66_20, 16, 1, 0},
+{ 14, s_66_21, 20, 1, 0},
+{ 2, s_66_22, -1, 1, 0},
+{ 14, s_66_23, 22, 1, 0},
+{ 12, s_66_24, 22, 1, 0},
+{ 14, s_66_25, 24, 1, 0},
+{ 14, s_66_26, 22, 1, 0},
+{ 16, s_66_27, 26, 1, 0},
+{ 14, s_66_28, 22, 1, 0},
+{ 12, s_66_29, 22, 1, 0},
+{ 10, s_66_30, 22, 1, 0},
+{ 10, s_66_31, 22, 1, 0},
+{ 10, s_66_32, 22, 1, 0},
+{ 14, s_66_33, 32, 1, 0},
+{ 8, s_66_34, 22, 1, 0},
+{ 12, s_66_35, 34, 1, 0},
+{ 2, s_66_36, -1, 1, 0},
+{ 2, s_66_37, -1, 1, 0},
+{ 8, s_66_38, 37, 1, 0},
+{ 8, s_66_39, 37, 1, 0},
+{ 10, s_66_40, 39, 1, 0},
+{ 8, s_66_41, 37, 1, 0},
+{ 8, s_66_42, 37, 1, 0},
+{ 10, s_66_43, 42, 1, 0},
+{ 12, s_66_44, 37, 1, 0},
+{ 14, s_66_45, 44, 1, 0},
+{ 10, s_66_46, 37, 1, 0},
+{ 10, s_66_47, 37, 1, 0},
+{ 8, s_66_48, 37, 1, 0},
+{ 10, s_66_49, 37, 1, 0},
+{ 8, s_66_50, 37, 1, 0},
+{ 4, s_66_51, 37, 1, 0},
+{ 8, s_66_52, 51, 1, 0},
+{ 6, s_66_53, 51, 1, 0},
+{ 8, s_66_54, 51, 1, 0},
+{ 4, s_66_55, 37, 1, 0},
+{ 6, s_66_56, -1, 1, 0},
+{ 10, s_66_57, 56, 1, 0},
+{ 10, s_66_58, 56, 1, 0},
+{ 12, s_66_59, 58, 1, 0},
+{ 10, s_66_60, 56, 1, 0},
+{ 10, s_66_61, 56, 1, 0},
+{ 12, s_66_62, 61, 1, 0},
+{ 4, s_66_63, -1, 1, 0},
+{ 8, s_66_64, 63, 1, 0},
+{ 4, s_66_65, -1, 1, 0},
+{ 10, s_66_66, 65, 1, 0},
+{ 16, s_66_67, 66, 1, 0},
+{ 18, s_66_68, 67, 1, 0},
+{ 8, s_66_69, 65, 1, 0},
+{ 14, s_66_70, 65, 1, 0},
+{ 16, s_66_71, 70, 1, 0},
+{ 14, s_66_72, 65, 1, 0},
+{ 16, s_66_73, 72, 1, 0},
+{ 12, s_66_74, 65, 1, 0},
+{ 14, s_66_75, 74, 1, 0},
+{ 10, s_66_76, 65, 1, 0},
+{ 12, s_66_77, 76, 1, 0},
+{ 8, s_66_78, 65, 1, 0},
+{ 10, s_66_79, 78, 1, 0},
+{ 8, s_66_80, 65, 1, 0},
+{ 8, s_66_81, 65, 1, 0},
+{ 12, s_66_82, 81, 1, 0},
+{ 2, s_66_83, -1, 1, 0}
+};
+
+static const symbol s_67_0[10] = { 0xCE, 0xB5, 0xCF, 0x83, 0xCF, 0x84, 0xCE, 0xB5, 0xCF, 0x81 };
+static const symbol s_67_1[8] = { 0xCF, 0x85, 0xCF, 0x84, 0xCE, 0xB5, 0xCF, 0x81 };
+static const symbol s_67_2[8] = { 0xCF, 0x89, 0xCF, 0x84, 0xCE, 0xB5, 0xCF, 0x81 };
+static const symbol s_67_3[8] = { 0xCE, 0xBF, 0xCF, 0x84, 0xCE, 0xB5, 0xCF, 0x81 };
+static const symbol s_67_4[10] = { 0xCE, 0xB5, 0xCF, 0x83, 0xCF, 0x84, 0xCE, 0xB1, 0xCF, 0x84 };
+static const symbol s_67_5[8] = { 0xCF, 0x85, 0xCF, 0x84, 0xCE, 0xB1, 0xCF, 0x84 };
+static const symbol s_67_6[8] = { 0xCF, 0x89, 0xCF, 0x84, 0xCE, 0xB1, 0xCF, 0x84 };
+static const symbol s_67_7[8] = { 0xCE, 0xBF, 0xCF, 0x84, 0xCE, 0xB1, 0xCF, 0x84 };
+
+static const struct among a_67[8] =
+{
+{ 10, s_67_0, -1, 1, 0},
+{ 8, s_67_1, -1, 1, 0},
+{ 8, s_67_2, -1, 1, 0},
+{ 8, s_67_3, -1, 1, 0},
+{ 10, s_67_4, -1, 1, 0},
+{ 8, s_67_5, -1, 1, 0},
+{ 8, s_67_6, -1, 1, 0},
+{ 8, s_67_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) {
+ if (!(len_utf8(z->p) >= 3)) return 0;
+ return 1;
+}
+
+static int r_tolower(struct SN_env * z) {
+ int among_var;
+ while(1) {
+ int m1 = z->l - z->c; (void)m1;
+ z->ket = z->c;
+ among_var = find_among_b(z, a_0, 46);
+ if (!(among_var)) goto lab0;
+ z->bra = z->c;
+ switch (among_var) {
+ case 1:
+ { int ret = slice_from_s(z, 2, s_0);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 2:
+ { int ret = slice_from_s(z, 2, s_1);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 3:
+ { int ret = slice_from_s(z, 2, s_2);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 4:
+ { int ret = slice_from_s(z, 2, s_3);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 5:
+ { int ret = slice_from_s(z, 2, s_4);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 6:
+ { int ret = slice_from_s(z, 2, s_5);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 7:
+ { int ret = slice_from_s(z, 2, s_6);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 8:
+ { int ret = slice_from_s(z, 2, s_7);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 9:
+ { int ret = slice_from_s(z, 2, s_8);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 10:
+ { int ret = slice_from_s(z, 2, s_9);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 11:
+ { int ret = slice_from_s(z, 2, s_10);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 12:
+ { int ret = slice_from_s(z, 2, s_11);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 13:
+ { int ret = slice_from_s(z, 2, s_12);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 14:
+ { int ret = slice_from_s(z, 2, s_13);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 15:
+ { int ret = slice_from_s(z, 2, s_14);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 16:
+ { int ret = slice_from_s(z, 2, s_15);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 17:
+ { int ret = slice_from_s(z, 2, s_16);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 18:
+ { int ret = slice_from_s(z, 2, s_17);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 19:
+ { int ret = slice_from_s(z, 2, s_18);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 20:
+ { int ret = slice_from_s(z, 2, s_19);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 21:
+ { int ret = slice_from_s(z, 2, s_20);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 22:
+ { int ret = slice_from_s(z, 2, s_21);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 23:
+ { int ret = slice_from_s(z, 2, s_22);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 24:
+ { int ret = slice_from_s(z, 2, s_23);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 25:
+ { int ret = skip_b_utf8(z->p, z->c, z->lb, 1);
+ if (ret < 0) goto lab0;
+ z->c = ret;
+ }
+ break;
+ }
+ continue;
+ lab0:
+ z->c = z->l - m1;
+ break;
+ }
+ return 1;
+}
+
+static int r_step1(struct SN_env * z) {
+ int among_var;
+ z->ket = z->c;
+ among_var = find_among_b(z, a_1, 40);
+ if (!(among_var)) return 0;
+ z->bra = z->c;
+ switch (among_var) {
+ case 1:
+ { int ret = slice_from_s(z, 4, s_24);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 2:
+ { int ret = slice_from_s(z, 6, s_25);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 3:
+ { int ret = slice_from_s(z, 6, s_26);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 4:
+ { int ret = slice_from_s(z, 4, s_27);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 5:
+ { int ret = slice_from_s(z, 8, s_28);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 6:
+ { int ret = slice_from_s(z, 6, s_29);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 7:
+ { int ret = slice_from_s(z, 6, s_30);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 8:
+ { int ret = slice_from_s(z, 6, s_31);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 9:
+ { int ret = slice_from_s(z, 4, s_32);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 10:
+ { int ret = slice_from_s(z, 12, s_33);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 11:
+ { int ret = slice_from_s(z, 10, s_34);
+ if (ret < 0) return ret;
+ }
+ break;
+ }
+ z->I[0] = 0;
+ return 1;
+}
+
+static int r_steps1(struct SN_env * z) {
+ int among_var;
+ z->ket = z->c;
+ if (!(find_among_b(z, a_3, 14))) return 0;
+ z->bra = z->c;
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ z->I[0] = 0;
+ z->ket = z->c;
+ z->bra = z->c;
+ among_var = find_among_b(z, a_2, 31);
+ if (!(among_var)) return 0;
+ if (z->c > z->lb) return 0;
+ switch (among_var) {
+ case 1:
+ { int ret = slice_from_s(z, 2, s_35);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 2:
+ { int ret = slice_from_s(z, 4, s_36);
+ if (ret < 0) return ret;
+ }
+ break;
+ }
+ return 1;
+}
+
+static int r_steps2(struct SN_env * z) {
+ z->ket = z->c;
+ if (!(find_among_b(z, a_5, 7))) return 0;
+ z->bra = z->c;
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ z->I[0] = 0;
+ z->ket = z->c;
+ z->bra = z->c;
+ if (!(find_among_b(z, a_4, 8))) return 0;
+ if (z->c > z->lb) return 0;
+ { int ret = slice_from_s(z, 4, s_37);
+ if (ret < 0) return ret;
+ }
+ return 1;
+}
+
+static int r_steps3(struct SN_env * z) {
+ int among_var;
+ z->ket = z->c;
+ if (!(find_among_b(z, a_7, 7))) return 0;
+ z->bra = z->c;
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ z->I[0] = 0;
+ { int m1 = z->l - z->c; (void)m1;
+ if (!(eq_s_b(z, 6, s_38))) goto lab1;
+ if (z->c > z->lb) goto lab1;
+ { int ret = slice_from_s(z, 4, s_39);
+ if (ret < 0) return ret;
+ }
+ goto lab0;
+ lab1:
+ z->c = z->l - m1;
+ z->ket = z->c;
+ z->bra = z->c;
+ among_var = find_among_b(z, a_6, 32);
+ if (!(among_var)) return 0;
+ if (z->c > z->lb) return 0;
+ switch (among_var) {
+ case 1:
+ { int ret = slice_from_s(z, 2, s_40);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 2:
+ { int ret = slice_from_s(z, 4, s_41);
+ if (ret < 0) return ret;
+ }
+ break;
+ }
+ }
+lab0:
+ return 1;
+}
+
+static int r_steps4(struct SN_env * z) {
+ z->ket = z->c;
+ if (!(find_among_b(z, a_9, 7))) return 0;
+ z->bra = z->c;
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ z->I[0] = 0;
+ z->ket = z->c;
+ z->bra = z->c;
+ if (z->c - 3 <= z->lb || z->p[z->c - 1] >> 5 != 5 || !((-2145255424 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
+ if (!(find_among_b(z, a_8, 19))) return 0;
+ if (z->c > z->lb) return 0;
+ { int ret = slice_from_s(z, 2, s_42);
+ if (ret < 0) return ret;
+ }
+ return 1;
+}
+
+static int r_steps5(struct SN_env * z) {
+ int among_var;
+ z->ket = z->c;
+ if (!(find_among_b(z, a_11, 11))) return 0;
+ z->bra = z->c;
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ z->I[0] = 0;
+ z->ket = z->c;
+ z->bra = z->c;
+ among_var = find_among_b(z, a_10, 40);
+ if (!(among_var)) return 0;
+ if (z->c > z->lb) return 0;
+ switch (among_var) {
+ case 1:
+ { int ret = slice_from_s(z, 2, s_43);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 2:
+ { int ret = slice_from_s(z, 6, s_44);
+ if (ret < 0) return ret;
+ }
+ break;
+ }
+ return 1;
+}
+
+static int r_steps6(struct SN_env * z) {
+ int among_var;
+ z->ket = z->c;
+ if (!(find_among_b(z, a_14, 6))) return 0;
+ z->bra = z->c;
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ z->I[0] = 0;
+ { int m1 = z->l - z->c; (void)m1;
+ z->ket = z->c;
+ z->bra = z->c;
+ if (z->c - 3 <= z->lb || z->p[z->c - 1] != 181) goto lab1;
+ among_var = find_among_b(z, a_12, 7);
+ if (!(among_var)) goto lab1;
+ if (z->c > z->lb) goto lab1;
+ switch (among_var) {
+ case 1:
+ { int ret = slice_from_s(z, 6, s_45);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 2:
+ { int ret = slice_from_s(z, 2, s_46);
+ if (ret < 0) return ret;
+ }
+ break;
+ }
+ goto lab0;
+ lab1:
+ z->c = z->l - m1;
+ z->ket = z->c;
+ if (z->c - 9 <= z->lb || (z->p[z->c - 1] != 186 && z->p[z->c - 1] != 189)) return 0;
+ among_var = find_among_b(z, a_13, 10);
+ if (!(among_var)) return 0;
+ z->bra = z->c;
+ switch (among_var) {
+ case 1:
+ { int ret = slice_from_s(z, 12, s_47);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 2:
+ { int ret = slice_from_s(z, 8, s_48);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 3:
+ { int ret = slice_from_s(z, 10, s_49);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 4:
+ { int ret = slice_from_s(z, 6, s_50);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 5:
+ { int ret = slice_from_s(z, 12, s_51);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 6:
+ { int ret = slice_from_s(z, 10, s_52);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 7:
+ { int ret = slice_from_s(z, 6, s_53);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 8:
+ { int ret = slice_from_s(z, 16, s_54);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 9:
+ { int ret = slice_from_s(z, 12, s_55);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 10:
+ { int ret = slice_from_s(z, 10, s_56);
+ if (ret < 0) return ret;
+ }
+ break;
+ }
+ }
+lab0:
+ return 1;
+}
+
+static int r_steps7(struct SN_env * z) {
+ z->ket = z->c;
+ if (z->c - 9 <= z->lb || (z->p[z->c - 1] != 177 && z->p[z->c - 1] != 185)) return 0;
+ if (!(find_among_b(z, a_16, 4))) return 0;
+ z->bra = z->c;
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ z->I[0] = 0;
+ z->ket = z->c;
+ z->bra = z->c;
+ if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 131 && z->p[z->c - 1] != 135)) return 0;
+ if (!(find_among_b(z, a_15, 2))) return 0;
+ if (z->c > z->lb) return 0;
+ { int ret = slice_from_s(z, 8, s_57);
+ if (ret < 0) return ret;
+ }
+ return 1;
+}
+
+static int r_steps8(struct SN_env * z) {
+ int among_var;
+ z->ket = z->c;
+ if (!(find_among_b(z, a_18, 8))) return 0;
+ z->bra = z->c;
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ z->I[0] = 0;
+ { int m1 = z->l - z->c; (void)m1;
+ z->ket = z->c;
+ z->bra = z->c;
+ among_var = find_among_b(z, a_17, 46);
+ if (!(among_var)) goto lab1;
+ if (z->c > z->lb) goto lab1;
+ switch (among_var) {
+ case 1:
+ { int ret = slice_from_s(z, 4, s_58);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 2:
+ { int ret = slice_from_s(z, 6, s_59);
+ if (ret < 0) return ret;
+ }
+ break;
+ }
+ goto lab0;
+ lab1:
+ z->c = z->l - m1;
+ z->ket = z->c;
+ z->bra = z->c;
+ if (!(eq_s_b(z, 6, s_60))) return 0;
+ { int ret = slice_from_s(z, 6, s_61);
+ if (ret < 0) return ret;
+ }
+ }
+lab0:
+ return 1;
+}
+
+static int r_steps9(struct SN_env * z) {
+ z->ket = z->c;
+ if (z->c - 7 <= z->lb || z->p[z->c - 1] >> 5 != 5 || !((-1610481664 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
+ if (!(find_among_b(z, a_21, 3))) return 0;
+ z->bra = z->c;
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ z->I[0] = 0;
+ { int m1 = z->l - z->c; (void)m1;
+ z->ket = z->c;
+ z->bra = z->c;
+ if (!(find_among_b(z, a_19, 4))) goto lab1;
+ if (z->c > z->lb) goto lab1;
+ { int ret = slice_from_s(z, 4, s_62);
+ if (ret < 0) return ret;
+ }
+ goto lab0;
+ lab1:
+ z->c = z->l - m1;
+ z->ket = z->c;
+ z->bra = z->c;
+ if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 181 && z->p[z->c - 1] != 189)) return 0;
+ if (!(find_among_b(z, a_20, 2))) return 0;
+ { int ret = slice_from_s(z, 4, s_63);
+ if (ret < 0) return ret;
+ }
+ }
+lab0:
+ return 1;
+}
+
+static int r_steps10(struct SN_env * z) {
+ z->ket = z->c;
+ if (!(find_among_b(z, a_23, 4))) return 0;
+ z->bra = z->c;
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ z->I[0] = 0;
+ z->ket = z->c;
+ z->bra = z->c;
+ if (!(find_among_b(z, a_22, 7))) return 0;
+ if (z->c > z->lb) return 0;
+ { int ret = slice_from_s(z, 6, s_64);
+ if (ret < 0) return ret;
+ }
+ return 1;
+}
+
+static int r_step2a(struct SN_env * z) {
+ z->ket = z->c;
+ if (z->c - 7 <= z->lb || (z->p[z->c - 1] != 131 && z->p[z->c - 1] != 189)) return 0;
+ if (!(find_among_b(z, a_24, 2))) return 0;
+ z->bra = z->c;
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ { int m1 = z->l - z->c; (void)m1;
+ if (!(find_among_b(z, a_25, 10))) goto lab0;
+ 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);
+ z->c = saved_c;
+ }
+ if (ret < 0) return ret;
+ }
+ return 1;
+}
+
+static int r_step2b(struct SN_env * z) {
+ z->ket = z->c;
+ if (z->c - 7 <= z->lb || (z->p[z->c - 1] != 131 && z->p[z->c - 1] != 189)) return 0;
+ if (!(find_among_b(z, a_26, 2))) return 0;
+ z->bra = z->c;
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ z->ket = z->c;
+ z->bra = z->c;
+ if (z->c - 3 <= z->lb || (z->p[z->c - 1] != 128 && z->p[z->c - 1] != 187)) return 0;
+ if (!(find_among_b(z, a_27, 8))) return 0;
+ { int ret = slice_from_s(z, 4, s_66);
+ if (ret < 0) return ret;
+ }
+ return 1;
+}
+
+static int r_step2c(struct SN_env * z) {
+ z->ket = z->c;
+ if (z->c - 9 <= z->lb || (z->p[z->c - 1] != 131 && z->p[z->c - 1] != 189)) return 0;
+ if (!(find_among_b(z, a_28, 2))) return 0;
+ z->bra = z->c;
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ z->ket = z->c;
+ z->bra = z->c;
+ if (!(find_among_b(z, a_29, 15))) return 0;
+ { int ret = slice_from_s(z, 6, s_67);
+ if (ret < 0) return ret;
+ }
+ return 1;
+}
+
+static int r_step2d(struct SN_env * z) {
+ z->ket = z->c;
+ if (z->c - 5 <= z->lb || (z->p[z->c - 1] != 131 && z->p[z->c - 1] != 189)) return 0;
+ if (!(find_among_b(z, a_30, 2))) return 0;
+ z->bra = z->c;
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ z->I[0] = 0;
+ z->ket = z->c;
+ z->bra = z->c;
+ if (!(find_among_b(z, a_31, 8))) return 0;
+ if (z->c > z->lb) return 0;
+ { int ret = slice_from_s(z, 2, s_68);
+ if (ret < 0) return ret;
+ }
+ return 1;
+}
+
+static int r_step3(struct SN_env * z) {
+ z->ket = z->c;
+ if (!(find_among_b(z, a_32, 3))) return 0;
+ z->bra = z->c;
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ z->I[0] = 0;
+ z->ket = z->c;
+ z->bra = z->c;
+ if (in_grouping_b_U(z, g_v, 945, 969, 0)) return 0;
+ { int ret = slice_from_s(z, 2, s_69);
+ if (ret < 0) return ret;
+ }
+ return 1;
+}
+
+static int r_step4(struct SN_env * z) {
+ z->ket = z->c;
+ if (!(find_among_b(z, a_33, 4))) return 0;
+ z->bra = z->c;
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ z->I[0] = 0;
+ { int m1 = z->l - z->c; (void)m1;
+ z->ket = z->c;
+ z->bra = z->c;
+ if (in_grouping_b_U(z, g_v, 945, 969, 0)) goto lab1;
+ { int ret = slice_from_s(z, 4, s_70);
+ if (ret < 0) return ret;
+ }
+ goto lab0;
+ lab1:
+ z->c = z->l - m1;
+ z->ket = z->c;
+ }
+lab0:
+ z->bra = z->c;
+ if (!(find_among_b(z, a_34, 36))) return 0;
+ if (z->c > z->lb) return 0;
+ { int ret = slice_from_s(z, 4, s_71);
+ if (ret < 0) return ret;
+ }
+ return 1;
+}
+
+static int r_step5a(struct SN_env * z) {
+ { int m1 = z->l - z->c; (void)m1;
+ if (!(eq_s_b(z, 10, s_72))) goto lab0;
+ if (z->c > z->lb) goto lab0;
+ { int ret = slice_from_s(z, 8, s_73);
+ if (ret < 0) return ret;
+ }
+ lab0:
+ z->c = z->l - m1;
+ }
+ { int m2 = z->l - z->c; (void)m2;
+ z->ket = z->c;
+ if (z->c - 9 <= z->lb || z->p[z->c - 1] != 181) goto lab1;
+ if (!(find_among_b(z, a_35, 5))) goto lab1;
+ z->bra = z->c;
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ z->I[0] = 0;
+ lab1:
+ z->c = z->l - m2;
+ }
+ z->ket = z->c;
+ if (!(eq_s_b(z, 6, s_74))) return 0;
+ z->bra = z->c;
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ z->I[0] = 0;
+ z->ket = z->c;
+ z->bra = z->c;
+ if (!(find_among_b(z, a_36, 12))) return 0;
+ if (z->c > z->lb) return 0;
+ { int ret = slice_from_s(z, 4, s_75);
+ if (ret < 0) return ret;
+ }
+ return 1;
+}
+
+static int r_step5b(struct SN_env * z) {
+ { int m1 = z->l - z->c; (void)m1;
+ z->ket = z->c;
+ if (z->c - 9 <= z->lb || z->p[z->c - 1] != 181) goto lab0;
+ if (!(find_among_b(z, a_38, 11))) goto lab0;
+ z->bra = z->c;
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ z->I[0] = 0;
+ z->ket = z->c;
+ z->bra = z->c;
+ if (z->c - 3 <= z->lb || (z->p[z->c - 1] != 129 && z->p[z->c - 1] != 131)) goto lab0;
+ if (!(find_among_b(z, a_37, 2))) goto lab0;
+ if (z->c > z->lb) goto lab0;
+ { int ret = slice_from_s(z, 8, s_76);
+ if (ret < 0) return ret;
+ }
+ lab0:
+ z->c = z->l - m1;
+ }
+ z->ket = z->c;
+ if (!(eq_s_b(z, 6, s_77))) return 0;
+ z->bra = z->c;
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ z->I[0] = 0;
+ { int m2 = z->l - z->c; (void)m2;
+ z->ket = z->c;
+ z->bra = z->c;
+ if (in_grouping_b_U(z, g_v2, 945, 969, 0)) goto lab2;
+ { int ret = slice_from_s(z, 4, s_78);
+ if (ret < 0) return ret;
+ }
+ goto lab1;
+ lab2:
+ z->c = z->l - m2;
+ z->ket = z->c;
+ }
+lab1:
+ z->bra = z->c;
+ if (!(find_among_b(z, a_39, 95))) return 0;
+ if (z->c > z->lb) return 0;
+ { int ret = slice_from_s(z, 4, s_79);
+ if (ret < 0) return ret;
+ }
+ return 1;
+}
+
+static int r_step5c(struct SN_env * z) {
+ { int m1 = z->l - z->c; (void)m1;
+ z->ket = z->c;
+ if (z->c - 9 <= z->lb || z->p[z->c - 1] != 181) goto lab0;
+ if (!(find_among_b(z, a_40, 1))) goto lab0;
+ z->bra = z->c;
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ z->I[0] = 0;
+ lab0:
+ z->c = z->l - m1;
+ }
+ z->ket = z->c;
+ if (!(eq_s_b(z, 6, s_80))) return 0;
+ z->bra = z->c;
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ z->I[0] = 0;
+ { int m2 = z->l - z->c; (void)m2;
+ z->ket = z->c;
+ z->bra = z->c;
+ if (in_grouping_b_U(z, g_v2, 945, 969, 0)) goto lab2;
+ { int ret = slice_from_s(z, 4, s_81);
+ if (ret < 0) return ret;
+ }
+ goto lab1;
+ lab2:
+ z->c = z->l - m2;
+ z->ket = z->c;
+ z->bra = z->c;
+ if (!(find_among_b(z, a_41, 31))) goto lab3;
+ { int ret = slice_from_s(z, 4, s_82);
+ if (ret < 0) return ret;
+ }
+ goto lab1;
+ lab3:
+ z->c = z->l - m2;
+ z->ket = z->c;
+ }
+lab1:
+ z->bra = z->c;
+ if (!(find_among_b(z, a_42, 25))) return 0;
+ if (z->c > z->lb) return 0;
+ { int ret = slice_from_s(z, 4, s_83);
+ if (ret < 0) return ret;
+ }
+ return 1;
+}
+
+static int r_step5d(struct SN_env * z) {
+ z->ket = z->c;
+ if (z->c - 9 <= z->lb || z->p[z->c - 1] != 131) return 0;
+ if (!(find_among_b(z, a_43, 2))) return 0;
+ z->bra = z->c;
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ z->I[0] = 0;
+ { int m1 = z->l - z->c; (void)m1;
+ z->ket = z->c;
+ z->bra = z->c;
+ if (!(eq_s_b(z, 6, s_84))) goto lab1;
+ if (z->c > z->lb) goto lab1;
+ { int ret = slice_from_s(z, 6, s_85);
+ if (ret < 0) return ret;
+ }
+ goto lab0;
+ lab1:
+ z->c = z->l - m1;
+ z->ket = z->c;
+ z->bra = z->c;
+ if (!(eq_s_b(z, 6, s_86))) return 0;
+ { int ret = slice_from_s(z, 6, s_87);
+ if (ret < 0) return ret;
+ }
+ }
+lab0:
+ return 1;
+}
+
+static int r_step5e(struct SN_env * z) {
+ z->ket = z->c;
+ if (z->c - 11 <= z->lb || z->p[z->c - 1] != 181) return 0;
+ if (!(find_among_b(z, a_44, 2))) return 0;
+ z->bra = z->c;
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ z->I[0] = 0;
+ z->ket = z->c;
+ z->bra = z->c;
+ if (!(eq_s_b(z, 4, s_88))) return 0;
+ if (z->c > z->lb) return 0;
+ { int ret = slice_from_s(z, 10, s_89);
+ if (ret < 0) return ret;
+ }
+ return 1;
+}
+
+static int r_step5f(struct SN_env * z) {
+ { int m1 = z->l - z->c; (void)m1;
+ z->ket = z->c;
+ if (!(eq_s_b(z, 10, s_90))) goto lab0;
+ z->bra = z->c;
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ z->I[0] = 0;
+ z->ket = z->c;
+ z->bra = z->c;
+ if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 128 && z->p[z->c - 1] != 134)) goto lab0;
+ if (!(find_among_b(z, a_45, 6))) goto lab0;
+ if (z->c > z->lb) goto lab0;
+ { int ret = slice_from_s(z, 8, s_91);
+ if (ret < 0) return ret;
+ }
+ lab0:
+ z->c = z->l - m1;
+ }
+ z->ket = z->c;
+ if (!(eq_s_b(z, 8, s_92))) return 0;
+ z->bra = z->c;
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ z->I[0] = 0;
+ z->ket = z->c;
+ z->bra = z->c;
+ if (!(find_among_b(z, a_46, 9))) return 0;
+ if (z->c > z->lb) return 0;
+ { int ret = slice_from_s(z, 8, s_93);
+ if (ret < 0) return ret;
+ }
+ return 1;
+}
+
+static int r_step5g(struct SN_env * z) {
+ { int m1 = z->l - z->c; (void)m1;
+ z->ket = z->c;
+ if (!(find_among_b(z, a_47, 3))) goto lab0;
+ z->bra = z->c;
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ z->I[0] = 0;
+ lab0:
+ z->c = z->l - m1;
+ }
+ z->ket = z->c;
+ if (!(find_among_b(z, a_50, 3))) return 0;
+ z->bra = z->c;
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ z->I[0] = 0;
+ { int m2 = z->l - z->c; (void)m2;
+ z->ket = z->c;
+ z->bra = z->c;
+ if (!(find_among_b(z, a_48, 6))) goto lab2;
+ { int ret = slice_from_s(z, 4, s_94);
+ if (ret < 0) return ret;
+ }
+ goto lab1;
+ lab2:
+ z->c = z->l - m2;
+ z->ket = z->c;
+ z->bra = z->c;
+ if (z->c - 1 <= z->lb || z->p[z->c - 1] != 184) return 0;
+ if (!(find_among_b(z, a_49, 5))) return 0;
+ if (z->c > z->lb) return 0;
+ { int ret = slice_from_s(z, 4, s_95);
+ if (ret < 0) return ret;
+ }
+ }
+lab1:
+ return 1;
+}
+
+static int r_step5h(struct SN_env * z) {
+ z->ket = z->c;
+ if (!(find_among_b(z, a_53, 3))) return 0;
+ z->bra = z->c;
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ z->I[0] = 0;
+ { int m1 = z->l - z->c; (void)m1;
+ z->ket = z->c;
+ z->bra = z->c;
+ if (!(find_among_b(z, a_51, 12))) goto lab1;
+ { int ret = slice_from_s(z, 6, s_96);
+ if (ret < 0) return ret;
+ }
+ goto lab0;
+ lab1:
+ z->c = z->l - m1;
+ z->ket = z->c;
+ z->bra = z->c;
+ if (!(find_among_b(z, a_52, 25))) return 0;
+ if (z->c > z->lb) return 0;
+ { int ret = slice_from_s(z, 6, s_97);
+ if (ret < 0) return ret;
+ }
+ }
+lab0:
+ return 1;
+}
+
+static int r_step5i(struct SN_env * z) {
+ int among_var;
+ z->ket = z->c;
+ if (!(find_among_b(z, a_56, 3))) return 0;
+ z->bra = z->c;
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ z->I[0] = 0;
+ { int m1 = z->l - z->c; (void)m1;
+ z->ket = z->c;
+ z->bra = z->c;
+ if (!(eq_s_b(z, 8, s_98))) goto lab1;
+ { int ret = slice_from_s(z, 4, s_99);
+ if (ret < 0) return ret;
+ }
+ goto lab0;
+ lab1:
+ z->c = z->l - m1;
+ { int m2 = z->l - z->c; (void)m2;
+ z->ket = z->c;
+ z->bra = z->c;
+ among_var = find_among_b(z, a_54, 12);
+ if (!(among_var)) goto lab3;
+ switch (among_var) {
+ case 1:
+ { int ret = slice_from_s(z, 4, s_100);
+ if (ret < 0) return ret;
+ }
+ break;
+ }
+ goto lab2;
+ lab3:
+ z->c = z->l - m2;
+ z->ket = z->c;
+ z->bra = z->c;
+ if (!(find_among_b(z, a_55, 44))) return 0;
+ if (z->c > z->lb) return 0;
+ { int ret = slice_from_s(z, 4, s_101);
+ if (ret < 0) return ret;
+ }
+ }
+ lab2:
+ ;
+ }
+lab0:
+ return 1;
+}
+
+static int r_step5j(struct SN_env * z) {
+ z->ket = z->c;
+ if (!(find_among_b(z, a_57, 3))) return 0;
+ z->bra = z->c;
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ z->I[0] = 0;
+ z->ket = z->c;
+ z->bra = z->c;
+ if (z->c - 1 <= z->lb || z->p[z->c - 1] != 189) return 0;
+ if (!(find_among_b(z, a_58, 6))) return 0;
+ if (z->c > z->lb) return 0;
+ { int ret = slice_from_s(z, 4, s_102);
+ if (ret < 0) return ret;
+ }
+ return 1;
+}
+
+static int r_step5k(struct SN_env * z) {
+ z->ket = z->c;
+ if (z->c - 7 <= z->lb || z->p[z->c - 1] != 181) return 0;
+ if (!(find_among_b(z, a_59, 1))) return 0;
+ z->bra = z->c;
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ z->I[0] = 0;
+ z->ket = z->c;
+ z->bra = z->c;
+ if (!(find_among_b(z, a_60, 10))) return 0;
+ if (z->c > z->lb) return 0;
+ { int ret = slice_from_s(z, 6, s_103);
+ if (ret < 0) return ret;
+ }
+ return 1;
+}
+
+static int r_step5l(struct SN_env * z) {
+ z->ket = z->c;
+ if (z->c - 7 <= z->lb || z->p[z->c - 1] != 181) return 0;
+ if (!(find_among_b(z, a_61, 3))) return 0;
+ z->bra = z->c;
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ z->I[0] = 0;
+ z->ket = z->c;
+ z->bra = z->c;
+ if (!(find_among_b(z, a_62, 6))) return 0;
+ if (z->c > z->lb) return 0;
+ { int ret = slice_from_s(z, 6, s_104);
+ if (ret < 0) return ret;
+ }
+ return 1;
+}
+
+static int r_step5m(struct SN_env * z) {
+ z->ket = z->c;
+ if (z->c - 7 <= z->lb || z->p[z->c - 1] != 181) return 0;
+ if (!(find_among_b(z, a_63, 3))) return 0;
+ z->bra = z->c;
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ z->I[0] = 0;
+ z->ket = z->c;
+ z->bra = z->c;
+ if (!(find_among_b(z, a_64, 7))) return 0;
+ if (z->c > z->lb) return 0;
+ { int ret = slice_from_s(z, 6, s_105);
+ if (ret < 0) return ret;
+ }
+ return 1;
+}
+
+static int r_step6(struct SN_env * z) {
+ { int m1 = z->l - z->c; (void)m1;
+ z->ket = z->c;
+ if (!(find_among_b(z, a_65, 3))) goto lab0;
+ z->bra = z->c;
+ { int ret = slice_from_s(z, 4, s_106);
+ if (ret < 0) return ret;
+ }
+ lab0:
+ z->c = z->l - m1;
+ }
+ if (!(z->I[0])) return 0;
+ z->ket = z->c;
+ if (!(find_among_b(z, a_66, 84))) return 0;
+ z->bra = z->c;
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ return 1;
+}
+
+static int r_step7(struct SN_env * z) {
+ z->ket = z->c;
+ if (z->c - 7 <= z->lb || (z->p[z->c - 1] != 129 && z->p[z->c - 1] != 132)) return 0;
+ if (!(find_among_b(z, a_67, 8))) return 0;
+ z->bra = z->c;
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ return 1;
+}
+
+extern int greek_UTF_8_stem(struct SN_env * z) {
+ z->lb = z->c; z->c = z->l;
+
+ { int m1 = z->l - z->c; (void)m1;
+ { int ret = r_tolower(z);
+ if (ret < 0) return ret;
+ }
+ z->c = z->l - m1;
+ }
+ { int ret = r_has_min_length(z);
+ if (ret <= 0) return ret;
+ }
+ z->I[0] = 1;
+ { int m2 = z->l - z->c; (void)m2;
+ { int ret = r_step1(z);
+ if (ret < 0) return ret;
+ }
+ z->c = z->l - m2;
+ }
+ { int m3 = z->l - z->c; (void)m3;
+ { int ret = r_steps1(z);
+ if (ret < 0) return ret;
+ }
+ z->c = z->l - m3;
+ }
+ { int m4 = z->l - z->c; (void)m4;
+ { int ret = r_steps2(z);
+ if (ret < 0) return ret;
+ }
+ z->c = z->l - m4;
+ }
+ { int m5 = z->l - z->c; (void)m5;
+ { int ret = r_steps3(z);
+ if (ret < 0) return ret;
+ }
+ z->c = z->l - m5;
+ }
+ { int m6 = z->l - z->c; (void)m6;
+ { int ret = r_steps4(z);
+ if (ret < 0) return ret;
+ }
+ z->c = z->l - m6;
+ }
+ { int m7 = z->l - z->c; (void)m7;
+ { int ret = r_steps5(z);
+ if (ret < 0) return ret;
+ }
+ z->c = z->l - m7;
+ }
+ { int m8 = z->l - z->c; (void)m8;
+ { int ret = r_steps6(z);
+ if (ret < 0) return ret;
+ }
+ z->c = z->l - m8;
+ }
+ { int m9 = z->l - z->c; (void)m9;
+ { int ret = r_steps7(z);
+ if (ret < 0) return ret;
+ }
+ z->c = z->l - m9;
+ }
+ { int m10 = z->l - z->c; (void)m10;
+ { int ret = r_steps8(z);
+ if (ret < 0) return ret;
+ }
+ z->c = z->l - m10;
+ }
+ { int m11 = z->l - z->c; (void)m11;
+ { int ret = r_steps9(z);
+ if (ret < 0) return ret;
+ }
+ z->c = z->l - m11;
+ }
+ { int m12 = z->l - z->c; (void)m12;
+ { int ret = r_steps10(z);
+ if (ret < 0) return ret;
+ }
+ z->c = z->l - m12;
+ }
+ { int m13 = z->l - z->c; (void)m13;
+ { int ret = r_step2a(z);
+ if (ret < 0) return ret;
+ }
+ z->c = z->l - m13;
+ }
+ { int m14 = z->l - z->c; (void)m14;
+ { int ret = r_step2b(z);
+ if (ret < 0) return ret;
+ }
+ z->c = z->l - m14;
+ }
+ { int m15 = z->l - z->c; (void)m15;
+ { int ret = r_step2c(z);
+ if (ret < 0) return ret;
+ }
+ z->c = z->l - m15;
+ }
+ { int m16 = z->l - z->c; (void)m16;
+ { int ret = r_step2d(z);
+ if (ret < 0) return ret;
+ }
+ z->c = z->l - m16;
+ }
+ { int m17 = z->l - z->c; (void)m17;
+ { int ret = r_step3(z);
+ if (ret < 0) return ret;
+ }
+ z->c = z->l - m17;
+ }
+ { int m18 = z->l - z->c; (void)m18;
+ { int ret = r_step4(z);
+ if (ret < 0) return ret;
+ }
+ z->c = z->l - m18;
+ }
+ { int m19 = z->l - z->c; (void)m19;
+ { int ret = r_step5a(z);
+ if (ret < 0) return ret;
+ }
+ z->c = z->l - m19;
+ }
+ { int m20 = z->l - z->c; (void)m20;
+ { int ret = r_step5b(z);
+ if (ret < 0) return ret;
+ }
+ z->c = z->l - m20;
+ }
+ { int m21 = z->l - z->c; (void)m21;
+ { int ret = r_step5c(z);
+ if (ret < 0) return ret;
+ }
+ z->c = z->l - m21;
+ }
+ { int m22 = z->l - z->c; (void)m22;
+ { int ret = r_step5d(z);
+ if (ret < 0) return ret;
+ }
+ z->c = z->l - m22;
+ }
+ { int m23 = z->l - z->c; (void)m23;
+ { int ret = r_step5e(z);
+ if (ret < 0) return ret;
+ }
+ z->c = z->l - m23;
+ }
+ { int m24 = z->l - z->c; (void)m24;
+ { int ret = r_step5f(z);
+ if (ret < 0) return ret;
+ }
+ z->c = z->l - m24;
+ }
+ { int m25 = z->l - z->c; (void)m25;
+ { int ret = r_step5g(z);
+ if (ret < 0) return ret;
+ }
+ z->c = z->l - m25;
+ }
+ { int m26 = z->l - z->c; (void)m26;
+ { int ret = r_step5h(z);
+ if (ret < 0) return ret;
+ }
+ z->c = z->l - m26;
+ }
+ { int m27 = z->l - z->c; (void)m27;
+ { int ret = r_step5j(z);
+ if (ret < 0) return ret;
+ }
+ z->c = z->l - m27;
+ }
+ { int m28 = z->l - z->c; (void)m28;
+ { int ret = r_step5i(z);
+ if (ret < 0) return ret;
+ }
+ z->c = z->l - m28;
+ }
+ { int m29 = z->l - z->c; (void)m29;
+ { int ret = r_step5k(z);
+ if (ret < 0) return ret;
+ }
+ z->c = z->l - m29;
+ }
+ { int m30 = z->l - z->c; (void)m30;
+ { int ret = r_step5l(z);
+ if (ret < 0) return ret;
+ }
+ z->c = z->l - m30;
+ }
+ { int m31 = z->l - z->c; (void)m31;
+ { int ret = r_step5m(z);
+ if (ret < 0) return ret;
+ }
+ z->c = z->l - m31;
+ }
+ { int m32 = z->l - z->c; (void)m32;
+ { int ret = r_step6(z);
+ if (ret < 0) return ret;
+ }
+ z->c = z->l - m32;
+ }
+ { int m33 = z->l - z->c; (void)m33;
+ { int ret = r_step7(z);
+ if (ret < 0) return ret;
+ }
+ 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(0, 1); }
+
+extern void greek_UTF_8_close_env(struct SN_env * z) { SN_close_env(z, 0); }
+
diff --git a/src/backend/snowball/libstemmer/stem_UTF_8_hindi.c b/src/backend/snowball/libstemmer/stem_UTF_8_hindi.c
new file mode 100644
index 0000000..ddd7201
--- /dev/null
+++ b/src/backend/snowball/libstemmer/stem_UTF_8_hindi.c
@@ -0,0 +1,322 @@
+/* Generated by Snowball 2.2.0 - https://snowballstem.org/ */
+
+#include "header.h"
+
+static int r_CONSONANT(struct SN_env * z);
+#ifdef __cplusplus
+extern "C" {
+#endif
+extern int hindi_UTF_8_stem(struct SN_env * z);
+#ifdef __cplusplus
+}
+#endif
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+extern struct SN_env * hindi_UTF_8_create_env(void);
+extern void hindi_UTF_8_close_env(struct SN_env * z);
+
+
+#ifdef __cplusplus
+}
+#endif
+static const symbol s_0_0[3] = { 0xE0, 0xA5, 0x80 };
+static const symbol s_0_1[12] = { 0xE0, 0xA5, 0x82, 0xE0, 0xA4, 0x82, 0xE0, 0xA4, 0x97, 0xE0, 0xA5, 0x80 };
+static const symbol s_0_2[12] = { 0xE0, 0xA5, 0x87, 0xE0, 0xA4, 0x82, 0xE0, 0xA4, 0x97, 0xE0, 0xA5, 0x80 };
+static const symbol s_0_3[12] = { 0xE0, 0xA4, 0x8A, 0xE0, 0xA4, 0x82, 0xE0, 0xA4, 0x97, 0xE0, 0xA5, 0x80 };
+static const symbol s_0_4[15] = { 0xE0, 0xA4, 0x86, 0xE0, 0xA4, 0x8A, 0xE0, 0xA4, 0x82, 0xE0, 0xA4, 0x97, 0xE0, 0xA5, 0x80 };
+static const symbol s_0_5[15] = { 0xE0, 0xA4, 0xBE, 0xE0, 0xA4, 0x8A, 0xE0, 0xA4, 0x82, 0xE0, 0xA4, 0x97, 0xE0, 0xA5, 0x80 };
+static const symbol s_0_6[12] = { 0xE0, 0xA4, 0x8F, 0xE0, 0xA4, 0x82, 0xE0, 0xA4, 0x97, 0xE0, 0xA5, 0x80 };
+static const symbol s_0_7[15] = { 0xE0, 0xA4, 0x86, 0xE0, 0xA4, 0x8F, 0xE0, 0xA4, 0x82, 0xE0, 0xA4, 0x97, 0xE0, 0xA5, 0x80 };
+static const symbol s_0_8[15] = { 0xE0, 0xA4, 0xBE, 0xE0, 0xA4, 0x8F, 0xE0, 0xA4, 0x82, 0xE0, 0xA4, 0x97, 0xE0, 0xA5, 0x80 };
+static const symbol s_0_9[9] = { 0xE0, 0xA5, 0x87, 0xE0, 0xA4, 0x97, 0xE0, 0xA5, 0x80 };
+static const symbol s_0_10[9] = { 0xE0, 0xA5, 0x8B, 0xE0, 0xA4, 0x97, 0xE0, 0xA5, 0x80 };
+static const symbol s_0_11[9] = { 0xE0, 0xA4, 0x8F, 0xE0, 0xA4, 0x97, 0xE0, 0xA5, 0x80 };
+static const symbol s_0_12[12] = { 0xE0, 0xA4, 0x86, 0xE0, 0xA4, 0x8F, 0xE0, 0xA4, 0x97, 0xE0, 0xA5, 0x80 };
+static const symbol s_0_13[12] = { 0xE0, 0xA4, 0xBE, 0xE0, 0xA4, 0x8F, 0xE0, 0xA4, 0x97, 0xE0, 0xA5, 0x80 };
+static const symbol s_0_14[9] = { 0xE0, 0xA4, 0x93, 0xE0, 0xA4, 0x97, 0xE0, 0xA5, 0x80 };
+static const symbol s_0_15[12] = { 0xE0, 0xA4, 0x86, 0xE0, 0xA4, 0x93, 0xE0, 0xA4, 0x97, 0xE0, 0xA5, 0x80 };
+static const symbol s_0_16[12] = { 0xE0, 0xA4, 0xBE, 0xE0, 0xA4, 0x93, 0xE0, 0xA4, 0x97, 0xE0, 0xA5, 0x80 };
+static const symbol s_0_17[6] = { 0xE0, 0xA4, 0xA4, 0xE0, 0xA5, 0x80 };
+static const symbol s_0_18[9] = { 0xE0, 0xA4, 0x85, 0xE0, 0xA4, 0xA4, 0xE0, 0xA5, 0x80 };
+static const symbol s_0_19[9] = { 0xE0, 0xA4, 0x86, 0xE0, 0xA4, 0xA4, 0xE0, 0xA5, 0x80 };
+static const symbol s_0_20[9] = { 0xE0, 0xA4, 0xBE, 0xE0, 0xA4, 0xA4, 0xE0, 0xA5, 0x80 };
+static const symbol s_0_21[6] = { 0xE0, 0xA4, 0xA8, 0xE0, 0xA5, 0x80 };
+static const symbol s_0_22[9] = { 0xE0, 0xA4, 0x85, 0xE0, 0xA4, 0xA8, 0xE0, 0xA5, 0x80 };
+static const symbol s_0_23[6] = { 0xE0, 0xA4, 0x86, 0xE0, 0xA4, 0x81 };
+static const symbol s_0_24[6] = { 0xE0, 0xA4, 0xBE, 0xE0, 0xA4, 0x81 };
+static const symbol s_0_25[12] = { 0xE0, 0xA4, 0x87, 0xE0, 0xA4, 0xAF, 0xE0, 0xA4, 0xBE, 0xE0, 0xA4, 0x81 };
+static const symbol s_0_26[15] = { 0xE0, 0xA4, 0x86, 0xE0, 0xA4, 0x87, 0xE0, 0xA4, 0xAF, 0xE0, 0xA4, 0xBE, 0xE0, 0xA4, 0x81 };
+static const symbol s_0_27[15] = { 0xE0, 0xA4, 0xBE, 0xE0, 0xA4, 0x87, 0xE0, 0xA4, 0xAF, 0xE0, 0xA4, 0xBE, 0xE0, 0xA4, 0x81 };
+static const symbol s_0_28[12] = { 0xE0, 0xA4, 0xBF, 0xE0, 0xA4, 0xAF, 0xE0, 0xA4, 0xBE, 0xE0, 0xA4, 0x81 };
+static const symbol s_0_29[3] = { 0xE0, 0xA5, 0x81 };
+static const symbol s_0_30[6] = { 0xE0, 0xA5, 0x80, 0xE0, 0xA4, 0x82 };
+static const symbol s_0_31[9] = { 0xE0, 0xA4, 0xA4, 0xE0, 0xA5, 0x80, 0xE0, 0xA4, 0x82 };
+static const symbol s_0_32[12] = { 0xE0, 0xA4, 0x85, 0xE0, 0xA4, 0xA4, 0xE0, 0xA5, 0x80, 0xE0, 0xA4, 0x82 };
+static const symbol s_0_33[12] = { 0xE0, 0xA4, 0x86, 0xE0, 0xA4, 0xA4, 0xE0, 0xA5, 0x80, 0xE0, 0xA4, 0x82 };
+static const symbol s_0_34[12] = { 0xE0, 0xA4, 0xBE, 0xE0, 0xA4, 0xA4, 0xE0, 0xA5, 0x80, 0xE0, 0xA4, 0x82 };
+static const symbol s_0_35[6] = { 0xE0, 0xA4, 0x86, 0xE0, 0xA4, 0x82 };
+static const symbol s_0_36[9] = { 0xE0, 0xA5, 0x81, 0xE0, 0xA4, 0x86, 0xE0, 0xA4, 0x82 };
+static const symbol s_0_37[9] = { 0xE0, 0xA4, 0x89, 0xE0, 0xA4, 0x86, 0xE0, 0xA4, 0x82 };
+static const symbol s_0_38[6] = { 0xE0, 0xA5, 0x87, 0xE0, 0xA4, 0x82 };
+static const symbol s_0_39[6] = { 0xE0, 0xA4, 0x88, 0xE0, 0xA4, 0x82 };
+static const symbol s_0_40[9] = { 0xE0, 0xA4, 0x86, 0xE0, 0xA4, 0x88, 0xE0, 0xA4, 0x82 };
+static const symbol s_0_41[9] = { 0xE0, 0xA4, 0xBE, 0xE0, 0xA4, 0x88, 0xE0, 0xA4, 0x82 };
+static const symbol s_0_42[6] = { 0xE0, 0xA5, 0x8B, 0xE0, 0xA4, 0x82 };
+static const symbol s_0_43[12] = { 0xE0, 0xA4, 0x87, 0xE0, 0xA4, 0xAF, 0xE0, 0xA5, 0x8B, 0xE0, 0xA4, 0x82 };
+static const symbol s_0_44[15] = { 0xE0, 0xA4, 0x86, 0xE0, 0xA4, 0x87, 0xE0, 0xA4, 0xAF, 0xE0, 0xA5, 0x8B, 0xE0, 0xA4, 0x82 };
+static const symbol s_0_45[15] = { 0xE0, 0xA4, 0xBE, 0xE0, 0xA4, 0x87, 0xE0, 0xA4, 0xAF, 0xE0, 0xA5, 0x8B, 0xE0, 0xA4, 0x82 };
+static const symbol s_0_46[12] = { 0xE0, 0xA4, 0xBF, 0xE0, 0xA4, 0xAF, 0xE0, 0xA5, 0x8B, 0xE0, 0xA4, 0x82 };
+static const symbol s_0_47[6] = { 0xE0, 0xA4, 0x8F, 0xE0, 0xA4, 0x82 };
+static const symbol s_0_48[9] = { 0xE0, 0xA5, 0x81, 0xE0, 0xA4, 0x8F, 0xE0, 0xA4, 0x82 };
+static const symbol s_0_49[9] = { 0xE0, 0xA4, 0x86, 0xE0, 0xA4, 0x8F, 0xE0, 0xA4, 0x82 };
+static const symbol s_0_50[9] = { 0xE0, 0xA4, 0x89, 0xE0, 0xA4, 0x8F, 0xE0, 0xA4, 0x82 };
+static const symbol s_0_51[9] = { 0xE0, 0xA4, 0xBE, 0xE0, 0xA4, 0x8F, 0xE0, 0xA4, 0x82 };
+static const symbol s_0_52[12] = { 0xE0, 0xA4, 0xA4, 0xE0, 0xA4, 0xBE, 0xE0, 0xA4, 0x8F, 0xE0, 0xA4, 0x82 };
+static const symbol s_0_53[15] = { 0xE0, 0xA4, 0x85, 0xE0, 0xA4, 0xA4, 0xE0, 0xA4, 0xBE, 0xE0, 0xA4, 0x8F, 0xE0, 0xA4, 0x82 };
+static const symbol s_0_54[12] = { 0xE0, 0xA4, 0xA8, 0xE0, 0xA4, 0xBE, 0xE0, 0xA4, 0x8F, 0xE0, 0xA4, 0x82 };
+static const symbol s_0_55[15] = { 0xE0, 0xA4, 0x85, 0xE0, 0xA4, 0xA8, 0xE0, 0xA4, 0xBE, 0xE0, 0xA4, 0x8F, 0xE0, 0xA4, 0x82 };
+static const symbol s_0_56[6] = { 0xE0, 0xA4, 0x93, 0xE0, 0xA4, 0x82 };
+static const symbol s_0_57[9] = { 0xE0, 0xA5, 0x81, 0xE0, 0xA4, 0x93, 0xE0, 0xA4, 0x82 };
+static const symbol s_0_58[9] = { 0xE0, 0xA4, 0x86, 0xE0, 0xA4, 0x93, 0xE0, 0xA4, 0x82 };
+static const symbol s_0_59[9] = { 0xE0, 0xA4, 0x89, 0xE0, 0xA4, 0x93, 0xE0, 0xA4, 0x82 };
+static const symbol s_0_60[9] = { 0xE0, 0xA4, 0xBE, 0xE0, 0xA4, 0x93, 0xE0, 0xA4, 0x82 };
+static const symbol s_0_61[12] = { 0xE0, 0xA4, 0xA4, 0xE0, 0xA4, 0xBE, 0xE0, 0xA4, 0x93, 0xE0, 0xA4, 0x82 };
+static const symbol s_0_62[15] = { 0xE0, 0xA4, 0x85, 0xE0, 0xA4, 0xA4, 0xE0, 0xA4, 0xBE, 0xE0, 0xA4, 0x93, 0xE0, 0xA4, 0x82 };
+static const symbol s_0_63[12] = { 0xE0, 0xA4, 0xA8, 0xE0, 0xA4, 0xBE, 0xE0, 0xA4, 0x93, 0xE0, 0xA4, 0x82 };
+static const symbol s_0_64[15] = { 0xE0, 0xA4, 0x85, 0xE0, 0xA4, 0xA8, 0xE0, 0xA4, 0xBE, 0xE0, 0xA4, 0x93, 0xE0, 0xA4, 0x82 };
+static const symbol s_0_65[6] = { 0xE0, 0xA4, 0xBE, 0xE0, 0xA4, 0x82 };
+static const symbol s_0_66[12] = { 0xE0, 0xA4, 0x87, 0xE0, 0xA4, 0xAF, 0xE0, 0xA4, 0xBE, 0xE0, 0xA4, 0x82 };
+static const symbol s_0_67[15] = { 0xE0, 0xA4, 0x86, 0xE0, 0xA4, 0x87, 0xE0, 0xA4, 0xAF, 0xE0, 0xA4, 0xBE, 0xE0, 0xA4, 0x82 };
+static const symbol s_0_68[15] = { 0xE0, 0xA4, 0xBE, 0xE0, 0xA4, 0x87, 0xE0, 0xA4, 0xAF, 0xE0, 0xA4, 0xBE, 0xE0, 0xA4, 0x82 };
+static const symbol s_0_69[12] = { 0xE0, 0xA4, 0xBF, 0xE0, 0xA4, 0xAF, 0xE0, 0xA4, 0xBE, 0xE0, 0xA4, 0x82 };
+static const symbol s_0_70[3] = { 0xE0, 0xA5, 0x82 };
+static const symbol s_0_71[3] = { 0xE0, 0xA4, 0x85 };
+static const symbol s_0_72[3] = { 0xE0, 0xA4, 0x86 };
+static const symbol s_0_73[3] = { 0xE0, 0xA4, 0x87 };
+static const symbol s_0_74[3] = { 0xE0, 0xA5, 0x87 };
+static const symbol s_0_75[12] = { 0xE0, 0xA5, 0x87, 0xE0, 0xA4, 0x82, 0xE0, 0xA4, 0x97, 0xE0, 0xA5, 0x87 };
+static const symbol s_0_76[12] = { 0xE0, 0xA4, 0x8F, 0xE0, 0xA4, 0x82, 0xE0, 0xA4, 0x97, 0xE0, 0xA5, 0x87 };
+static const symbol s_0_77[15] = { 0xE0, 0xA4, 0x86, 0xE0, 0xA4, 0x8F, 0xE0, 0xA4, 0x82, 0xE0, 0xA4, 0x97, 0xE0, 0xA5, 0x87 };
+static const symbol s_0_78[15] = { 0xE0, 0xA4, 0xBE, 0xE0, 0xA4, 0x8F, 0xE0, 0xA4, 0x82, 0xE0, 0xA4, 0x97, 0xE0, 0xA5, 0x87 };
+static const symbol s_0_79[9] = { 0xE0, 0xA5, 0x8B, 0xE0, 0xA4, 0x97, 0xE0, 0xA5, 0x87 };
+static const symbol s_0_80[9] = { 0xE0, 0xA4, 0x93, 0xE0, 0xA4, 0x97, 0xE0, 0xA5, 0x87 };
+static const symbol s_0_81[12] = { 0xE0, 0xA4, 0x86, 0xE0, 0xA4, 0x93, 0xE0, 0xA4, 0x97, 0xE0, 0xA5, 0x87 };
+static const symbol s_0_82[12] = { 0xE0, 0xA4, 0xBE, 0xE0, 0xA4, 0x93, 0xE0, 0xA4, 0x97, 0xE0, 0xA5, 0x87 };
+static const symbol s_0_83[6] = { 0xE0, 0xA4, 0xA4, 0xE0, 0xA5, 0x87 };
+static const symbol s_0_84[9] = { 0xE0, 0xA4, 0x85, 0xE0, 0xA4, 0xA4, 0xE0, 0xA5, 0x87 };
+static const symbol s_0_85[9] = { 0xE0, 0xA4, 0x86, 0xE0, 0xA4, 0xA4, 0xE0, 0xA5, 0x87 };
+static const symbol s_0_86[9] = { 0xE0, 0xA4, 0xBE, 0xE0, 0xA4, 0xA4, 0xE0, 0xA5, 0x87 };
+static const symbol s_0_87[6] = { 0xE0, 0xA4, 0xA8, 0xE0, 0xA5, 0x87 };
+static const symbol s_0_88[9] = { 0xE0, 0xA4, 0x85, 0xE0, 0xA4, 0xA8, 0xE0, 0xA5, 0x87 };
+static const symbol s_0_89[9] = { 0xE0, 0xA4, 0x86, 0xE0, 0xA4, 0xA8, 0xE0, 0xA5, 0x87 };
+static const symbol s_0_90[9] = { 0xE0, 0xA4, 0xBE, 0xE0, 0xA4, 0xA8, 0xE0, 0xA5, 0x87 };
+static const symbol s_0_91[3] = { 0xE0, 0xA4, 0x88 };
+static const symbol s_0_92[6] = { 0xE0, 0xA4, 0x86, 0xE0, 0xA4, 0x88 };
+static const symbol s_0_93[6] = { 0xE0, 0xA4, 0xBE, 0xE0, 0xA4, 0x88 };
+static const symbol s_0_94[3] = { 0xE0, 0xA4, 0x89 };
+static const symbol s_0_95[3] = { 0xE0, 0xA4, 0x8A };
+static const symbol s_0_96[3] = { 0xE0, 0xA5, 0x8B };
+static const symbol s_0_97[3] = { 0xE0, 0xA5, 0x8D };
+static const symbol s_0_98[3] = { 0xE0, 0xA4, 0x8F };
+static const symbol s_0_99[6] = { 0xE0, 0xA4, 0x86, 0xE0, 0xA4, 0x8F };
+static const symbol s_0_100[6] = { 0xE0, 0xA4, 0x87, 0xE0, 0xA4, 0x8F };
+static const symbol s_0_101[9] = { 0xE0, 0xA4, 0x86, 0xE0, 0xA4, 0x87, 0xE0, 0xA4, 0x8F };
+static const symbol s_0_102[9] = { 0xE0, 0xA4, 0xBE, 0xE0, 0xA4, 0x87, 0xE0, 0xA4, 0x8F };
+static const symbol s_0_103[6] = { 0xE0, 0xA4, 0xBE, 0xE0, 0xA4, 0x8F };
+static const symbol s_0_104[6] = { 0xE0, 0xA4, 0xBF, 0xE0, 0xA4, 0x8F };
+static const symbol s_0_105[3] = { 0xE0, 0xA4, 0x93 };
+static const symbol s_0_106[6] = { 0xE0, 0xA4, 0x86, 0xE0, 0xA4, 0x93 };
+static const symbol s_0_107[6] = { 0xE0, 0xA4, 0xBE, 0xE0, 0xA4, 0x93 };
+static const symbol s_0_108[6] = { 0xE0, 0xA4, 0x95, 0xE0, 0xA4, 0xB0 };
+static const symbol s_0_109[9] = { 0xE0, 0xA4, 0x85, 0xE0, 0xA4, 0x95, 0xE0, 0xA4, 0xB0 };
+static const symbol s_0_110[9] = { 0xE0, 0xA4, 0x86, 0xE0, 0xA4, 0x95, 0xE0, 0xA4, 0xB0 };
+static const symbol s_0_111[9] = { 0xE0, 0xA4, 0xBE, 0xE0, 0xA4, 0x95, 0xE0, 0xA4, 0xB0 };
+static const symbol s_0_112[3] = { 0xE0, 0xA4, 0xBE };
+static const symbol s_0_113[12] = { 0xE0, 0xA5, 0x82, 0xE0, 0xA4, 0x82, 0xE0, 0xA4, 0x97, 0xE0, 0xA4, 0xBE };
+static const symbol s_0_114[12] = { 0xE0, 0xA4, 0x8A, 0xE0, 0xA4, 0x82, 0xE0, 0xA4, 0x97, 0xE0, 0xA4, 0xBE };
+static const symbol s_0_115[15] = { 0xE0, 0xA4, 0x86, 0xE0, 0xA4, 0x8A, 0xE0, 0xA4, 0x82, 0xE0, 0xA4, 0x97, 0xE0, 0xA4, 0xBE };
+static const symbol s_0_116[15] = { 0xE0, 0xA4, 0xBE, 0xE0, 0xA4, 0x8A, 0xE0, 0xA4, 0x82, 0xE0, 0xA4, 0x97, 0xE0, 0xA4, 0xBE };
+static const symbol s_0_117[9] = { 0xE0, 0xA5, 0x87, 0xE0, 0xA4, 0x97, 0xE0, 0xA4, 0xBE };
+static const symbol s_0_118[9] = { 0xE0, 0xA4, 0x8F, 0xE0, 0xA4, 0x97, 0xE0, 0xA4, 0xBE };
+static const symbol s_0_119[12] = { 0xE0, 0xA4, 0x86, 0xE0, 0xA4, 0x8F, 0xE0, 0xA4, 0x97, 0xE0, 0xA4, 0xBE };
+static const symbol s_0_120[12] = { 0xE0, 0xA4, 0xBE, 0xE0, 0xA4, 0x8F, 0xE0, 0xA4, 0x97, 0xE0, 0xA4, 0xBE };
+static const symbol s_0_121[6] = { 0xE0, 0xA4, 0xA4, 0xE0, 0xA4, 0xBE };
+static const symbol s_0_122[9] = { 0xE0, 0xA4, 0x85, 0xE0, 0xA4, 0xA4, 0xE0, 0xA4, 0xBE };
+static const symbol s_0_123[9] = { 0xE0, 0xA4, 0x86, 0xE0, 0xA4, 0xA4, 0xE0, 0xA4, 0xBE };
+static const symbol s_0_124[9] = { 0xE0, 0xA4, 0xBE, 0xE0, 0xA4, 0xA4, 0xE0, 0xA4, 0xBE };
+static const symbol s_0_125[6] = { 0xE0, 0xA4, 0xA8, 0xE0, 0xA4, 0xBE };
+static const symbol s_0_126[9] = { 0xE0, 0xA4, 0x85, 0xE0, 0xA4, 0xA8, 0xE0, 0xA4, 0xBE };
+static const symbol s_0_127[9] = { 0xE0, 0xA4, 0x86, 0xE0, 0xA4, 0xA8, 0xE0, 0xA4, 0xBE };
+static const symbol s_0_128[9] = { 0xE0, 0xA4, 0xBE, 0xE0, 0xA4, 0xA8, 0xE0, 0xA4, 0xBE };
+static const symbol s_0_129[9] = { 0xE0, 0xA4, 0x86, 0xE0, 0xA4, 0xAF, 0xE0, 0xA4, 0xBE };
+static const symbol s_0_130[9] = { 0xE0, 0xA4, 0xBE, 0xE0, 0xA4, 0xAF, 0xE0, 0xA4, 0xBE };
+static const symbol s_0_131[3] = { 0xE0, 0xA4, 0xBF };
+
+static const struct among a_0[132] =
+{
+{ 3, s_0_0, -1, -1, 0},
+{ 12, s_0_1, 0, -1, 0},
+{ 12, s_0_2, 0, -1, 0},
+{ 12, s_0_3, 0, -1, 0},
+{ 15, s_0_4, 3, -1, 0},
+{ 15, s_0_5, 3, -1, 0},
+{ 12, s_0_6, 0, -1, 0},
+{ 15, s_0_7, 6, -1, 0},
+{ 15, s_0_8, 6, -1, 0},
+{ 9, s_0_9, 0, -1, 0},
+{ 9, s_0_10, 0, -1, 0},
+{ 9, s_0_11, 0, -1, 0},
+{ 12, s_0_12, 11, -1, 0},
+{ 12, s_0_13, 11, -1, 0},
+{ 9, s_0_14, 0, -1, 0},
+{ 12, s_0_15, 14, -1, 0},
+{ 12, s_0_16, 14, -1, 0},
+{ 6, s_0_17, 0, -1, r_CONSONANT},
+{ 9, s_0_18, 17, -1, 0},
+{ 9, s_0_19, 17, -1, 0},
+{ 9, s_0_20, 17, -1, 0},
+{ 6, s_0_21, 0, -1, r_CONSONANT},
+{ 9, s_0_22, 21, -1, 0},
+{ 6, s_0_23, -1, -1, 0},
+{ 6, s_0_24, -1, -1, 0},
+{ 12, s_0_25, 24, -1, 0},
+{ 15, s_0_26, 25, -1, 0},
+{ 15, s_0_27, 25, -1, 0},
+{ 12, s_0_28, 24, -1, 0},
+{ 3, s_0_29, -1, -1, 0},
+{ 6, s_0_30, -1, -1, 0},
+{ 9, s_0_31, 30, -1, r_CONSONANT},
+{ 12, s_0_32, 31, -1, 0},
+{ 12, s_0_33, 31, -1, 0},
+{ 12, s_0_34, 31, -1, 0},
+{ 6, s_0_35, -1, -1, 0},
+{ 9, s_0_36, 35, -1, 0},
+{ 9, s_0_37, 35, -1, 0},
+{ 6, s_0_38, -1, -1, 0},
+{ 6, s_0_39, -1, -1, 0},
+{ 9, s_0_40, 39, -1, 0},
+{ 9, s_0_41, 39, -1, 0},
+{ 6, s_0_42, -1, -1, 0},
+{ 12, s_0_43, 42, -1, 0},
+{ 15, s_0_44, 43, -1, 0},
+{ 15, s_0_45, 43, -1, 0},
+{ 12, s_0_46, 42, -1, 0},
+{ 6, s_0_47, -1, -1, 0},
+{ 9, s_0_48, 47, -1, 0},
+{ 9, s_0_49, 47, -1, 0},
+{ 9, s_0_50, 47, -1, 0},
+{ 9, s_0_51, 47, -1, 0},
+{ 12, s_0_52, 51, -1, r_CONSONANT},
+{ 15, s_0_53, 52, -1, 0},
+{ 12, s_0_54, 51, -1, r_CONSONANT},
+{ 15, s_0_55, 54, -1, 0},
+{ 6, s_0_56, -1, -1, 0},
+{ 9, s_0_57, 56, -1, 0},
+{ 9, s_0_58, 56, -1, 0},
+{ 9, s_0_59, 56, -1, 0},
+{ 9, s_0_60, 56, -1, 0},
+{ 12, s_0_61, 60, -1, r_CONSONANT},
+{ 15, s_0_62, 61, -1, 0},
+{ 12, s_0_63, 60, -1, r_CONSONANT},
+{ 15, s_0_64, 63, -1, 0},
+{ 6, s_0_65, -1, -1, 0},
+{ 12, s_0_66, 65, -1, 0},
+{ 15, s_0_67, 66, -1, 0},
+{ 15, s_0_68, 66, -1, 0},
+{ 12, s_0_69, 65, -1, 0},
+{ 3, s_0_70, -1, -1, 0},
+{ 3, s_0_71, -1, -1, 0},
+{ 3, s_0_72, -1, -1, 0},
+{ 3, s_0_73, -1, -1, 0},
+{ 3, s_0_74, -1, -1, 0},
+{ 12, s_0_75, 74, -1, 0},
+{ 12, s_0_76, 74, -1, 0},
+{ 15, s_0_77, 76, -1, 0},
+{ 15, s_0_78, 76, -1, 0},
+{ 9, s_0_79, 74, -1, 0},
+{ 9, s_0_80, 74, -1, 0},
+{ 12, s_0_81, 80, -1, 0},
+{ 12, s_0_82, 80, -1, 0},
+{ 6, s_0_83, 74, -1, r_CONSONANT},
+{ 9, s_0_84, 83, -1, 0},
+{ 9, s_0_85, 83, -1, 0},
+{ 9, s_0_86, 83, -1, 0},
+{ 6, s_0_87, 74, -1, r_CONSONANT},
+{ 9, s_0_88, 87, -1, 0},
+{ 9, s_0_89, 87, -1, 0},
+{ 9, s_0_90, 87, -1, 0},
+{ 3, s_0_91, -1, -1, 0},
+{ 6, s_0_92, 91, -1, 0},
+{ 6, s_0_93, 91, -1, 0},
+{ 3, s_0_94, -1, -1, 0},
+{ 3, s_0_95, -1, -1, 0},
+{ 3, s_0_96, -1, -1, 0},
+{ 3, s_0_97, -1, -1, 0},
+{ 3, s_0_98, -1, -1, 0},
+{ 6, s_0_99, 98, -1, 0},
+{ 6, s_0_100, 98, -1, 0},
+{ 9, s_0_101, 100, -1, 0},
+{ 9, s_0_102, 100, -1, 0},
+{ 6, s_0_103, 98, -1, 0},
+{ 6, s_0_104, 98, -1, 0},
+{ 3, s_0_105, -1, -1, 0},
+{ 6, s_0_106, 105, -1, 0},
+{ 6, s_0_107, 105, -1, 0},
+{ 6, s_0_108, -1, -1, r_CONSONANT},
+{ 9, s_0_109, 108, -1, 0},
+{ 9, s_0_110, 108, -1, 0},
+{ 9, s_0_111, 108, -1, 0},
+{ 3, s_0_112, -1, -1, 0},
+{ 12, s_0_113, 112, -1, 0},
+{ 12, s_0_114, 112, -1, 0},
+{ 15, s_0_115, 114, -1, 0},
+{ 15, s_0_116, 114, -1, 0},
+{ 9, s_0_117, 112, -1, 0},
+{ 9, s_0_118, 112, -1, 0},
+{ 12, s_0_119, 118, -1, 0},
+{ 12, s_0_120, 118, -1, 0},
+{ 6, s_0_121, 112, -1, r_CONSONANT},
+{ 9, s_0_122, 121, -1, 0},
+{ 9, s_0_123, 121, -1, 0},
+{ 9, s_0_124, 121, -1, 0},
+{ 6, s_0_125, 112, -1, r_CONSONANT},
+{ 9, s_0_126, 125, -1, 0},
+{ 9, s_0_127, 125, -1, 0},
+{ 9, s_0_128, 125, -1, 0},
+{ 9, s_0_129, 112, -1, 0},
+{ 9, s_0_130, 112, -1, 0},
+{ 3, s_0_131, -1, -1, 0}
+};
+
+static const unsigned char g_consonant[] = { 255, 255, 255, 255, 159, 0, 0, 0, 248, 7 };
+
+
+static int r_CONSONANT(struct SN_env * z) {
+ if (in_grouping_b_U(z, g_consonant, 2325, 2399, 0)) return 0;
+ return 1;
+}
+
+extern int hindi_UTF_8_stem(struct SN_env * z) {
+ { int ret = skip_utf8(z->p, z->c, z->l, 1);
+ if (ret < 0) return 0;
+ z->c = ret;
+ }
+ z->lb = z->c; z->c = z->l;
+
+ z->ket = z->c;
+ if (!(find_among_b(z, a_0, 132))) return 0;
+ z->bra = z->c;
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ z->c = z->lb;
+ return 1;
+}
+
+extern struct SN_env * hindi_UTF_8_create_env(void) { return SN_create_env(0, 0); }
+
+extern void hindi_UTF_8_close_env(struct SN_env * z) { SN_close_env(z, 0); }
+
diff --git a/src/backend/snowball/libstemmer/stem_UTF_8_hungarian.c b/src/backend/snowball/libstemmer/stem_UTF_8_hungarian.c
new file mode 100644
index 0000000..90bee21
--- /dev/null
+++ b/src/backend/snowball/libstemmer/stem_UTF_8_hungarian.c
@@ -0,0 +1,868 @@
+/* Generated by Snowball 2.2.0 - https://snowballstem.org/ */
+
+#include "header.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+extern int hungarian_UTF_8_stem(struct SN_env * z);
+#ifdef __cplusplus
+}
+#endif
+static int r_double(struct SN_env * z);
+static int r_undouble(struct SN_env * z);
+static int r_factive(struct SN_env * z);
+static int r_instrum(struct SN_env * z);
+static int r_plur_owner(struct SN_env * z);
+static int r_sing_owner(struct SN_env * z);
+static int r_owned(struct SN_env * z);
+static int r_plural(struct SN_env * z);
+static int r_case_other(struct SN_env * z);
+static int r_case_special(struct SN_env * z);
+static int r_case(struct SN_env * z);
+static int r_v_ending(struct SN_env * z);
+static int r_R1(struct SN_env * z);
+static int r_mark_regions(struct SN_env * z);
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+extern struct SN_env * hungarian_UTF_8_create_env(void);
+extern void hungarian_UTF_8_close_env(struct SN_env * z);
+
+
+#ifdef __cplusplus
+}
+#endif
+static const symbol s_0_0[2] = { 'c', 's' };
+static const symbol s_0_1[3] = { 'd', 'z', 's' };
+static const symbol s_0_2[2] = { 'g', 'y' };
+static const symbol s_0_3[2] = { 'l', 'y' };
+static const symbol s_0_4[2] = { 'n', 'y' };
+static const symbol s_0_5[2] = { 's', 'z' };
+static const symbol s_0_6[2] = { 't', 'y' };
+static const symbol s_0_7[2] = { 'z', 's' };
+
+static const struct among a_0[8] =
+{
+{ 2, s_0_0, -1, -1, 0},
+{ 3, s_0_1, -1, -1, 0},
+{ 2, s_0_2, -1, -1, 0},
+{ 2, s_0_3, -1, -1, 0},
+{ 2, s_0_4, -1, -1, 0},
+{ 2, s_0_5, -1, -1, 0},
+{ 2, s_0_6, -1, -1, 0},
+{ 2, s_0_7, -1, -1, 0}
+};
+
+static const symbol s_1_0[2] = { 0xC3, 0xA1 };
+static const symbol s_1_1[2] = { 0xC3, 0xA9 };
+
+static const struct among a_1[2] =
+{
+{ 2, s_1_0, -1, 1, 0},
+{ 2, s_1_1, -1, 2, 0}
+};
+
+static const symbol s_2_0[2] = { 'b', 'b' };
+static const symbol s_2_1[2] = { 'c', 'c' };
+static const symbol s_2_2[2] = { 'd', 'd' };
+static const symbol s_2_3[2] = { 'f', 'f' };
+static const symbol s_2_4[2] = { 'g', 'g' };
+static const symbol s_2_5[2] = { 'j', 'j' };
+static const symbol s_2_6[2] = { 'k', 'k' };
+static const symbol s_2_7[2] = { 'l', 'l' };
+static const symbol s_2_8[2] = { 'm', 'm' };
+static const symbol s_2_9[2] = { 'n', 'n' };
+static const symbol s_2_10[2] = { 'p', 'p' };
+static const symbol s_2_11[2] = { 'r', 'r' };
+static const symbol s_2_12[3] = { 'c', 'c', 's' };
+static const symbol s_2_13[2] = { 's', 's' };
+static const symbol s_2_14[3] = { 'z', 'z', 's' };
+static const symbol s_2_15[2] = { 't', 't' };
+static const symbol s_2_16[2] = { 'v', 'v' };
+static const symbol s_2_17[3] = { 'g', 'g', 'y' };
+static const symbol s_2_18[3] = { 'l', 'l', 'y' };
+static const symbol s_2_19[3] = { 'n', 'n', 'y' };
+static const symbol s_2_20[3] = { 't', 't', 'y' };
+static const symbol s_2_21[3] = { 's', 's', 'z' };
+static const symbol s_2_22[2] = { 'z', 'z' };
+
+static const struct among a_2[23] =
+{
+{ 2, s_2_0, -1, -1, 0},
+{ 2, s_2_1, -1, -1, 0},
+{ 2, s_2_2, -1, -1, 0},
+{ 2, s_2_3, -1, -1, 0},
+{ 2, s_2_4, -1, -1, 0},
+{ 2, s_2_5, -1, -1, 0},
+{ 2, s_2_6, -1, -1, 0},
+{ 2, s_2_7, -1, -1, 0},
+{ 2, s_2_8, -1, -1, 0},
+{ 2, s_2_9, -1, -1, 0},
+{ 2, s_2_10, -1, -1, 0},
+{ 2, s_2_11, -1, -1, 0},
+{ 3, s_2_12, -1, -1, 0},
+{ 2, s_2_13, -1, -1, 0},
+{ 3, s_2_14, -1, -1, 0},
+{ 2, s_2_15, -1, -1, 0},
+{ 2, s_2_16, -1, -1, 0},
+{ 3, s_2_17, -1, -1, 0},
+{ 3, s_2_18, -1, -1, 0},
+{ 3, s_2_19, -1, -1, 0},
+{ 3, s_2_20, -1, -1, 0},
+{ 3, s_2_21, -1, -1, 0},
+{ 2, s_2_22, -1, -1, 0}
+};
+
+static const symbol s_3_0[2] = { 'a', 'l' };
+static const symbol s_3_1[2] = { 'e', 'l' };
+
+static const struct among a_3[2] =
+{
+{ 2, s_3_0, -1, 1, 0},
+{ 2, s_3_1, -1, 1, 0}
+};
+
+static const symbol s_4_0[2] = { 'b', 'a' };
+static const symbol s_4_1[2] = { 'r', 'a' };
+static const symbol s_4_2[2] = { 'b', 'e' };
+static const symbol s_4_3[2] = { 'r', 'e' };
+static const symbol s_4_4[2] = { 'i', 'g' };
+static const symbol s_4_5[3] = { 'n', 'a', 'k' };
+static const symbol s_4_6[3] = { 'n', 'e', 'k' };
+static const symbol s_4_7[3] = { 'v', 'a', 'l' };
+static const symbol s_4_8[3] = { 'v', 'e', 'l' };
+static const symbol s_4_9[2] = { 'u', 'l' };
+static const symbol s_4_10[4] = { 'b', 0xC5, 0x91, 'l' };
+static const symbol s_4_11[4] = { 'r', 0xC5, 0x91, 'l' };
+static const symbol s_4_12[4] = { 't', 0xC5, 0x91, 'l' };
+static const symbol s_4_13[4] = { 'n', 0xC3, 0xA1, 'l' };
+static const symbol s_4_14[4] = { 'n', 0xC3, 0xA9, 'l' };
+static const symbol s_4_15[4] = { 'b', 0xC3, 0xB3, 'l' };
+static const symbol s_4_16[4] = { 'r', 0xC3, 0xB3, 'l' };
+static const symbol s_4_17[4] = { 't', 0xC3, 0xB3, 'l' };
+static const symbol s_4_18[3] = { 0xC3, 0xBC, 'l' };
+static const symbol s_4_19[1] = { 'n' };
+static const symbol s_4_20[2] = { 'a', 'n' };
+static const symbol s_4_21[3] = { 'b', 'a', 'n' };
+static const symbol s_4_22[2] = { 'e', 'n' };
+static const symbol s_4_23[3] = { 'b', 'e', 'n' };
+static const symbol s_4_24[7] = { 'k', 0xC3, 0xA9, 'p', 'p', 'e', 'n' };
+static const symbol s_4_25[2] = { 'o', 'n' };
+static const symbol s_4_26[3] = { 0xC3, 0xB6, 'n' };
+static const symbol s_4_27[5] = { 'k', 0xC3, 0xA9, 'p', 'p' };
+static const symbol s_4_28[3] = { 'k', 'o', 'r' };
+static const symbol s_4_29[1] = { 't' };
+static const symbol s_4_30[2] = { 'a', 't' };
+static const symbol s_4_31[2] = { 'e', 't' };
+static const symbol s_4_32[5] = { 'k', 0xC3, 0xA9, 'n', 't' };
+static const symbol s_4_33[7] = { 'a', 'n', 'k', 0xC3, 0xA9, 'n', 't' };
+static const symbol s_4_34[7] = { 'e', 'n', 'k', 0xC3, 0xA9, 'n', 't' };
+static const symbol s_4_35[7] = { 'o', 'n', 'k', 0xC3, 0xA9, 'n', 't' };
+static const symbol s_4_36[2] = { 'o', 't' };
+static const symbol s_4_37[4] = { 0xC3, 0xA9, 'r', 't' };
+static const symbol s_4_38[3] = { 0xC3, 0xB6, 't' };
+static const symbol s_4_39[3] = { 'h', 'e', 'z' };
+static const symbol s_4_40[3] = { 'h', 'o', 'z' };
+static const symbol s_4_41[4] = { 'h', 0xC3, 0xB6, 'z' };
+static const symbol s_4_42[3] = { 'v', 0xC3, 0xA1 };
+static const symbol s_4_43[3] = { 'v', 0xC3, 0xA9 };
+
+static const struct among a_4[44] =
+{
+{ 2, s_4_0, -1, -1, 0},
+{ 2, s_4_1, -1, -1, 0},
+{ 2, s_4_2, -1, -1, 0},
+{ 2, s_4_3, -1, -1, 0},
+{ 2, s_4_4, -1, -1, 0},
+{ 3, s_4_5, -1, -1, 0},
+{ 3, s_4_6, -1, -1, 0},
+{ 3, s_4_7, -1, -1, 0},
+{ 3, s_4_8, -1, -1, 0},
+{ 2, s_4_9, -1, -1, 0},
+{ 4, s_4_10, -1, -1, 0},
+{ 4, s_4_11, -1, -1, 0},
+{ 4, s_4_12, -1, -1, 0},
+{ 4, s_4_13, -1, -1, 0},
+{ 4, s_4_14, -1, -1, 0},
+{ 4, s_4_15, -1, -1, 0},
+{ 4, s_4_16, -1, -1, 0},
+{ 4, s_4_17, -1, -1, 0},
+{ 3, s_4_18, -1, -1, 0},
+{ 1, s_4_19, -1, -1, 0},
+{ 2, s_4_20, 19, -1, 0},
+{ 3, s_4_21, 20, -1, 0},
+{ 2, s_4_22, 19, -1, 0},
+{ 3, s_4_23, 22, -1, 0},
+{ 7, s_4_24, 22, -1, 0},
+{ 2, s_4_25, 19, -1, 0},
+{ 3, s_4_26, 19, -1, 0},
+{ 5, s_4_27, -1, -1, 0},
+{ 3, s_4_28, -1, -1, 0},
+{ 1, s_4_29, -1, -1, 0},
+{ 2, s_4_30, 29, -1, 0},
+{ 2, s_4_31, 29, -1, 0},
+{ 5, s_4_32, 29, -1, 0},
+{ 7, s_4_33, 32, -1, 0},
+{ 7, s_4_34, 32, -1, 0},
+{ 7, s_4_35, 32, -1, 0},
+{ 2, s_4_36, 29, -1, 0},
+{ 4, s_4_37, 29, -1, 0},
+{ 3, s_4_38, 29, -1, 0},
+{ 3, s_4_39, -1, -1, 0},
+{ 3, s_4_40, -1, -1, 0},
+{ 4, s_4_41, -1, -1, 0},
+{ 3, s_4_42, -1, -1, 0},
+{ 3, s_4_43, -1, -1, 0}
+};
+
+static const symbol s_5_0[3] = { 0xC3, 0xA1, 'n' };
+static const symbol s_5_1[3] = { 0xC3, 0xA9, 'n' };
+static const symbol s_5_2[8] = { 0xC3, 0xA1, 'n', 'k', 0xC3, 0xA9, 'n', 't' };
+
+static const struct among a_5[3] =
+{
+{ 3, s_5_0, -1, 2, 0},
+{ 3, s_5_1, -1, 1, 0},
+{ 8, s_5_2, -1, 2, 0}
+};
+
+static const symbol s_6_0[4] = { 's', 't', 'u', 'l' };
+static const symbol s_6_1[5] = { 'a', 's', 't', 'u', 'l' };
+static const symbol s_6_2[6] = { 0xC3, 0xA1, 's', 't', 'u', 'l' };
+static const symbol s_6_3[5] = { 's', 't', 0xC3, 0xBC, 'l' };
+static const symbol s_6_4[6] = { 'e', 's', 't', 0xC3, 0xBC, 'l' };
+static const symbol s_6_5[7] = { 0xC3, 0xA9, 's', 't', 0xC3, 0xBC, 'l' };
+
+static const struct among a_6[6] =
+{
+{ 4, s_6_0, -1, 1, 0},
+{ 5, s_6_1, 0, 1, 0},
+{ 6, s_6_2, 0, 2, 0},
+{ 5, s_6_3, -1, 1, 0},
+{ 6, s_6_4, 3, 1, 0},
+{ 7, s_6_5, 3, 3, 0}
+};
+
+static const symbol s_7_0[2] = { 0xC3, 0xA1 };
+static const symbol s_7_1[2] = { 0xC3, 0xA9 };
+
+static const struct among a_7[2] =
+{
+{ 2, s_7_0, -1, 1, 0},
+{ 2, s_7_1, -1, 1, 0}
+};
+
+static const symbol s_8_0[1] = { 'k' };
+static const symbol s_8_1[2] = { 'a', 'k' };
+static const symbol s_8_2[2] = { 'e', 'k' };
+static const symbol s_8_3[2] = { 'o', 'k' };
+static const symbol s_8_4[3] = { 0xC3, 0xA1, 'k' };
+static const symbol s_8_5[3] = { 0xC3, 0xA9, 'k' };
+static const symbol s_8_6[3] = { 0xC3, 0xB6, 'k' };
+
+static const struct among a_8[7] =
+{
+{ 1, s_8_0, -1, 3, 0},
+{ 2, s_8_1, 0, 3, 0},
+{ 2, s_8_2, 0, 3, 0},
+{ 2, s_8_3, 0, 3, 0},
+{ 3, s_8_4, 0, 1, 0},
+{ 3, s_8_5, 0, 2, 0},
+{ 3, s_8_6, 0, 3, 0}
+};
+
+static const symbol s_9_0[3] = { 0xC3, 0xA9, 'i' };
+static const symbol s_9_1[5] = { 0xC3, 0xA1, 0xC3, 0xA9, 'i' };
+static const symbol s_9_2[5] = { 0xC3, 0xA9, 0xC3, 0xA9, 'i' };
+static const symbol s_9_3[2] = { 0xC3, 0xA9 };
+static const symbol s_9_4[3] = { 'k', 0xC3, 0xA9 };
+static const symbol s_9_5[4] = { 'a', 'k', 0xC3, 0xA9 };
+static const symbol s_9_6[4] = { 'e', 'k', 0xC3, 0xA9 };
+static const symbol s_9_7[4] = { 'o', 'k', 0xC3, 0xA9 };
+static const symbol s_9_8[5] = { 0xC3, 0xA1, 'k', 0xC3, 0xA9 };
+static const symbol s_9_9[5] = { 0xC3, 0xA9, 'k', 0xC3, 0xA9 };
+static const symbol s_9_10[5] = { 0xC3, 0xB6, 'k', 0xC3, 0xA9 };
+static const symbol s_9_11[4] = { 0xC3, 0xA9, 0xC3, 0xA9 };
+
+static const struct among a_9[12] =
+{
+{ 3, s_9_0, -1, 1, 0},
+{ 5, s_9_1, 0, 3, 0},
+{ 5, s_9_2, 0, 2, 0},
+{ 2, s_9_3, -1, 1, 0},
+{ 3, s_9_4, 3, 1, 0},
+{ 4, s_9_5, 4, 1, 0},
+{ 4, s_9_6, 4, 1, 0},
+{ 4, s_9_7, 4, 1, 0},
+{ 5, s_9_8, 4, 3, 0},
+{ 5, s_9_9, 4, 2, 0},
+{ 5, s_9_10, 4, 1, 0},
+{ 4, s_9_11, 3, 2, 0}
+};
+
+static const symbol s_10_0[1] = { 'a' };
+static const symbol s_10_1[2] = { 'j', 'a' };
+static const symbol s_10_2[1] = { 'd' };
+static const symbol s_10_3[2] = { 'a', 'd' };
+static const symbol s_10_4[2] = { 'e', 'd' };
+static const symbol s_10_5[2] = { 'o', 'd' };
+static const symbol s_10_6[3] = { 0xC3, 0xA1, 'd' };
+static const symbol s_10_7[3] = { 0xC3, 0xA9, 'd' };
+static const symbol s_10_8[3] = { 0xC3, 0xB6, 'd' };
+static const symbol s_10_9[1] = { 'e' };
+static const symbol s_10_10[2] = { 'j', 'e' };
+static const symbol s_10_11[2] = { 'n', 'k' };
+static const symbol s_10_12[3] = { 'u', 'n', 'k' };
+static const symbol s_10_13[4] = { 0xC3, 0xA1, 'n', 'k' };
+static const symbol s_10_14[4] = { 0xC3, 0xA9, 'n', 'k' };
+static const symbol s_10_15[4] = { 0xC3, 0xBC, 'n', 'k' };
+static const symbol s_10_16[2] = { 'u', 'k' };
+static const symbol s_10_17[3] = { 'j', 'u', 'k' };
+static const symbol s_10_18[5] = { 0xC3, 0xA1, 'j', 'u', 'k' };
+static const symbol s_10_19[3] = { 0xC3, 0xBC, 'k' };
+static const symbol s_10_20[4] = { 'j', 0xC3, 0xBC, 'k' };
+static const symbol s_10_21[6] = { 0xC3, 0xA9, 'j', 0xC3, 0xBC, 'k' };
+static const symbol s_10_22[1] = { 'm' };
+static const symbol s_10_23[2] = { 'a', 'm' };
+static const symbol s_10_24[2] = { 'e', 'm' };
+static const symbol s_10_25[2] = { 'o', 'm' };
+static const symbol s_10_26[3] = { 0xC3, 0xA1, 'm' };
+static const symbol s_10_27[3] = { 0xC3, 0xA9, 'm' };
+static const symbol s_10_28[1] = { 'o' };
+static const symbol s_10_29[2] = { 0xC3, 0xA1 };
+static const symbol s_10_30[2] = { 0xC3, 0xA9 };
+
+static const struct among a_10[31] =
+{
+{ 1, s_10_0, -1, 1, 0},
+{ 2, s_10_1, 0, 1, 0},
+{ 1, s_10_2, -1, 1, 0},
+{ 2, s_10_3, 2, 1, 0},
+{ 2, s_10_4, 2, 1, 0},
+{ 2, s_10_5, 2, 1, 0},
+{ 3, s_10_6, 2, 2, 0},
+{ 3, s_10_7, 2, 3, 0},
+{ 3, s_10_8, 2, 1, 0},
+{ 1, s_10_9, -1, 1, 0},
+{ 2, s_10_10, 9, 1, 0},
+{ 2, s_10_11, -1, 1, 0},
+{ 3, s_10_12, 11, 1, 0},
+{ 4, s_10_13, 11, 2, 0},
+{ 4, s_10_14, 11, 3, 0},
+{ 4, s_10_15, 11, 1, 0},
+{ 2, s_10_16, -1, 1, 0},
+{ 3, s_10_17, 16, 1, 0},
+{ 5, s_10_18, 17, 2, 0},
+{ 3, s_10_19, -1, 1, 0},
+{ 4, s_10_20, 19, 1, 0},
+{ 6, s_10_21, 20, 3, 0},
+{ 1, s_10_22, -1, 1, 0},
+{ 2, s_10_23, 22, 1, 0},
+{ 2, s_10_24, 22, 1, 0},
+{ 2, s_10_25, 22, 1, 0},
+{ 3, s_10_26, 22, 2, 0},
+{ 3, s_10_27, 22, 3, 0},
+{ 1, s_10_28, -1, 1, 0},
+{ 2, s_10_29, -1, 2, 0},
+{ 2, s_10_30, -1, 3, 0}
+};
+
+static const symbol s_11_0[2] = { 'i', 'd' };
+static const symbol s_11_1[3] = { 'a', 'i', 'd' };
+static const symbol s_11_2[4] = { 'j', 'a', 'i', 'd' };
+static const symbol s_11_3[3] = { 'e', 'i', 'd' };
+static const symbol s_11_4[4] = { 'j', 'e', 'i', 'd' };
+static const symbol s_11_5[4] = { 0xC3, 0xA1, 'i', 'd' };
+static const symbol s_11_6[4] = { 0xC3, 0xA9, 'i', 'd' };
+static const symbol s_11_7[1] = { 'i' };
+static const symbol s_11_8[2] = { 'a', 'i' };
+static const symbol s_11_9[3] = { 'j', 'a', 'i' };
+static const symbol s_11_10[2] = { 'e', 'i' };
+static const symbol s_11_11[3] = { 'j', 'e', 'i' };
+static const symbol s_11_12[3] = { 0xC3, 0xA1, 'i' };
+static const symbol s_11_13[3] = { 0xC3, 0xA9, 'i' };
+static const symbol s_11_14[4] = { 'i', 't', 'e', 'k' };
+static const symbol s_11_15[5] = { 'e', 'i', 't', 'e', 'k' };
+static const symbol s_11_16[6] = { 'j', 'e', 'i', 't', 'e', 'k' };
+static const symbol s_11_17[6] = { 0xC3, 0xA9, 'i', 't', 'e', 'k' };
+static const symbol s_11_18[2] = { 'i', 'k' };
+static const symbol s_11_19[3] = { 'a', 'i', 'k' };
+static const symbol s_11_20[4] = { 'j', 'a', 'i', 'k' };
+static const symbol s_11_21[3] = { 'e', 'i', 'k' };
+static const symbol s_11_22[4] = { 'j', 'e', 'i', 'k' };
+static const symbol s_11_23[4] = { 0xC3, 0xA1, 'i', 'k' };
+static const symbol s_11_24[4] = { 0xC3, 0xA9, 'i', 'k' };
+static const symbol s_11_25[3] = { 'i', 'n', 'k' };
+static const symbol s_11_26[4] = { 'a', 'i', 'n', 'k' };
+static const symbol s_11_27[5] = { 'j', 'a', 'i', 'n', 'k' };
+static const symbol s_11_28[4] = { 'e', 'i', 'n', 'k' };
+static const symbol s_11_29[5] = { 'j', 'e', 'i', 'n', 'k' };
+static const symbol s_11_30[5] = { 0xC3, 0xA1, 'i', 'n', 'k' };
+static const symbol s_11_31[5] = { 0xC3, 0xA9, 'i', 'n', 'k' };
+static const symbol s_11_32[5] = { 'a', 'i', 't', 'o', 'k' };
+static const symbol s_11_33[6] = { 'j', 'a', 'i', 't', 'o', 'k' };
+static const symbol s_11_34[6] = { 0xC3, 0xA1, 'i', 't', 'o', 'k' };
+static const symbol s_11_35[2] = { 'i', 'm' };
+static const symbol s_11_36[3] = { 'a', 'i', 'm' };
+static const symbol s_11_37[4] = { 'j', 'a', 'i', 'm' };
+static const symbol s_11_38[3] = { 'e', 'i', 'm' };
+static const symbol s_11_39[4] = { 'j', 'e', 'i', 'm' };
+static const symbol s_11_40[4] = { 0xC3, 0xA1, 'i', 'm' };
+static const symbol s_11_41[4] = { 0xC3, 0xA9, 'i', 'm' };
+
+static const struct among a_11[42] =
+{
+{ 2, s_11_0, -1, 1, 0},
+{ 3, s_11_1, 0, 1, 0},
+{ 4, s_11_2, 1, 1, 0},
+{ 3, s_11_3, 0, 1, 0},
+{ 4, s_11_4, 3, 1, 0},
+{ 4, s_11_5, 0, 2, 0},
+{ 4, s_11_6, 0, 3, 0},
+{ 1, s_11_7, -1, 1, 0},
+{ 2, s_11_8, 7, 1, 0},
+{ 3, s_11_9, 8, 1, 0},
+{ 2, s_11_10, 7, 1, 0},
+{ 3, s_11_11, 10, 1, 0},
+{ 3, s_11_12, 7, 2, 0},
+{ 3, s_11_13, 7, 3, 0},
+{ 4, s_11_14, -1, 1, 0},
+{ 5, s_11_15, 14, 1, 0},
+{ 6, s_11_16, 15, 1, 0},
+{ 6, s_11_17, 14, 3, 0},
+{ 2, s_11_18, -1, 1, 0},
+{ 3, s_11_19, 18, 1, 0},
+{ 4, s_11_20, 19, 1, 0},
+{ 3, s_11_21, 18, 1, 0},
+{ 4, s_11_22, 21, 1, 0},
+{ 4, s_11_23, 18, 2, 0},
+{ 4, s_11_24, 18, 3, 0},
+{ 3, s_11_25, -1, 1, 0},
+{ 4, s_11_26, 25, 1, 0},
+{ 5, s_11_27, 26, 1, 0},
+{ 4, s_11_28, 25, 1, 0},
+{ 5, s_11_29, 28, 1, 0},
+{ 5, s_11_30, 25, 2, 0},
+{ 5, s_11_31, 25, 3, 0},
+{ 5, s_11_32, -1, 1, 0},
+{ 6, s_11_33, 32, 1, 0},
+{ 6, s_11_34, -1, 2, 0},
+{ 2, s_11_35, -1, 1, 0},
+{ 3, s_11_36, 35, 1, 0},
+{ 4, s_11_37, 36, 1, 0},
+{ 3, s_11_38, 35, 1, 0},
+{ 4, s_11_39, 38, 1, 0},
+{ 4, s_11_40, 35, 2, 0},
+{ 4, s_11_41, 35, 3, 0}
+};
+
+static const unsigned char g_v[] = { 17, 65, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 17, 36, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1 };
+
+static const symbol s_0[] = { 'a' };
+static const symbol s_1[] = { 'e' };
+static const symbol s_2[] = { 'e' };
+static const symbol s_3[] = { 'a' };
+static const symbol s_4[] = { 'a' };
+static const symbol s_5[] = { 'e' };
+static const symbol s_6[] = { 'a' };
+static const symbol s_7[] = { 'e' };
+static const symbol s_8[] = { 'e' };
+static const symbol s_9[] = { 'a' };
+static const symbol s_10[] = { 'a' };
+static const symbol s_11[] = { 'e' };
+static const symbol s_12[] = { 'a' };
+static const symbol s_13[] = { 'e' };
+
+static int r_mark_regions(struct SN_env * z) {
+ z->I[0] = z->l;
+ { int c1 = z->c;
+ if (in_grouping_U(z, g_v, 97, 369, 0)) goto lab1;
+ if (in_grouping_U(z, g_v, 97, 369, 1) < 0) goto lab1;
+ { int c2 = z->c;
+ if (z->c + 1 >= z->l || z->p[z->c + 1] >> 5 != 3 || !((101187584 >> (z->p[z->c + 1] & 0x1f)) & 1)) goto lab3;
+ if (!(find_among(z, a_0, 8))) goto lab3;
+ goto lab2;
+ lab3:
+ z->c = c2;
+ { int ret = skip_utf8(z->p, z->c, z->l, 1);
+ if (ret < 0) goto lab1;
+ z->c = ret;
+ }
+ }
+ lab2:
+ z->I[0] = z->c;
+ goto lab0;
+ lab1:
+ z->c = c1;
+ if (out_grouping_U(z, g_v, 97, 369, 0)) return 0;
+ {
+ int ret = out_grouping_U(z, g_v, 97, 369, 1);
+ if (ret < 0) return 0;
+ z->c += ret;
+ }
+ z->I[0] = z->c;
+ }
+lab0:
+ return 1;
+}
+
+static int r_R1(struct SN_env * z) {
+ if (!(z->I[0] <= z->c)) return 0;
+ return 1;
+}
+
+static int r_v_ending(struct SN_env * z) {
+ int among_var;
+ z->ket = z->c;
+ if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 161 && z->p[z->c - 1] != 169)) return 0;
+ among_var = find_among_b(z, a_1, 2);
+ if (!(among_var)) return 0;
+ z->bra = z->c;
+ { int ret = r_R1(z);
+ if (ret <= 0) return ret;
+ }
+ switch (among_var) {
+ case 1:
+ { int ret = slice_from_s(z, 1, s_0);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 2:
+ { int ret = slice_from_s(z, 1, s_1);
+ if (ret < 0) return ret;
+ }
+ break;
+ }
+ return 1;
+}
+
+static int r_double(struct SN_env * z) {
+ { int m_test1 = z->l - z->c;
+ if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((106790108 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
+ if (!(find_among_b(z, a_2, 23))) return 0;
+ z->c = z->l - m_test1;
+ }
+ return 1;
+}
+
+static int r_undouble(struct SN_env * z) {
+ { int ret = skip_b_utf8(z->p, z->c, z->lb, 1);
+ if (ret < 0) return 0;
+ z->c = ret;
+ }
+ z->ket = z->c;
+ { int ret = skip_b_utf8(z->p, z->c, z->lb, 1);
+ if (ret < 0) return 0;
+ z->c = ret;
+ }
+ z->bra = z->c;
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ return 1;
+}
+
+static int r_instrum(struct SN_env * z) {
+ z->ket = z->c;
+ if (z->c - 1 <= z->lb || z->p[z->c - 1] != 108) return 0;
+ if (!(find_among_b(z, a_3, 2))) return 0;
+ z->bra = z->c;
+ { int ret = r_R1(z);
+ if (ret <= 0) return ret;
+ }
+ { int ret = r_double(z);
+ if (ret <= 0) return ret;
+ }
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ { int ret = r_undouble(z);
+ if (ret <= 0) return ret;
+ }
+ return 1;
+}
+
+static int r_case(struct SN_env * z) {
+ z->ket = z->c;
+ if (!(find_among_b(z, a_4, 44))) return 0;
+ z->bra = z->c;
+ { int ret = r_R1(z);
+ if (ret <= 0) return ret;
+ }
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ { int ret = r_v_ending(z);
+ if (ret <= 0) return ret;
+ }
+ return 1;
+}
+
+static int r_case_special(struct SN_env * z) {
+ int among_var;
+ z->ket = z->c;
+ if (z->c - 2 <= z->lb || (z->p[z->c - 1] != 110 && z->p[z->c - 1] != 116)) return 0;
+ among_var = find_among_b(z, a_5, 3);
+ if (!(among_var)) return 0;
+ z->bra = z->c;
+ { int ret = r_R1(z);
+ if (ret <= 0) return ret;
+ }
+ switch (among_var) {
+ case 1:
+ { int ret = slice_from_s(z, 1, s_2);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 2:
+ { int ret = slice_from_s(z, 1, s_3);
+ if (ret < 0) return ret;
+ }
+ break;
+ }
+ return 1;
+}
+
+static int r_case_other(struct SN_env * z) {
+ int among_var;
+ z->ket = z->c;
+ if (z->c - 3 <= z->lb || z->p[z->c - 1] != 108) return 0;
+ among_var = find_among_b(z, a_6, 6);
+ if (!(among_var)) return 0;
+ z->bra = z->c;
+ { int ret = r_R1(z);
+ if (ret <= 0) return ret;
+ }
+ switch (among_var) {
+ case 1:
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 2:
+ { int ret = slice_from_s(z, 1, s_4);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 3:
+ { int ret = slice_from_s(z, 1, s_5);
+ if (ret < 0) return ret;
+ }
+ break;
+ }
+ return 1;
+}
+
+static int r_factive(struct SN_env * z) {
+ z->ket = z->c;
+ if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 161 && z->p[z->c - 1] != 169)) return 0;
+ if (!(find_among_b(z, a_7, 2))) return 0;
+ z->bra = z->c;
+ { int ret = r_R1(z);
+ if (ret <= 0) return ret;
+ }
+ { int ret = r_double(z);
+ if (ret <= 0) return ret;
+ }
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ { int ret = r_undouble(z);
+ if (ret <= 0) return ret;
+ }
+ return 1;
+}
+
+static int r_plural(struct SN_env * z) {
+ int among_var;
+ z->ket = z->c;
+ if (z->c <= z->lb || z->p[z->c - 1] != 107) return 0;
+ among_var = find_among_b(z, a_8, 7);
+ if (!(among_var)) return 0;
+ z->bra = z->c;
+ { int ret = r_R1(z);
+ if (ret <= 0) return ret;
+ }
+ switch (among_var) {
+ case 1:
+ { int ret = slice_from_s(z, 1, s_6);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 2:
+ { int ret = slice_from_s(z, 1, s_7);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 3:
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ break;
+ }
+ return 1;
+}
+
+static int r_owned(struct SN_env * z) {
+ int among_var;
+ z->ket = z->c;
+ if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 105 && z->p[z->c - 1] != 169)) return 0;
+ among_var = find_among_b(z, a_9, 12);
+ if (!(among_var)) return 0;
+ z->bra = z->c;
+ { int ret = r_R1(z);
+ if (ret <= 0) return ret;
+ }
+ switch (among_var) {
+ case 1:
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 2:
+ { int ret = slice_from_s(z, 1, s_8);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 3:
+ { int ret = slice_from_s(z, 1, s_9);
+ if (ret < 0) return ret;
+ }
+ break;
+ }
+ return 1;
+}
+
+static int r_sing_owner(struct SN_env * z) {
+ int among_var;
+ z->ket = z->c;
+ among_var = find_among_b(z, a_10, 31);
+ if (!(among_var)) return 0;
+ z->bra = z->c;
+ { int ret = r_R1(z);
+ if (ret <= 0) return ret;
+ }
+ switch (among_var) {
+ case 1:
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 2:
+ { int ret = slice_from_s(z, 1, s_10);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 3:
+ { int ret = slice_from_s(z, 1, s_11);
+ if (ret < 0) return ret;
+ }
+ break;
+ }
+ return 1;
+}
+
+static int r_plur_owner(struct SN_env * z) {
+ int among_var;
+ z->ket = z->c;
+ if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((10768 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
+ among_var = find_among_b(z, a_11, 42);
+ if (!(among_var)) return 0;
+ z->bra = z->c;
+ { int ret = r_R1(z);
+ if (ret <= 0) return ret;
+ }
+ switch (among_var) {
+ case 1:
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 2:
+ { int ret = slice_from_s(z, 1, s_12);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 3:
+ { int ret = slice_from_s(z, 1, s_13);
+ if (ret < 0) return ret;
+ }
+ break;
+ }
+ return 1;
+}
+
+extern int hungarian_UTF_8_stem(struct SN_env * z) {
+ { int c1 = z->c;
+ { int ret = r_mark_regions(z);
+ if (ret < 0) return ret;
+ }
+ z->c = c1;
+ }
+ z->lb = z->c; z->c = z->l;
+
+ { int m2 = z->l - z->c; (void)m2;
+ { int ret = r_instrum(z);
+ if (ret < 0) return ret;
+ }
+ z->c = z->l - m2;
+ }
+ { int m3 = z->l - z->c; (void)m3;
+ { int ret = r_case(z);
+ if (ret < 0) return ret;
+ }
+ z->c = z->l - m3;
+ }
+ { int m4 = z->l - z->c; (void)m4;
+ { int ret = r_case_special(z);
+ if (ret < 0) return ret;
+ }
+ z->c = z->l - m4;
+ }
+ { int m5 = z->l - z->c; (void)m5;
+ { int ret = r_case_other(z);
+ if (ret < 0) return ret;
+ }
+ z->c = z->l - m5;
+ }
+ { int m6 = z->l - z->c; (void)m6;
+ { int ret = r_factive(z);
+ if (ret < 0) return ret;
+ }
+ z->c = z->l - m6;
+ }
+ { int m7 = z->l - z->c; (void)m7;
+ { int ret = r_owned(z);
+ if (ret < 0) return ret;
+ }
+ z->c = z->l - m7;
+ }
+ { int m8 = z->l - z->c; (void)m8;
+ { int ret = r_sing_owner(z);
+ if (ret < 0) return ret;
+ }
+ z->c = z->l - m8;
+ }
+ { int m9 = z->l - z->c; (void)m9;
+ { int ret = r_plur_owner(z);
+ if (ret < 0) return ret;
+ }
+ z->c = z->l - m9;
+ }
+ { int m10 = z->l - z->c; (void)m10;
+ { int ret = r_plural(z);
+ if (ret < 0) return ret;
+ }
+ z->c = z->l - m10;
+ }
+ z->c = z->lb;
+ return 1;
+}
+
+extern struct SN_env * hungarian_UTF_8_create_env(void) { return SN_create_env(0, 1); }
+
+extern void hungarian_UTF_8_close_env(struct SN_env * z) { SN_close_env(z, 0); }
+
diff --git a/src/backend/snowball/libstemmer/stem_UTF_8_indonesian.c b/src/backend/snowball/libstemmer/stem_UTF_8_indonesian.c
new file mode 100644
index 0000000..ee9473a
--- /dev/null
+++ b/src/backend/snowball/libstemmer/stem_UTF_8_indonesian.c
@@ -0,0 +1,407 @@
+/* Generated by Snowball 2.2.0 - https://snowballstem.org/ */
+
+#include "header.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+extern int indonesian_UTF_8_stem(struct SN_env * z);
+#ifdef __cplusplus
+}
+#endif
+static int r_VOWEL(struct SN_env * z);
+static int r_SUFFIX_I_OK(struct SN_env * z);
+static int r_SUFFIX_AN_OK(struct SN_env * z);
+static int r_SUFFIX_KAN_OK(struct SN_env * z);
+static int r_KER(struct SN_env * z);
+static int r_remove_suffix(struct SN_env * z);
+static int r_remove_second_order_prefix(struct SN_env * z);
+static int r_remove_first_order_prefix(struct SN_env * z);
+static int r_remove_possessive_pronoun(struct SN_env * z);
+static int r_remove_particle(struct SN_env * z);
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+extern struct SN_env * indonesian_UTF_8_create_env(void);
+extern void indonesian_UTF_8_close_env(struct SN_env * z);
+
+
+#ifdef __cplusplus
+}
+#endif
+static const symbol s_0_0[3] = { 'k', 'a', 'h' };
+static const symbol s_0_1[3] = { 'l', 'a', 'h' };
+static const symbol s_0_2[3] = { 'p', 'u', 'n' };
+
+static const struct among a_0[3] =
+{
+{ 3, s_0_0, -1, 1, 0},
+{ 3, s_0_1, -1, 1, 0},
+{ 3, s_0_2, -1, 1, 0}
+};
+
+static const symbol s_1_0[3] = { 'n', 'y', 'a' };
+static const symbol s_1_1[2] = { 'k', 'u' };
+static const symbol s_1_2[2] = { 'm', 'u' };
+
+static const struct among a_1[3] =
+{
+{ 3, s_1_0, -1, 1, 0},
+{ 2, s_1_1, -1, 1, 0},
+{ 2, s_1_2, -1, 1, 0}
+};
+
+static const symbol s_2_0[1] = { 'i' };
+static const symbol s_2_1[2] = { 'a', 'n' };
+static const symbol s_2_2[3] = { 'k', 'a', 'n' };
+
+static const struct among a_2[3] =
+{
+{ 1, s_2_0, -1, 1, r_SUFFIX_I_OK},
+{ 2, s_2_1, -1, 1, r_SUFFIX_AN_OK},
+{ 3, s_2_2, 1, 1, r_SUFFIX_KAN_OK}
+};
+
+static const symbol s_3_0[2] = { 'd', 'i' };
+static const symbol s_3_1[2] = { 'k', 'e' };
+static const symbol s_3_2[2] = { 'm', 'e' };
+static const symbol s_3_3[3] = { 'm', 'e', 'm' };
+static const symbol s_3_4[3] = { 'm', 'e', 'n' };
+static const symbol s_3_5[4] = { 'm', 'e', 'n', 'g' };
+static const symbol s_3_6[4] = { 'm', 'e', 'n', 'y' };
+static const symbol s_3_7[3] = { 'p', 'e', 'm' };
+static const symbol s_3_8[3] = { 'p', 'e', 'n' };
+static const symbol s_3_9[4] = { 'p', 'e', 'n', 'g' };
+static const symbol s_3_10[4] = { 'p', 'e', 'n', 'y' };
+static const symbol s_3_11[3] = { 't', 'e', 'r' };
+
+static const struct among a_3[12] =
+{
+{ 2, s_3_0, -1, 1, 0},
+{ 2, s_3_1, -1, 2, 0},
+{ 2, s_3_2, -1, 1, 0},
+{ 3, s_3_3, 2, 5, 0},
+{ 3, s_3_4, 2, 1, 0},
+{ 4, s_3_5, 4, 1, 0},
+{ 4, s_3_6, 4, 3, r_VOWEL},
+{ 3, s_3_7, -1, 6, 0},
+{ 3, s_3_8, -1, 2, 0},
+{ 4, s_3_9, 8, 2, 0},
+{ 4, s_3_10, 8, 4, r_VOWEL},
+{ 3, s_3_11, -1, 1, 0}
+};
+
+static const symbol s_4_0[2] = { 'b', 'e' };
+static const symbol s_4_1[7] = { 'b', 'e', 'l', 'a', 'j', 'a', 'r' };
+static const symbol s_4_2[3] = { 'b', 'e', 'r' };
+static const symbol s_4_3[2] = { 'p', 'e' };
+static const symbol s_4_4[7] = { 'p', 'e', 'l', 'a', 'j', 'a', 'r' };
+static const symbol s_4_5[3] = { 'p', 'e', 'r' };
+
+static const struct among a_4[6] =
+{
+{ 2, s_4_0, -1, 3, r_KER},
+{ 7, s_4_1, 0, 4, 0},
+{ 3, s_4_2, 0, 3, 0},
+{ 2, s_4_3, -1, 1, 0},
+{ 7, s_4_4, 3, 2, 0},
+{ 3, s_4_5, 3, 1, 0}
+};
+
+static const unsigned char g_vowel[] = { 17, 65, 16 };
+
+static const symbol s_0[] = { 'e', 'r' };
+static const symbol s_1[] = { 's' };
+static const symbol s_2[] = { 's' };
+static const symbol s_3[] = { 'p' };
+static const symbol s_4[] = { 'p' };
+static const symbol s_5[] = { 'a', 'j', 'a', 'r' };
+static const symbol s_6[] = { 'a', 'j', 'a', 'r' };
+
+static int r_remove_particle(struct SN_env * z) {
+ z->ket = z->c;
+ if (z->c - 2 <= z->lb || (z->p[z->c - 1] != 104 && z->p[z->c - 1] != 110)) return 0;
+ if (!(find_among_b(z, a_0, 3))) return 0;
+ z->bra = z->c;
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ z->I[1] -= 1;
+ return 1;
+}
+
+static int r_remove_possessive_pronoun(struct SN_env * z) {
+ z->ket = z->c;
+ if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 97 && z->p[z->c - 1] != 117)) return 0;
+ if (!(find_among_b(z, a_1, 3))) return 0;
+ z->bra = z->c;
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ z->I[1] -= 1;
+ return 1;
+}
+
+static int r_SUFFIX_KAN_OK(struct SN_env * z) {
+
+ if (!(z->I[0] != 3)) return 0;
+ if (!(z->I[0] != 2)) return 0;
+ return 1;
+}
+
+static int r_SUFFIX_AN_OK(struct SN_env * z) {
+ if (!(z->I[0] != 1)) return 0;
+ return 1;
+}
+
+static int r_SUFFIX_I_OK(struct SN_env * z) {
+ if (!(z->I[0] <= 2)) return 0;
+ { int m1 = z->l - z->c; (void)m1;
+ if (z->c <= z->lb || z->p[z->c - 1] != 's') goto lab0;
+ z->c--;
+ return 0;
+ lab0:
+ z->c = z->l - m1;
+ }
+ return 1;
+}
+
+static int r_remove_suffix(struct SN_env * z) {
+ z->ket = z->c;
+ if (z->c <= z->lb || (z->p[z->c - 1] != 105 && z->p[z->c - 1] != 110)) return 0;
+ if (!(find_among_b(z, a_2, 3))) return 0;
+ z->bra = z->c;
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ z->I[1] -= 1;
+ return 1;
+}
+
+static int r_VOWEL(struct SN_env * z) {
+ if (in_grouping_U(z, g_vowel, 97, 117, 0)) return 0;
+ return 1;
+}
+
+static int r_KER(struct SN_env * z) {
+ if (out_grouping_U(z, g_vowel, 97, 117, 0)) return 0;
+ if (!(eq_s(z, 2, s_0))) return 0;
+ return 1;
+}
+
+static int r_remove_first_order_prefix(struct SN_env * z) {
+ int among_var;
+ z->bra = z->c;
+ if (z->c + 1 >= z->l || (z->p[z->c + 1] != 105 && z->p[z->c + 1] != 101)) return 0;
+ among_var = find_among(z, a_3, 12);
+ if (!(among_var)) return 0;
+ z->ket = z->c;
+ switch (among_var) {
+ case 1:
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ z->I[0] = 1;
+ z->I[1] -= 1;
+ break;
+ case 2:
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ z->I[0] = 3;
+ z->I[1] -= 1;
+ break;
+ case 3:
+ z->I[0] = 1;
+ { int ret = slice_from_s(z, 1, s_1);
+ if (ret < 0) return ret;
+ }
+ z->I[1] -= 1;
+ break;
+ case 4:
+ z->I[0] = 3;
+ { int ret = slice_from_s(z, 1, s_2);
+ if (ret < 0) return ret;
+ }
+ z->I[1] -= 1;
+ break;
+ case 5:
+ z->I[0] = 1;
+ z->I[1] -= 1;
+ { int c1 = z->c;
+ { int c2 = z->c;
+ if (in_grouping_U(z, g_vowel, 97, 117, 0)) goto lab1;
+ z->c = c2;
+ { int ret = slice_from_s(z, 1, s_3);
+ if (ret < 0) return ret;
+ }
+ }
+ goto lab0;
+ lab1:
+ z->c = c1;
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ }
+ lab0:
+ break;
+ case 6:
+ z->I[0] = 3;
+ z->I[1] -= 1;
+ { int c3 = z->c;
+ { int c4 = z->c;
+ if (in_grouping_U(z, g_vowel, 97, 117, 0)) goto lab3;
+ z->c = c4;
+ { int ret = slice_from_s(z, 1, s_4);
+ if (ret < 0) return ret;
+ }
+ }
+ goto lab2;
+ lab3:
+ z->c = c3;
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ }
+ lab2:
+ break;
+ }
+ return 1;
+}
+
+static int r_remove_second_order_prefix(struct SN_env * z) {
+ int among_var;
+ z->bra = z->c;
+ if (z->c + 1 >= z->l || z->p[z->c + 1] != 101) return 0;
+ among_var = find_among(z, a_4, 6);
+ if (!(among_var)) return 0;
+ z->ket = z->c;
+ switch (among_var) {
+ case 1:
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ z->I[0] = 2;
+ z->I[1] -= 1;
+ break;
+ case 2:
+ { int ret = slice_from_s(z, 4, s_5);
+ if (ret < 0) return ret;
+ }
+ z->I[1] -= 1;
+ break;
+ case 3:
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ z->I[0] = 4;
+ z->I[1] -= 1;
+ break;
+ case 4:
+ { int ret = slice_from_s(z, 4, s_6);
+ if (ret < 0) return ret;
+ }
+ z->I[0] = 4;
+ z->I[1] -= 1;
+ break;
+ }
+ return 1;
+}
+
+extern int indonesian_UTF_8_stem(struct SN_env * z) {
+ z->I[1] = 0;
+ { int c1 = z->c;
+ while(1) {
+ int c2 = z->c;
+ {
+ int ret = out_grouping_U(z, g_vowel, 97, 117, 1);
+ if (ret < 0) goto lab1;
+ z->c += ret;
+ }
+ z->I[1] += 1;
+ continue;
+ lab1:
+ z->c = c2;
+ break;
+ }
+ z->c = c1;
+ }
+ if (!(z->I[1] > 2)) return 0;
+ z->I[0] = 0;
+ z->lb = z->c; z->c = z->l;
+
+ { int m3 = z->l - z->c; (void)m3;
+ { int ret = r_remove_particle(z);
+ if (ret < 0) return ret;
+ }
+ z->c = z->l - m3;
+ }
+ if (!(z->I[1] > 2)) return 0;
+ { int m4 = z->l - z->c; (void)m4;
+ { int ret = r_remove_possessive_pronoun(z);
+ if (ret < 0) return ret;
+ }
+ z->c = z->l - m4;
+ }
+ z->c = z->lb;
+ if (!(z->I[1] > 2)) return 0;
+ { int c5 = z->c;
+ { int c_test6 = z->c;
+ { int ret = r_remove_first_order_prefix(z);
+ if (ret == 0) goto lab3;
+ if (ret < 0) return ret;
+ }
+ { int c7 = z->c;
+ { int c_test8 = z->c;
+ if (!(z->I[1] > 2)) goto lab4;
+ z->lb = z->c; z->c = z->l;
+
+ { int ret = r_remove_suffix(z);
+ if (ret == 0) goto lab4;
+ if (ret < 0) return ret;
+ }
+ z->c = z->lb;
+ z->c = c_test8;
+ }
+ if (!(z->I[1] > 2)) goto lab4;
+ { int ret = r_remove_second_order_prefix(z);
+ if (ret == 0) goto lab4;
+ if (ret < 0) return ret;
+ }
+ lab4:
+ z->c = c7;
+ }
+ z->c = c_test6;
+ }
+ goto lab2;
+ lab3:
+ z->c = c5;
+ { int c9 = z->c;
+ { int ret = r_remove_second_order_prefix(z);
+ if (ret < 0) return ret;
+ }
+ z->c = c9;
+ }
+ { int c10 = z->c;
+ if (!(z->I[1] > 2)) goto lab5;
+ z->lb = z->c; z->c = z->l;
+
+ { int ret = r_remove_suffix(z);
+ if (ret == 0) goto lab5;
+ if (ret < 0) return ret;
+ }
+ z->c = z->lb;
+ lab5:
+ z->c = c10;
+ }
+ }
+lab2:
+ return 1;
+}
+
+extern struct SN_env * indonesian_UTF_8_create_env(void) { return SN_create_env(0, 2); }
+
+extern void indonesian_UTF_8_close_env(struct SN_env * z) { SN_close_env(z, 0); }
+
diff --git a/src/backend/snowball/libstemmer/stem_UTF_8_irish.c b/src/backend/snowball/libstemmer/stem_UTF_8_irish.c
new file mode 100644
index 0000000..9410819
--- /dev/null
+++ b/src/backend/snowball/libstemmer/stem_UTF_8_irish.c
@@ -0,0 +1,470 @@
+/* Generated by Snowball 2.2.0 - https://snowballstem.org/ */
+
+#include "header.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+extern int irish_UTF_8_stem(struct SN_env * z);
+#ifdef __cplusplus
+}
+#endif
+static int r_verb_sfx(struct SN_env * z);
+static int r_deriv(struct SN_env * z);
+static int r_noun_sfx(struct SN_env * z);
+static int r_mark_regions(struct SN_env * z);
+static int r_initial_morph(struct SN_env * z);
+static int r_RV(struct SN_env * z);
+static int r_R2(struct SN_env * z);
+static int r_R1(struct SN_env * z);
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+extern struct SN_env * irish_UTF_8_create_env(void);
+extern void irish_UTF_8_close_env(struct SN_env * z);
+
+
+#ifdef __cplusplus
+}
+#endif
+static const symbol s_0_0[2] = { 'b', '\'' };
+static const symbol s_0_1[2] = { 'b', 'h' };
+static const symbol s_0_2[3] = { 'b', 'h', 'f' };
+static const symbol s_0_3[2] = { 'b', 'p' };
+static const symbol s_0_4[2] = { 'c', 'h' };
+static const symbol s_0_5[2] = { 'd', '\'' };
+static const symbol s_0_6[4] = { 'd', '\'', 'f', 'h' };
+static const symbol s_0_7[2] = { 'd', 'h' };
+static const symbol s_0_8[2] = { 'd', 't' };
+static const symbol s_0_9[2] = { 'f', 'h' };
+static const symbol s_0_10[2] = { 'g', 'c' };
+static const symbol s_0_11[2] = { 'g', 'h' };
+static const symbol s_0_12[2] = { 'h', '-' };
+static const symbol s_0_13[2] = { 'm', '\'' };
+static const symbol s_0_14[2] = { 'm', 'b' };
+static const symbol s_0_15[2] = { 'm', 'h' };
+static const symbol s_0_16[2] = { 'n', '-' };
+static const symbol s_0_17[2] = { 'n', 'd' };
+static const symbol s_0_18[2] = { 'n', 'g' };
+static const symbol s_0_19[2] = { 'p', 'h' };
+static const symbol s_0_20[2] = { 's', 'h' };
+static const symbol s_0_21[2] = { 't', '-' };
+static const symbol s_0_22[2] = { 't', 'h' };
+static const symbol s_0_23[2] = { 't', 's' };
+
+static const struct among a_0[24] =
+{
+{ 2, s_0_0, -1, 1, 0},
+{ 2, s_0_1, -1, 4, 0},
+{ 3, s_0_2, 1, 2, 0},
+{ 2, s_0_3, -1, 8, 0},
+{ 2, s_0_4, -1, 5, 0},
+{ 2, s_0_5, -1, 1, 0},
+{ 4, s_0_6, 5, 2, 0},
+{ 2, s_0_7, -1, 6, 0},
+{ 2, s_0_8, -1, 9, 0},
+{ 2, s_0_9, -1, 2, 0},
+{ 2, s_0_10, -1, 5, 0},
+{ 2, s_0_11, -1, 7, 0},
+{ 2, s_0_12, -1, 1, 0},
+{ 2, s_0_13, -1, 1, 0},
+{ 2, s_0_14, -1, 4, 0},
+{ 2, s_0_15, -1, 10, 0},
+{ 2, s_0_16, -1, 1, 0},
+{ 2, s_0_17, -1, 6, 0},
+{ 2, s_0_18, -1, 7, 0},
+{ 2, s_0_19, -1, 8, 0},
+{ 2, s_0_20, -1, 3, 0},
+{ 2, s_0_21, -1, 1, 0},
+{ 2, s_0_22, -1, 9, 0},
+{ 2, s_0_23, -1, 3, 0}
+};
+
+static const symbol s_1_0[7] = { 0xC3, 0xAD, 'o', 'c', 'h', 't', 'a' };
+static const symbol s_1_1[8] = { 'a', 0xC3, 0xAD, 'o', 'c', 'h', 't', 'a' };
+static const symbol s_1_2[3] = { 'i', 'r', 'e' };
+static const symbol s_1_3[4] = { 'a', 'i', 'r', 'e' };
+static const symbol s_1_4[3] = { 'a', 'b', 'h' };
+static const symbol s_1_5[4] = { 'e', 'a', 'b', 'h' };
+static const symbol s_1_6[3] = { 'i', 'b', 'h' };
+static const symbol s_1_7[4] = { 'a', 'i', 'b', 'h' };
+static const symbol s_1_8[3] = { 'a', 'm', 'h' };
+static const symbol s_1_9[4] = { 'e', 'a', 'm', 'h' };
+static const symbol s_1_10[3] = { 'i', 'm', 'h' };
+static const symbol s_1_11[4] = { 'a', 'i', 'm', 'h' };
+static const symbol s_1_12[6] = { 0xC3, 0xAD, 'o', 'c', 'h', 't' };
+static const symbol s_1_13[7] = { 'a', 0xC3, 0xAD, 'o', 'c', 'h', 't' };
+static const symbol s_1_14[4] = { 'i', 'r', 0xC3, 0xAD };
+static const symbol s_1_15[5] = { 'a', 'i', 'r', 0xC3, 0xAD };
+
+static const struct among a_1[16] =
+{
+{ 7, s_1_0, -1, 1, 0},
+{ 8, s_1_1, 0, 1, 0},
+{ 3, s_1_2, -1, 2, 0},
+{ 4, s_1_3, 2, 2, 0},
+{ 3, s_1_4, -1, 1, 0},
+{ 4, s_1_5, 4, 1, 0},
+{ 3, s_1_6, -1, 1, 0},
+{ 4, s_1_7, 6, 1, 0},
+{ 3, s_1_8, -1, 1, 0},
+{ 4, s_1_9, 8, 1, 0},
+{ 3, s_1_10, -1, 1, 0},
+{ 4, s_1_11, 10, 1, 0},
+{ 6, s_1_12, -1, 1, 0},
+{ 7, s_1_13, 12, 1, 0},
+{ 4, s_1_14, -1, 2, 0},
+{ 5, s_1_15, 14, 2, 0}
+};
+
+static const symbol s_2_0[9] = { 0xC3, 0xB3, 'i', 'd', 'e', 'a', 'c', 'h', 'a' };
+static const symbol s_2_1[7] = { 'p', 'a', 't', 'a', 'c', 'h', 'a' };
+static const symbol s_2_2[5] = { 'a', 'c', 'h', 't', 'a' };
+static const symbol s_2_3[8] = { 'a', 'r', 'c', 'a', 'c', 'h', 't', 'a' };
+static const symbol s_2_4[6] = { 'e', 'a', 'c', 'h', 't', 'a' };
+static const symbol s_2_5[12] = { 'g', 'r', 'a', 'f', 'a', 0xC3, 0xAD, 'o', 'c', 'h', 't', 'a' };
+static const symbol s_2_6[5] = { 'p', 'a', 'i', 't', 'e' };
+static const symbol s_2_7[3] = { 'a', 'c', 'h' };
+static const symbol s_2_8[4] = { 'e', 'a', 'c', 'h' };
+static const symbol s_2_9[8] = { 0xC3, 0xB3, 'i', 'd', 'e', 'a', 'c', 'h' };
+static const symbol s_2_10[7] = { 'g', 'i', 'n', 'e', 'a', 'c', 'h' };
+static const symbol s_2_11[6] = { 'p', 'a', 't', 'a', 'c', 'h' };
+static const symbol s_2_12[10] = { 'g', 'r', 'a', 'f', 'a', 0xC3, 0xAD, 'o', 'c', 'h' };
+static const symbol s_2_13[7] = { 'p', 'a', 't', 'a', 'i', 'g', 'h' };
+static const symbol s_2_14[7] = { 0xC3, 0xB3, 'i', 'd', 'i', 'g', 'h' };
+static const symbol s_2_15[8] = { 'a', 'c', 'h', 't', 0xC3, 0xBA, 'i', 'l' };
+static const symbol s_2_16[9] = { 'e', 'a', 'c', 'h', 't', 0xC3, 0xBA, 'i', 'l' };
+static const symbol s_2_17[6] = { 'g', 'i', 'n', 'e', 'a', 's' };
+static const symbol s_2_18[5] = { 'g', 'i', 'n', 'i', 's' };
+static const symbol s_2_19[4] = { 'a', 'c', 'h', 't' };
+static const symbol s_2_20[7] = { 'a', 'r', 'c', 'a', 'c', 'h', 't' };
+static const symbol s_2_21[5] = { 'e', 'a', 'c', 'h', 't' };
+static const symbol s_2_22[11] = { 'g', 'r', 'a', 'f', 'a', 0xC3, 0xAD, 'o', 'c', 'h', 't' };
+static const symbol s_2_23[10] = { 'a', 'r', 'c', 'a', 'c', 'h', 't', 'a', 0xC3, 0xAD };
+static const symbol s_2_24[14] = { 'g', 'r', 'a', 'f', 'a', 0xC3, 0xAD, 'o', 'c', 'h', 't', 'a', 0xC3, 0xAD };
+
+static const struct among a_2[25] =
+{
+{ 9, s_2_0, -1, 6, 0},
+{ 7, s_2_1, -1, 5, 0},
+{ 5, s_2_2, -1, 1, 0},
+{ 8, s_2_3, 2, 2, 0},
+{ 6, s_2_4, 2, 1, 0},
+{ 12, s_2_5, -1, 4, 0},
+{ 5, s_2_6, -1, 5, 0},
+{ 3, s_2_7, -1, 1, 0},
+{ 4, s_2_8, 7, 1, 0},
+{ 8, s_2_9, 8, 6, 0},
+{ 7, s_2_10, 8, 3, 0},
+{ 6, s_2_11, 7, 5, 0},
+{ 10, s_2_12, -1, 4, 0},
+{ 7, s_2_13, -1, 5, 0},
+{ 7, s_2_14, -1, 6, 0},
+{ 8, s_2_15, -1, 1, 0},
+{ 9, s_2_16, 15, 1, 0},
+{ 6, s_2_17, -1, 3, 0},
+{ 5, s_2_18, -1, 3, 0},
+{ 4, s_2_19, -1, 1, 0},
+{ 7, s_2_20, 19, 2, 0},
+{ 5, s_2_21, 19, 1, 0},
+{ 11, s_2_22, -1, 4, 0},
+{ 10, s_2_23, -1, 2, 0},
+{ 14, s_2_24, -1, 4, 0}
+};
+
+static const symbol s_3_0[4] = { 'i', 'm', 'i', 'd' };
+static const symbol s_3_1[5] = { 'a', 'i', 'm', 'i', 'd' };
+static const symbol s_3_2[5] = { 0xC3, 0xAD, 'm', 'i', 'd' };
+static const symbol s_3_3[6] = { 'a', 0xC3, 0xAD, 'm', 'i', 'd' };
+static const symbol s_3_4[3] = { 'a', 'd', 'h' };
+static const symbol s_3_5[4] = { 'e', 'a', 'd', 'h' };
+static const symbol s_3_6[5] = { 'f', 'a', 'i', 'd', 'h' };
+static const symbol s_3_7[4] = { 'f', 'i', 'd', 'h' };
+static const symbol s_3_8[4] = { 0xC3, 0xA1, 'i', 'l' };
+static const symbol s_3_9[3] = { 'a', 'i', 'n' };
+static const symbol s_3_10[4] = { 't', 'e', 'a', 'r' };
+static const symbol s_3_11[3] = { 't', 'a', 'r' };
+
+static const struct among a_3[12] =
+{
+{ 4, s_3_0, -1, 1, 0},
+{ 5, s_3_1, 0, 1, 0},
+{ 5, s_3_2, -1, 1, 0},
+{ 6, s_3_3, 2, 1, 0},
+{ 3, s_3_4, -1, 2, 0},
+{ 4, s_3_5, 4, 2, 0},
+{ 5, s_3_6, -1, 1, 0},
+{ 4, s_3_7, -1, 1, 0},
+{ 4, s_3_8, -1, 2, 0},
+{ 3, s_3_9, -1, 2, 0},
+{ 4, s_3_10, -1, 2, 0},
+{ 3, s_3_11, -1, 2, 0}
+};
+
+static const unsigned char g_v[] = { 17, 65, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 17, 4, 2 };
+
+static const symbol s_0[] = { 'f' };
+static const symbol s_1[] = { 's' };
+static const symbol s_2[] = { 'b' };
+static const symbol s_3[] = { 'c' };
+static const symbol s_4[] = { 'd' };
+static const symbol s_5[] = { 'g' };
+static const symbol s_6[] = { 'p' };
+static const symbol s_7[] = { 't' };
+static const symbol s_8[] = { 'm' };
+static const symbol s_9[] = { 'a', 'r', 'c' };
+static const symbol s_10[] = { 'g', 'i', 'n' };
+static const symbol s_11[] = { 'g', 'r', 'a', 'f' };
+static const symbol s_12[] = { 'p', 'a', 'i', 't', 'e' };
+static const symbol s_13[] = { 0xC3, 0xB3, 'i', 'd' };
+
+static int r_mark_regions(struct SN_env * z) {
+ z->I[2] = z->l;
+ z->I[1] = z->l;
+ z->I[0] = z->l;
+ { int c1 = z->c;
+ {
+ int ret = out_grouping_U(z, g_v, 97, 250, 1);
+ if (ret < 0) goto lab0;
+ z->c += ret;
+ }
+ z->I[2] = z->c;
+ {
+ int ret = in_grouping_U(z, g_v, 97, 250, 1);
+ if (ret < 0) goto lab0;
+ z->c += ret;
+ }
+ z->I[1] = z->c;
+ {
+ int ret = out_grouping_U(z, g_v, 97, 250, 1);
+ if (ret < 0) goto lab0;
+ z->c += ret;
+ }
+ {
+ int ret = in_grouping_U(z, g_v, 97, 250, 1);
+ if (ret < 0) goto lab0;
+ z->c += ret;
+ }
+ z->I[0] = z->c;
+ lab0:
+ z->c = c1;
+ }
+ return 1;
+}
+
+static int r_initial_morph(struct SN_env * z) {
+ int among_var;
+ z->bra = z->c;
+ among_var = find_among(z, a_0, 24);
+ if (!(among_var)) return 0;
+ z->ket = z->c;
+ switch (among_var) {
+ case 1:
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 2:
+ { int ret = slice_from_s(z, 1, s_0);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 3:
+ { int ret = slice_from_s(z, 1, s_1);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 4:
+ { int ret = slice_from_s(z, 1, s_2);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 5:
+ { int ret = slice_from_s(z, 1, s_3);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 6:
+ { int ret = slice_from_s(z, 1, s_4);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 7:
+ { int ret = slice_from_s(z, 1, s_5);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 8:
+ { int ret = slice_from_s(z, 1, s_6);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 9:
+ { int ret = slice_from_s(z, 1, s_7);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 10:
+ { int ret = slice_from_s(z, 1, s_8);
+ if (ret < 0) return ret;
+ }
+ break;
+ }
+ return 1;
+}
+
+static int r_RV(struct SN_env * z) {
+ if (!(z->I[2] <= z->c)) return 0;
+ return 1;
+}
+
+static int r_R1(struct SN_env * z) {
+ if (!(z->I[1] <= z->c)) return 0;
+ return 1;
+}
+
+static int r_R2(struct SN_env * z) {
+ if (!(z->I[0] <= z->c)) return 0;
+ return 1;
+}
+
+static int r_noun_sfx(struct SN_env * z) {
+ int among_var;
+ z->ket = z->c;
+ among_var = find_among_b(z, a_1, 16);
+ if (!(among_var)) return 0;
+ z->bra = z->c;
+ switch (among_var) {
+ case 1:
+ { int ret = r_R1(z);
+ if (ret <= 0) return ret;
+ }
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 2:
+ { int ret = r_R2(z);
+ if (ret <= 0) return ret;
+ }
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ break;
+ }
+ return 1;
+}
+
+static int r_deriv(struct SN_env * z) {
+ int among_var;
+ z->ket = z->c;
+ among_var = find_among_b(z, a_2, 25);
+ if (!(among_var)) return 0;
+ z->bra = z->c;
+ switch (among_var) {
+ case 1:
+ { int ret = r_R2(z);
+ if (ret <= 0) return ret;
+ }
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 2:
+ { int ret = slice_from_s(z, 3, s_9);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 3:
+ { int ret = slice_from_s(z, 3, s_10);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 4:
+ { int ret = slice_from_s(z, 4, s_11);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 5:
+ { int ret = slice_from_s(z, 5, s_12);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 6:
+ { int ret = slice_from_s(z, 4, s_13);
+ if (ret < 0) return ret;
+ }
+ break;
+ }
+ return 1;
+}
+
+static int r_verb_sfx(struct SN_env * z) {
+ int among_var;
+ z->ket = z->c;
+ if (z->c - 2 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((282896 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
+ among_var = find_among_b(z, a_3, 12);
+ if (!(among_var)) return 0;
+ z->bra = z->c;
+ switch (among_var) {
+ case 1:
+ { int ret = r_RV(z);
+ if (ret <= 0) return ret;
+ }
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 2:
+ { int ret = r_R1(z);
+ if (ret <= 0) return ret;
+ }
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ break;
+ }
+ return 1;
+}
+
+extern int irish_UTF_8_stem(struct SN_env * z) {
+ { int c1 = z->c;
+ { int ret = r_initial_morph(z);
+ if (ret < 0) return ret;
+ }
+ z->c = c1;
+ }
+
+ { int ret = r_mark_regions(z);
+ if (ret < 0) return ret;
+ }
+ z->lb = z->c; z->c = z->l;
+
+ { int m2 = z->l - z->c; (void)m2;
+ { int ret = r_noun_sfx(z);
+ if (ret < 0) return ret;
+ }
+ z->c = z->l - m2;
+ }
+ { int m3 = z->l - z->c; (void)m3;
+ { int ret = r_deriv(z);
+ if (ret < 0) return ret;
+ }
+ z->c = z->l - m3;
+ }
+ { int m4 = z->l - z->c; (void)m4;
+ { int ret = r_verb_sfx(z);
+ if (ret < 0) return ret;
+ }
+ z->c = z->l - m4;
+ }
+ z->c = z->lb;
+ return 1;
+}
+
+extern struct SN_env * irish_UTF_8_create_env(void) { return SN_create_env(0, 3); }
+
+extern void irish_UTF_8_close_env(struct SN_env * z) { SN_close_env(z, 0); }
+
diff --git a/src/backend/snowball/libstemmer/stem_UTF_8_italian.c b/src/backend/snowball/libstemmer/stem_UTF_8_italian.c
new file mode 100644
index 0000000..8a05ce4
--- /dev/null
+++ b/src/backend/snowball/libstemmer/stem_UTF_8_italian.c
@@ -0,0 +1,1030 @@
+/* Generated by Snowball 2.2.0 - https://snowballstem.org/ */
+
+#include "header.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+extern int italian_UTF_8_stem(struct SN_env * z);
+#ifdef __cplusplus
+}
+#endif
+static int r_vowel_suffix(struct SN_env * z);
+static int r_verb_suffix(struct SN_env * z);
+static int r_standard_suffix(struct SN_env * z);
+static int r_attached_pronoun(struct SN_env * z);
+static int r_R2(struct SN_env * z);
+static int r_R1(struct SN_env * z);
+static int r_RV(struct SN_env * z);
+static int r_mark_regions(struct SN_env * z);
+static int r_postlude(struct SN_env * z);
+static int r_prelude(struct SN_env * z);
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+extern struct SN_env * italian_UTF_8_create_env(void);
+extern void italian_UTF_8_close_env(struct SN_env * z);
+
+
+#ifdef __cplusplus
+}
+#endif
+static const symbol s_0_1[2] = { 'q', 'u' };
+static const symbol s_0_2[2] = { 0xC3, 0xA1 };
+static const symbol s_0_3[2] = { 0xC3, 0xA9 };
+static const symbol s_0_4[2] = { 0xC3, 0xAD };
+static const symbol s_0_5[2] = { 0xC3, 0xB3 };
+static const symbol s_0_6[2] = { 0xC3, 0xBA };
+
+static const struct among a_0[7] =
+{
+{ 0, 0, -1, 7, 0},
+{ 2, s_0_1, 0, 6, 0},
+{ 2, s_0_2, 0, 1, 0},
+{ 2, s_0_3, 0, 2, 0},
+{ 2, s_0_4, 0, 3, 0},
+{ 2, s_0_5, 0, 4, 0},
+{ 2, s_0_6, 0, 5, 0}
+};
+
+static const symbol s_1_1[1] = { 'I' };
+static const symbol s_1_2[1] = { 'U' };
+
+static const struct among a_1[3] =
+{
+{ 0, 0, -1, 3, 0},
+{ 1, s_1_1, 0, 1, 0},
+{ 1, s_1_2, 0, 2, 0}
+};
+
+static const symbol s_2_0[2] = { 'l', 'a' };
+static const symbol s_2_1[4] = { 'c', 'e', 'l', 'a' };
+static const symbol s_2_2[6] = { 'g', 'l', 'i', 'e', 'l', 'a' };
+static const symbol s_2_3[4] = { 'm', 'e', 'l', 'a' };
+static const symbol s_2_4[4] = { 't', 'e', 'l', 'a' };
+static const symbol s_2_5[4] = { 'v', 'e', 'l', 'a' };
+static const symbol s_2_6[2] = { 'l', 'e' };
+static const symbol s_2_7[4] = { 'c', 'e', 'l', 'e' };
+static const symbol s_2_8[6] = { 'g', 'l', 'i', 'e', 'l', 'e' };
+static const symbol s_2_9[4] = { 'm', 'e', 'l', 'e' };
+static const symbol s_2_10[4] = { 't', 'e', 'l', 'e' };
+static const symbol s_2_11[4] = { 'v', 'e', 'l', 'e' };
+static const symbol s_2_12[2] = { 'n', 'e' };
+static const symbol s_2_13[4] = { 'c', 'e', 'n', 'e' };
+static const symbol s_2_14[6] = { 'g', 'l', 'i', 'e', 'n', 'e' };
+static const symbol s_2_15[4] = { 'm', 'e', 'n', 'e' };
+static const symbol s_2_16[4] = { 's', 'e', 'n', 'e' };
+static const symbol s_2_17[4] = { 't', 'e', 'n', 'e' };
+static const symbol s_2_18[4] = { 'v', 'e', 'n', 'e' };
+static const symbol s_2_19[2] = { 'c', 'i' };
+static const symbol s_2_20[2] = { 'l', 'i' };
+static const symbol s_2_21[4] = { 'c', 'e', 'l', 'i' };
+static const symbol s_2_22[6] = { 'g', 'l', 'i', 'e', 'l', 'i' };
+static const symbol s_2_23[4] = { 'm', 'e', 'l', 'i' };
+static const symbol s_2_24[4] = { 't', 'e', 'l', 'i' };
+static const symbol s_2_25[4] = { 'v', 'e', 'l', 'i' };
+static const symbol s_2_26[3] = { 'g', 'l', 'i' };
+static const symbol s_2_27[2] = { 'm', 'i' };
+static const symbol s_2_28[2] = { 's', 'i' };
+static const symbol s_2_29[2] = { 't', 'i' };
+static const symbol s_2_30[2] = { 'v', 'i' };
+static const symbol s_2_31[2] = { 'l', 'o' };
+static const symbol s_2_32[4] = { 'c', 'e', 'l', 'o' };
+static const symbol s_2_33[6] = { 'g', 'l', 'i', 'e', 'l', 'o' };
+static const symbol s_2_34[4] = { 'm', 'e', 'l', 'o' };
+static const symbol s_2_35[4] = { 't', 'e', 'l', 'o' };
+static const symbol s_2_36[4] = { 'v', 'e', 'l', 'o' };
+
+static const struct among a_2[37] =
+{
+{ 2, s_2_0, -1, -1, 0},
+{ 4, s_2_1, 0, -1, 0},
+{ 6, s_2_2, 0, -1, 0},
+{ 4, s_2_3, 0, -1, 0},
+{ 4, s_2_4, 0, -1, 0},
+{ 4, s_2_5, 0, -1, 0},
+{ 2, s_2_6, -1, -1, 0},
+{ 4, s_2_7, 6, -1, 0},
+{ 6, s_2_8, 6, -1, 0},
+{ 4, s_2_9, 6, -1, 0},
+{ 4, s_2_10, 6, -1, 0},
+{ 4, s_2_11, 6, -1, 0},
+{ 2, s_2_12, -1, -1, 0},
+{ 4, s_2_13, 12, -1, 0},
+{ 6, s_2_14, 12, -1, 0},
+{ 4, s_2_15, 12, -1, 0},
+{ 4, s_2_16, 12, -1, 0},
+{ 4, s_2_17, 12, -1, 0},
+{ 4, s_2_18, 12, -1, 0},
+{ 2, s_2_19, -1, -1, 0},
+{ 2, s_2_20, -1, -1, 0},
+{ 4, s_2_21, 20, -1, 0},
+{ 6, s_2_22, 20, -1, 0},
+{ 4, s_2_23, 20, -1, 0},
+{ 4, s_2_24, 20, -1, 0},
+{ 4, s_2_25, 20, -1, 0},
+{ 3, s_2_26, 20, -1, 0},
+{ 2, s_2_27, -1, -1, 0},
+{ 2, s_2_28, -1, -1, 0},
+{ 2, s_2_29, -1, -1, 0},
+{ 2, s_2_30, -1, -1, 0},
+{ 2, s_2_31, -1, -1, 0},
+{ 4, s_2_32, 31, -1, 0},
+{ 6, s_2_33, 31, -1, 0},
+{ 4, s_2_34, 31, -1, 0},
+{ 4, s_2_35, 31, -1, 0},
+{ 4, s_2_36, 31, -1, 0}
+};
+
+static const symbol s_3_0[4] = { 'a', 'n', 'd', 'o' };
+static const symbol s_3_1[4] = { 'e', 'n', 'd', 'o' };
+static const symbol s_3_2[2] = { 'a', 'r' };
+static const symbol s_3_3[2] = { 'e', 'r' };
+static const symbol s_3_4[2] = { 'i', 'r' };
+
+static const struct among a_3[5] =
+{
+{ 4, s_3_0, -1, 1, 0},
+{ 4, s_3_1, -1, 1, 0},
+{ 2, s_3_2, -1, 2, 0},
+{ 2, s_3_3, -1, 2, 0},
+{ 2, s_3_4, -1, 2, 0}
+};
+
+static const symbol s_4_0[2] = { 'i', 'c' };
+static const symbol s_4_1[4] = { 'a', 'b', 'i', 'l' };
+static const symbol s_4_2[2] = { 'o', 's' };
+static const symbol s_4_3[2] = { 'i', 'v' };
+
+static const struct among a_4[4] =
+{
+{ 2, s_4_0, -1, -1, 0},
+{ 4, s_4_1, -1, -1, 0},
+{ 2, s_4_2, -1, -1, 0},
+{ 2, s_4_3, -1, 1, 0}
+};
+
+static const symbol s_5_0[2] = { 'i', 'c' };
+static const symbol s_5_1[4] = { 'a', 'b', 'i', 'l' };
+static const symbol s_5_2[2] = { 'i', 'v' };
+
+static const struct among a_5[3] =
+{
+{ 2, s_5_0, -1, 1, 0},
+{ 4, s_5_1, -1, 1, 0},
+{ 2, s_5_2, -1, 1, 0}
+};
+
+static const symbol s_6_0[3] = { 'i', 'c', 'a' };
+static const symbol s_6_1[5] = { 'l', 'o', 'g', 'i', 'a' };
+static const symbol s_6_2[3] = { 'o', 's', 'a' };
+static const symbol s_6_3[4] = { 'i', 's', 't', 'a' };
+static const symbol s_6_4[3] = { 'i', 'v', 'a' };
+static const symbol s_6_5[4] = { 'a', 'n', 'z', 'a' };
+static const symbol s_6_6[4] = { 'e', 'n', 'z', 'a' };
+static const symbol s_6_7[3] = { 'i', 'c', 'e' };
+static const symbol s_6_8[6] = { 'a', 't', 'r', 'i', 'c', 'e' };
+static const symbol s_6_9[4] = { 'i', 'c', 'h', 'e' };
+static const symbol s_6_10[5] = { 'l', 'o', 'g', 'i', 'e' };
+static const symbol s_6_11[5] = { 'a', 'b', 'i', 'l', 'e' };
+static const symbol s_6_12[5] = { 'i', 'b', 'i', 'l', 'e' };
+static const symbol s_6_13[6] = { 'u', 's', 'i', 'o', 'n', 'e' };
+static const symbol s_6_14[6] = { 'a', 'z', 'i', 'o', 'n', 'e' };
+static const symbol s_6_15[6] = { 'u', 'z', 'i', 'o', 'n', 'e' };
+static const symbol s_6_16[5] = { 'a', 't', 'o', 'r', 'e' };
+static const symbol s_6_17[3] = { 'o', 's', 'e' };
+static const symbol s_6_18[4] = { 'a', 'n', 't', 'e' };
+static const symbol s_6_19[5] = { 'm', 'e', 'n', 't', 'e' };
+static const symbol s_6_20[6] = { 'a', 'm', 'e', 'n', 't', 'e' };
+static const symbol s_6_21[4] = { 'i', 's', 't', 'e' };
+static const symbol s_6_22[3] = { 'i', 'v', 'e' };
+static const symbol s_6_23[4] = { 'a', 'n', 'z', 'e' };
+static const symbol s_6_24[4] = { 'e', 'n', 'z', 'e' };
+static const symbol s_6_25[3] = { 'i', 'c', 'i' };
+static const symbol s_6_26[6] = { 'a', 't', 'r', 'i', 'c', 'i' };
+static const symbol s_6_27[4] = { 'i', 'c', 'h', 'i' };
+static const symbol s_6_28[5] = { 'a', 'b', 'i', 'l', 'i' };
+static const symbol s_6_29[5] = { 'i', 'b', 'i', 'l', 'i' };
+static const symbol s_6_30[4] = { 'i', 's', 'm', 'i' };
+static const symbol s_6_31[6] = { 'u', 's', 'i', 'o', 'n', 'i' };
+static const symbol s_6_32[6] = { 'a', 'z', 'i', 'o', 'n', 'i' };
+static const symbol s_6_33[6] = { 'u', 'z', 'i', 'o', 'n', 'i' };
+static const symbol s_6_34[5] = { 'a', 't', 'o', 'r', 'i' };
+static const symbol s_6_35[3] = { 'o', 's', 'i' };
+static const symbol s_6_36[4] = { 'a', 'n', 't', 'i' };
+static const symbol s_6_37[6] = { 'a', 'm', 'e', 'n', 't', 'i' };
+static const symbol s_6_38[6] = { 'i', 'm', 'e', 'n', 't', 'i' };
+static const symbol s_6_39[4] = { 'i', 's', 't', 'i' };
+static const symbol s_6_40[3] = { 'i', 'v', 'i' };
+static const symbol s_6_41[3] = { 'i', 'c', 'o' };
+static const symbol s_6_42[4] = { 'i', 's', 'm', 'o' };
+static const symbol s_6_43[3] = { 'o', 's', 'o' };
+static const symbol s_6_44[6] = { 'a', 'm', 'e', 'n', 't', 'o' };
+static const symbol s_6_45[6] = { 'i', 'm', 'e', 'n', 't', 'o' };
+static const symbol s_6_46[3] = { 'i', 'v', 'o' };
+static const symbol s_6_47[4] = { 'i', 't', 0xC3, 0xA0 };
+static const symbol s_6_48[5] = { 'i', 's', 't', 0xC3, 0xA0 };
+static const symbol s_6_49[5] = { 'i', 's', 't', 0xC3, 0xA8 };
+static const symbol s_6_50[5] = { 'i', 's', 't', 0xC3, 0xAC };
+
+static const struct among a_6[51] =
+{
+{ 3, s_6_0, -1, 1, 0},
+{ 5, s_6_1, -1, 3, 0},
+{ 3, s_6_2, -1, 1, 0},
+{ 4, s_6_3, -1, 1, 0},
+{ 3, s_6_4, -1, 9, 0},
+{ 4, s_6_5, -1, 1, 0},
+{ 4, s_6_6, -1, 5, 0},
+{ 3, s_6_7, -1, 1, 0},
+{ 6, s_6_8, 7, 1, 0},
+{ 4, s_6_9, -1, 1, 0},
+{ 5, s_6_10, -1, 3, 0},
+{ 5, s_6_11, -1, 1, 0},
+{ 5, s_6_12, -1, 1, 0},
+{ 6, s_6_13, -1, 4, 0},
+{ 6, s_6_14, -1, 2, 0},
+{ 6, s_6_15, -1, 4, 0},
+{ 5, s_6_16, -1, 2, 0},
+{ 3, s_6_17, -1, 1, 0},
+{ 4, s_6_18, -1, 1, 0},
+{ 5, s_6_19, -1, 1, 0},
+{ 6, s_6_20, 19, 7, 0},
+{ 4, s_6_21, -1, 1, 0},
+{ 3, s_6_22, -1, 9, 0},
+{ 4, s_6_23, -1, 1, 0},
+{ 4, s_6_24, -1, 5, 0},
+{ 3, s_6_25, -1, 1, 0},
+{ 6, s_6_26, 25, 1, 0},
+{ 4, s_6_27, -1, 1, 0},
+{ 5, s_6_28, -1, 1, 0},
+{ 5, s_6_29, -1, 1, 0},
+{ 4, s_6_30, -1, 1, 0},
+{ 6, s_6_31, -1, 4, 0},
+{ 6, s_6_32, -1, 2, 0},
+{ 6, s_6_33, -1, 4, 0},
+{ 5, s_6_34, -1, 2, 0},
+{ 3, s_6_35, -1, 1, 0},
+{ 4, s_6_36, -1, 1, 0},
+{ 6, s_6_37, -1, 6, 0},
+{ 6, s_6_38, -1, 6, 0},
+{ 4, s_6_39, -1, 1, 0},
+{ 3, s_6_40, -1, 9, 0},
+{ 3, s_6_41, -1, 1, 0},
+{ 4, s_6_42, -1, 1, 0},
+{ 3, s_6_43, -1, 1, 0},
+{ 6, s_6_44, -1, 6, 0},
+{ 6, s_6_45, -1, 6, 0},
+{ 3, s_6_46, -1, 9, 0},
+{ 4, s_6_47, -1, 8, 0},
+{ 5, s_6_48, -1, 1, 0},
+{ 5, s_6_49, -1, 1, 0},
+{ 5, s_6_50, -1, 1, 0}
+};
+
+static const symbol s_7_0[4] = { 'i', 's', 'c', 'a' };
+static const symbol s_7_1[4] = { 'e', 'n', 'd', 'a' };
+static const symbol s_7_2[3] = { 'a', 't', 'a' };
+static const symbol s_7_3[3] = { 'i', 't', 'a' };
+static const symbol s_7_4[3] = { 'u', 't', 'a' };
+static const symbol s_7_5[3] = { 'a', 'v', 'a' };
+static const symbol s_7_6[3] = { 'e', 'v', 'a' };
+static const symbol s_7_7[3] = { 'i', 'v', 'a' };
+static const symbol s_7_8[6] = { 'e', 'r', 'e', 'b', 'b', 'e' };
+static const symbol s_7_9[6] = { 'i', 'r', 'e', 'b', 'b', 'e' };
+static const symbol s_7_10[4] = { 'i', 's', 'c', 'e' };
+static const symbol s_7_11[4] = { 'e', 'n', 'd', 'e' };
+static const symbol s_7_12[3] = { 'a', 'r', 'e' };
+static const symbol s_7_13[3] = { 'e', 'r', 'e' };
+static const symbol s_7_14[3] = { 'i', 'r', 'e' };
+static const symbol s_7_15[4] = { 'a', 's', 's', 'e' };
+static const symbol s_7_16[3] = { 'a', 't', 'e' };
+static const symbol s_7_17[5] = { 'a', 'v', 'a', 't', 'e' };
+static const symbol s_7_18[5] = { 'e', 'v', 'a', 't', 'e' };
+static const symbol s_7_19[5] = { 'i', 'v', 'a', 't', 'e' };
+static const symbol s_7_20[3] = { 'e', 't', 'e' };
+static const symbol s_7_21[5] = { 'e', 'r', 'e', 't', 'e' };
+static const symbol s_7_22[5] = { 'i', 'r', 'e', 't', 'e' };
+static const symbol s_7_23[3] = { 'i', 't', 'e' };
+static const symbol s_7_24[6] = { 'e', 'r', 'e', 's', 't', 'e' };
+static const symbol s_7_25[6] = { 'i', 'r', 'e', 's', 't', 'e' };
+static const symbol s_7_26[3] = { 'u', 't', 'e' };
+static const symbol s_7_27[4] = { 'e', 'r', 'a', 'i' };
+static const symbol s_7_28[4] = { 'i', 'r', 'a', 'i' };
+static const symbol s_7_29[4] = { 'i', 's', 'c', 'i' };
+static const symbol s_7_30[4] = { 'e', 'n', 'd', 'i' };
+static const symbol s_7_31[4] = { 'e', 'r', 'e', 'i' };
+static const symbol s_7_32[4] = { 'i', 'r', 'e', 'i' };
+static const symbol s_7_33[4] = { 'a', 's', 's', 'i' };
+static const symbol s_7_34[3] = { 'a', 't', 'i' };
+static const symbol s_7_35[3] = { 'i', 't', 'i' };
+static const symbol s_7_36[6] = { 'e', 'r', 'e', 's', 't', 'i' };
+static const symbol s_7_37[6] = { 'i', 'r', 'e', 's', 't', 'i' };
+static const symbol s_7_38[3] = { 'u', 't', 'i' };
+static const symbol s_7_39[3] = { 'a', 'v', 'i' };
+static const symbol s_7_40[3] = { 'e', 'v', 'i' };
+static const symbol s_7_41[3] = { 'i', 'v', 'i' };
+static const symbol s_7_42[4] = { 'i', 's', 'c', 'o' };
+static const symbol s_7_43[4] = { 'a', 'n', 'd', 'o' };
+static const symbol s_7_44[4] = { 'e', 'n', 'd', 'o' };
+static const symbol s_7_45[4] = { 'Y', 'a', 'm', 'o' };
+static const symbol s_7_46[4] = { 'i', 'a', 'm', 'o' };
+static const symbol s_7_47[5] = { 'a', 'v', 'a', 'm', 'o' };
+static const symbol s_7_48[5] = { 'e', 'v', 'a', 'm', 'o' };
+static const symbol s_7_49[5] = { 'i', 'v', 'a', 'm', 'o' };
+static const symbol s_7_50[5] = { 'e', 'r', 'e', 'm', 'o' };
+static const symbol s_7_51[5] = { 'i', 'r', 'e', 'm', 'o' };
+static const symbol s_7_52[6] = { 'a', 's', 's', 'i', 'm', 'o' };
+static const symbol s_7_53[4] = { 'a', 'm', 'm', 'o' };
+static const symbol s_7_54[4] = { 'e', 'm', 'm', 'o' };
+static const symbol s_7_55[6] = { 'e', 'r', 'e', 'm', 'm', 'o' };
+static const symbol s_7_56[6] = { 'i', 'r', 'e', 'm', 'm', 'o' };
+static const symbol s_7_57[4] = { 'i', 'm', 'm', 'o' };
+static const symbol s_7_58[3] = { 'a', 'n', 'o' };
+static const symbol s_7_59[6] = { 'i', 's', 'c', 'a', 'n', 'o' };
+static const symbol s_7_60[5] = { 'a', 'v', 'a', 'n', 'o' };
+static const symbol s_7_61[5] = { 'e', 'v', 'a', 'n', 'o' };
+static const symbol s_7_62[5] = { 'i', 'v', 'a', 'n', 'o' };
+static const symbol s_7_63[6] = { 'e', 'r', 'a', 'n', 'n', 'o' };
+static const symbol s_7_64[6] = { 'i', 'r', 'a', 'n', 'n', 'o' };
+static const symbol s_7_65[3] = { 'o', 'n', 'o' };
+static const symbol s_7_66[6] = { 'i', 's', 'c', 'o', 'n', 'o' };
+static const symbol s_7_67[5] = { 'a', 'r', 'o', 'n', 'o' };
+static const symbol s_7_68[5] = { 'e', 'r', 'o', 'n', 'o' };
+static const symbol s_7_69[5] = { 'i', 'r', 'o', 'n', 'o' };
+static const symbol s_7_70[8] = { 'e', 'r', 'e', 'b', 'b', 'e', 'r', 'o' };
+static const symbol s_7_71[8] = { 'i', 'r', 'e', 'b', 'b', 'e', 'r', 'o' };
+static const symbol s_7_72[6] = { 'a', 's', 's', 'e', 'r', 'o' };
+static const symbol s_7_73[6] = { 'e', 's', 's', 'e', 'r', 'o' };
+static const symbol s_7_74[6] = { 'i', 's', 's', 'e', 'r', 'o' };
+static const symbol s_7_75[3] = { 'a', 't', 'o' };
+static const symbol s_7_76[3] = { 'i', 't', 'o' };
+static const symbol s_7_77[3] = { 'u', 't', 'o' };
+static const symbol s_7_78[3] = { 'a', 'v', 'o' };
+static const symbol s_7_79[3] = { 'e', 'v', 'o' };
+static const symbol s_7_80[3] = { 'i', 'v', 'o' };
+static const symbol s_7_81[2] = { 'a', 'r' };
+static const symbol s_7_82[2] = { 'i', 'r' };
+static const symbol s_7_83[4] = { 'e', 'r', 0xC3, 0xA0 };
+static const symbol s_7_84[4] = { 'i', 'r', 0xC3, 0xA0 };
+static const symbol s_7_85[4] = { 'e', 'r', 0xC3, 0xB2 };
+static const symbol s_7_86[4] = { 'i', 'r', 0xC3, 0xB2 };
+
+static const struct among a_7[87] =
+{
+{ 4, s_7_0, -1, 1, 0},
+{ 4, s_7_1, -1, 1, 0},
+{ 3, s_7_2, -1, 1, 0},
+{ 3, s_7_3, -1, 1, 0},
+{ 3, s_7_4, -1, 1, 0},
+{ 3, s_7_5, -1, 1, 0},
+{ 3, s_7_6, -1, 1, 0},
+{ 3, s_7_7, -1, 1, 0},
+{ 6, s_7_8, -1, 1, 0},
+{ 6, s_7_9, -1, 1, 0},
+{ 4, s_7_10, -1, 1, 0},
+{ 4, s_7_11, -1, 1, 0},
+{ 3, s_7_12, -1, 1, 0},
+{ 3, s_7_13, -1, 1, 0},
+{ 3, s_7_14, -1, 1, 0},
+{ 4, s_7_15, -1, 1, 0},
+{ 3, s_7_16, -1, 1, 0},
+{ 5, s_7_17, 16, 1, 0},
+{ 5, s_7_18, 16, 1, 0},
+{ 5, s_7_19, 16, 1, 0},
+{ 3, s_7_20, -1, 1, 0},
+{ 5, s_7_21, 20, 1, 0},
+{ 5, s_7_22, 20, 1, 0},
+{ 3, s_7_23, -1, 1, 0},
+{ 6, s_7_24, -1, 1, 0},
+{ 6, s_7_25, -1, 1, 0},
+{ 3, s_7_26, -1, 1, 0},
+{ 4, s_7_27, -1, 1, 0},
+{ 4, s_7_28, -1, 1, 0},
+{ 4, s_7_29, -1, 1, 0},
+{ 4, s_7_30, -1, 1, 0},
+{ 4, s_7_31, -1, 1, 0},
+{ 4, s_7_32, -1, 1, 0},
+{ 4, s_7_33, -1, 1, 0},
+{ 3, s_7_34, -1, 1, 0},
+{ 3, s_7_35, -1, 1, 0},
+{ 6, s_7_36, -1, 1, 0},
+{ 6, s_7_37, -1, 1, 0},
+{ 3, s_7_38, -1, 1, 0},
+{ 3, s_7_39, -1, 1, 0},
+{ 3, s_7_40, -1, 1, 0},
+{ 3, s_7_41, -1, 1, 0},
+{ 4, s_7_42, -1, 1, 0},
+{ 4, s_7_43, -1, 1, 0},
+{ 4, s_7_44, -1, 1, 0},
+{ 4, s_7_45, -1, 1, 0},
+{ 4, s_7_46, -1, 1, 0},
+{ 5, s_7_47, -1, 1, 0},
+{ 5, s_7_48, -1, 1, 0},
+{ 5, s_7_49, -1, 1, 0},
+{ 5, s_7_50, -1, 1, 0},
+{ 5, s_7_51, -1, 1, 0},
+{ 6, s_7_52, -1, 1, 0},
+{ 4, s_7_53, -1, 1, 0},
+{ 4, s_7_54, -1, 1, 0},
+{ 6, s_7_55, 54, 1, 0},
+{ 6, s_7_56, 54, 1, 0},
+{ 4, s_7_57, -1, 1, 0},
+{ 3, s_7_58, -1, 1, 0},
+{ 6, s_7_59, 58, 1, 0},
+{ 5, s_7_60, 58, 1, 0},
+{ 5, s_7_61, 58, 1, 0},
+{ 5, s_7_62, 58, 1, 0},
+{ 6, s_7_63, -1, 1, 0},
+{ 6, s_7_64, -1, 1, 0},
+{ 3, s_7_65, -1, 1, 0},
+{ 6, s_7_66, 65, 1, 0},
+{ 5, s_7_67, 65, 1, 0},
+{ 5, s_7_68, 65, 1, 0},
+{ 5, s_7_69, 65, 1, 0},
+{ 8, s_7_70, -1, 1, 0},
+{ 8, s_7_71, -1, 1, 0},
+{ 6, s_7_72, -1, 1, 0},
+{ 6, s_7_73, -1, 1, 0},
+{ 6, s_7_74, -1, 1, 0},
+{ 3, s_7_75, -1, 1, 0},
+{ 3, s_7_76, -1, 1, 0},
+{ 3, s_7_77, -1, 1, 0},
+{ 3, s_7_78, -1, 1, 0},
+{ 3, s_7_79, -1, 1, 0},
+{ 3, s_7_80, -1, 1, 0},
+{ 2, s_7_81, -1, 1, 0},
+{ 2, s_7_82, -1, 1, 0},
+{ 4, s_7_83, -1, 1, 0},
+{ 4, s_7_84, -1, 1, 0},
+{ 4, s_7_85, -1, 1, 0},
+{ 4, s_7_86, -1, 1, 0}
+};
+
+static const unsigned char g_v[] = { 17, 65, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 128, 8, 2, 1 };
+
+static const unsigned char g_AEIO[] = { 17, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 128, 8, 2 };
+
+static const unsigned char g_CG[] = { 17 };
+
+static const symbol s_0[] = { 0xC3, 0xA0 };
+static const symbol s_1[] = { 0xC3, 0xA8 };
+static const symbol s_2[] = { 0xC3, 0xAC };
+static const symbol s_3[] = { 0xC3, 0xB2 };
+static const symbol s_4[] = { 0xC3, 0xB9 };
+static const symbol s_5[] = { 'q', 'U' };
+static const symbol s_6[] = { 'U' };
+static const symbol s_7[] = { 'I' };
+static const symbol s_8[] = { 'i' };
+static const symbol s_9[] = { 'u' };
+static const symbol s_10[] = { 'e' };
+static const symbol s_11[] = { 'i', 'c' };
+static const symbol s_12[] = { 'l', 'o', 'g' };
+static const symbol s_13[] = { 'u' };
+static const symbol s_14[] = { 'e', 'n', 't', 'e' };
+static const symbol s_15[] = { 'a', 't' };
+static const symbol s_16[] = { 'a', 't' };
+static const symbol s_17[] = { 'i', 'c' };
+
+static int r_prelude(struct SN_env * z) {
+ int among_var;
+ { int c_test1 = z->c;
+ while(1) {
+ int c2 = z->c;
+ z->bra = z->c;
+ among_var = find_among(z, a_0, 7);
+ if (!(among_var)) goto lab0;
+ z->ket = z->c;
+ switch (among_var) {
+ case 1:
+ { int ret = slice_from_s(z, 2, s_0);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 2:
+ { int ret = slice_from_s(z, 2, s_1);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 3:
+ { int ret = slice_from_s(z, 2, s_2);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 4:
+ { int ret = slice_from_s(z, 2, s_3);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 5:
+ { int ret = slice_from_s(z, 2, s_4);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 6:
+ { int ret = slice_from_s(z, 2, s_5);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 7:
+ { int ret = skip_utf8(z->p, z->c, z->l, 1);
+ if (ret < 0) goto lab0;
+ z->c = ret;
+ }
+ break;
+ }
+ continue;
+ lab0:
+ z->c = c2;
+ break;
+ }
+ z->c = c_test1;
+ }
+ while(1) {
+ int c3 = z->c;
+ while(1) {
+ int c4 = z->c;
+ if (in_grouping_U(z, g_v, 97, 249, 0)) goto lab2;
+ z->bra = z->c;
+ { int c5 = z->c;
+ if (z->c == z->l || z->p[z->c] != 'u') goto lab4;
+ z->c++;
+ z->ket = z->c;
+ if (in_grouping_U(z, g_v, 97, 249, 0)) goto lab4;
+ { int ret = slice_from_s(z, 1, s_6);
+ if (ret < 0) return ret;
+ }
+ goto lab3;
+ lab4:
+ z->c = c5;
+ if (z->c == z->l || z->p[z->c] != 'i') goto lab2;
+ z->c++;
+ z->ket = z->c;
+ if (in_grouping_U(z, g_v, 97, 249, 0)) goto lab2;
+ { int ret = slice_from_s(z, 1, s_7);
+ if (ret < 0) return ret;
+ }
+ }
+ lab3:
+ z->c = c4;
+ break;
+ lab2:
+ z->c = c4;
+ { int ret = skip_utf8(z->p, z->c, z->l, 1);
+ if (ret < 0) goto lab1;
+ z->c = ret;
+ }
+ }
+ continue;
+ lab1:
+ z->c = c3;
+ break;
+ }
+ return 1;
+}
+
+static int r_mark_regions(struct SN_env * z) {
+ z->I[2] = z->l;
+ z->I[1] = z->l;
+ z->I[0] = z->l;
+ { int c1 = z->c;
+ { int c2 = z->c;
+ if (in_grouping_U(z, g_v, 97, 249, 0)) goto lab2;
+ { int c3 = z->c;
+ if (out_grouping_U(z, g_v, 97, 249, 0)) goto lab4;
+ {
+ int ret = out_grouping_U(z, g_v, 97, 249, 1);
+ if (ret < 0) goto lab4;
+ z->c += ret;
+ }
+ goto lab3;
+ lab4:
+ z->c = c3;
+ if (in_grouping_U(z, g_v, 97, 249, 0)) goto lab2;
+ {
+ int ret = in_grouping_U(z, g_v, 97, 249, 1);
+ if (ret < 0) goto lab2;
+ z->c += ret;
+ }
+ }
+ lab3:
+ goto lab1;
+ lab2:
+ z->c = c2;
+ if (out_grouping_U(z, g_v, 97, 249, 0)) goto lab0;
+ { int c4 = z->c;
+ if (out_grouping_U(z, g_v, 97, 249, 0)) goto lab6;
+ {
+ int ret = out_grouping_U(z, g_v, 97, 249, 1);
+ if (ret < 0) goto lab6;
+ z->c += ret;
+ }
+ goto lab5;
+ lab6:
+ z->c = c4;
+ if (in_grouping_U(z, g_v, 97, 249, 0)) goto lab0;
+ { int ret = skip_utf8(z->p, z->c, z->l, 1);
+ if (ret < 0) goto lab0;
+ z->c = ret;
+ }
+ }
+ lab5:
+ ;
+ }
+ lab1:
+ z->I[2] = z->c;
+ lab0:
+ z->c = c1;
+ }
+ { int c5 = z->c;
+ {
+ int ret = out_grouping_U(z, g_v, 97, 249, 1);
+ if (ret < 0) goto lab7;
+ z->c += ret;
+ }
+ {
+ int ret = in_grouping_U(z, g_v, 97, 249, 1);
+ if (ret < 0) goto lab7;
+ z->c += ret;
+ }
+ z->I[1] = z->c;
+ {
+ int ret = out_grouping_U(z, g_v, 97, 249, 1);
+ if (ret < 0) goto lab7;
+ z->c += ret;
+ }
+ {
+ int ret = in_grouping_U(z, g_v, 97, 249, 1);
+ if (ret < 0) goto lab7;
+ z->c += ret;
+ }
+ z->I[0] = z->c;
+ lab7:
+ z->c = c5;
+ }
+ return 1;
+}
+
+static int r_postlude(struct SN_env * z) {
+ int among_var;
+ while(1) {
+ int c1 = z->c;
+ z->bra = z->c;
+ if (z->c >= z->l || (z->p[z->c + 0] != 73 && z->p[z->c + 0] != 85)) among_var = 3; else
+ among_var = find_among(z, a_1, 3);
+ if (!(among_var)) goto lab0;
+ z->ket = z->c;
+ switch (among_var) {
+ case 1:
+ { int ret = slice_from_s(z, 1, s_8);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 2:
+ { int ret = slice_from_s(z, 1, s_9);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 3:
+ { int ret = skip_utf8(z->p, z->c, z->l, 1);
+ if (ret < 0) goto lab0;
+ z->c = ret;
+ }
+ break;
+ }
+ continue;
+ lab0:
+ z->c = c1;
+ break;
+ }
+ return 1;
+}
+
+static int r_RV(struct SN_env * z) {
+ if (!(z->I[2] <= z->c)) return 0;
+ return 1;
+}
+
+static int r_R1(struct SN_env * z) {
+ if (!(z->I[1] <= z->c)) return 0;
+ return 1;
+}
+
+static int r_R2(struct SN_env * z) {
+ if (!(z->I[0] <= z->c)) return 0;
+ return 1;
+}
+
+static int r_attached_pronoun(struct SN_env * z) {
+ int among_var;
+ z->ket = z->c;
+ if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((33314 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
+ if (!(find_among_b(z, a_2, 37))) return 0;
+ z->bra = z->c;
+ if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 111 && z->p[z->c - 1] != 114)) return 0;
+ among_var = find_among_b(z, a_3, 5);
+ if (!(among_var)) return 0;
+ { int ret = r_RV(z);
+ if (ret <= 0) return ret;
+ }
+ switch (among_var) {
+ case 1:
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 2:
+ { int ret = slice_from_s(z, 1, s_10);
+ if (ret < 0) return ret;
+ }
+ break;
+ }
+ return 1;
+}
+
+static int r_standard_suffix(struct SN_env * z) {
+ int among_var;
+ z->ket = z->c;
+ among_var = find_among_b(z, a_6, 51);
+ if (!(among_var)) return 0;
+ z->bra = z->c;
+ switch (among_var) {
+ case 1:
+ { int ret = r_R2(z);
+ if (ret <= 0) return ret;
+ }
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 2:
+ { int ret = r_R2(z);
+ if (ret <= 0) return ret;
+ }
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ { int m1 = z->l - z->c; (void)m1;
+ z->ket = z->c;
+ if (!(eq_s_b(z, 2, s_11))) { z->c = z->l - m1; goto lab0; }
+ z->bra = z->c;
+ { int ret = r_R2(z);
+ if (ret == 0) { z->c = z->l - m1; goto lab0; }
+ if (ret < 0) return ret;
+ }
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ lab0:
+ ;
+ }
+ break;
+ case 3:
+ { int ret = r_R2(z);
+ if (ret <= 0) return ret;
+ }
+ { int ret = slice_from_s(z, 3, s_12);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 4:
+ { int ret = r_R2(z);
+ if (ret <= 0) return ret;
+ }
+ { int ret = slice_from_s(z, 1, s_13);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 5:
+ { int ret = r_R2(z);
+ if (ret <= 0) return ret;
+ }
+ { int ret = slice_from_s(z, 4, s_14);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 6:
+ { int ret = r_RV(z);
+ if (ret <= 0) return ret;
+ }
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 7:
+ { int ret = r_R1(z);
+ if (ret <= 0) return ret;
+ }
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ { int m2 = z->l - z->c; (void)m2;
+ z->ket = z->c;
+ if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((4722696 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->c = z->l - m2; goto lab1; }
+ among_var = find_among_b(z, a_4, 4);
+ if (!(among_var)) { z->c = z->l - m2; goto lab1; }
+ z->bra = z->c;
+ { int ret = r_R2(z);
+ if (ret == 0) { z->c = z->l - m2; goto lab1; }
+ if (ret < 0) return ret;
+ }
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ switch (among_var) {
+ case 1:
+ z->ket = z->c;
+ if (!(eq_s_b(z, 2, s_15))) { z->c = z->l - m2; goto lab1; }
+ z->bra = z->c;
+ { int ret = r_R2(z);
+ if (ret == 0) { z->c = z->l - m2; goto lab1; }
+ if (ret < 0) return ret;
+ }
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ break;
+ }
+ lab1:
+ ;
+ }
+ break;
+ case 8:
+ { int ret = r_R2(z);
+ if (ret <= 0) return ret;
+ }
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ { int m3 = z->l - z->c; (void)m3;
+ z->ket = z->c;
+ 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 - m3; goto lab2; }
+ if (!(find_among_b(z, a_5, 3))) { z->c = z->l - m3; goto lab2; }
+ z->bra = z->c;
+ { int ret = r_R2(z);
+ if (ret == 0) { z->c = z->l - m3; goto lab2; }
+ if (ret < 0) return ret;
+ }
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ lab2:
+ ;
+ }
+ break;
+ case 9:
+ { int ret = r_R2(z);
+ if (ret <= 0) return ret;
+ }
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ { int m4 = z->l - z->c; (void)m4;
+ z->ket = z->c;
+ if (!(eq_s_b(z, 2, s_16))) { z->c = z->l - m4; goto lab3; }
+ z->bra = z->c;
+ { int ret = r_R2(z);
+ if (ret == 0) { z->c = z->l - m4; goto lab3; }
+ if (ret < 0) return ret;
+ }
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ z->ket = z->c;
+ if (!(eq_s_b(z, 2, s_17))) { z->c = z->l - m4; goto lab3; }
+ z->bra = z->c;
+ { int ret = r_R2(z);
+ if (ret == 0) { z->c = z->l - m4; goto lab3; }
+ if (ret < 0) return ret;
+ }
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ lab3:
+ ;
+ }
+ break;
+ }
+ return 1;
+}
+
+static int r_verb_suffix(struct SN_env * z) {
+
+ { int mlimit1;
+ if (z->c < z->I[2]) return 0;
+ mlimit1 = z->lb; z->lb = z->I[2];
+ z->ket = z->c;
+ if (!(find_among_b(z, a_7, 87))) { z->lb = mlimit1; return 0; }
+ z->bra = z->c;
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ z->lb = mlimit1;
+ }
+ return 1;
+}
+
+static int r_vowel_suffix(struct SN_env * z) {
+ { int m1 = z->l - z->c; (void)m1;
+ z->ket = z->c;
+ if (in_grouping_b_U(z, g_AEIO, 97, 242, 0)) { z->c = z->l - m1; goto lab0; }
+ z->bra = z->c;
+ { int ret = r_RV(z);
+ if (ret == 0) { z->c = z->l - m1; goto lab0; }
+ if (ret < 0) return ret;
+ }
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ z->ket = z->c;
+ if (z->c <= z->lb || z->p[z->c - 1] != 'i') { z->c = z->l - m1; goto lab0; }
+ z->c--;
+ z->bra = z->c;
+ { int ret = r_RV(z);
+ if (ret == 0) { z->c = z->l - m1; goto lab0; }
+ if (ret < 0) return ret;
+ }
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ lab0:
+ ;
+ }
+ { int m2 = z->l - z->c; (void)m2;
+ z->ket = z->c;
+ if (z->c <= z->lb || z->p[z->c - 1] != 'h') { z->c = z->l - m2; goto lab1; }
+ z->c--;
+ z->bra = z->c;
+ if (in_grouping_b_U(z, g_CG, 99, 103, 0)) { z->c = z->l - m2; goto lab1; }
+ { int ret = r_RV(z);
+ if (ret == 0) { z->c = z->l - m2; goto lab1; }
+ if (ret < 0) return ret;
+ }
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ lab1:
+ ;
+ }
+ return 1;
+}
+
+extern int italian_UTF_8_stem(struct SN_env * z) {
+ { int c1 = z->c;
+ { int ret = r_prelude(z);
+ if (ret < 0) return ret;
+ }
+ z->c = c1;
+ }
+
+ { int ret = r_mark_regions(z);
+ if (ret < 0) return ret;
+ }
+ z->lb = z->c; z->c = z->l;
+
+ { int m2 = z->l - z->c; (void)m2;
+ { int ret = r_attached_pronoun(z);
+ if (ret < 0) return ret;
+ }
+ z->c = z->l - m2;
+ }
+ { int m3 = z->l - z->c; (void)m3;
+ { int m4 = z->l - z->c; (void)m4;
+ { int ret = r_standard_suffix(z);
+ if (ret == 0) goto lab2;
+ if (ret < 0) return ret;
+ }
+ goto lab1;
+ lab2:
+ z->c = z->l - m4;
+ { int ret = r_verb_suffix(z);
+ if (ret == 0) goto lab0;
+ if (ret < 0) return ret;
+ }
+ }
+ lab1:
+ lab0:
+ z->c = z->l - m3;
+ }
+ { int m5 = z->l - z->c; (void)m5;
+ { int ret = r_vowel_suffix(z);
+ if (ret < 0) return ret;
+ }
+ z->c = z->l - m5;
+ }
+ z->c = z->lb;
+ { int c6 = z->c;
+ { int ret = r_postlude(z);
+ if (ret < 0) return ret;
+ }
+ z->c = c6;
+ }
+ return 1;
+}
+
+extern struct SN_env * italian_UTF_8_create_env(void) { return SN_create_env(0, 3); }
+
+extern void italian_UTF_8_close_env(struct SN_env * z) { SN_close_env(z, 0); }
+
diff --git a/src/backend/snowball/libstemmer/stem_UTF_8_lithuanian.c b/src/backend/snowball/libstemmer/stem_UTF_8_lithuanian.c
new file mode 100644
index 0000000..505b92e
--- /dev/null
+++ b/src/backend/snowball/libstemmer/stem_UTF_8_lithuanian.c
@@ -0,0 +1,837 @@
+/* Generated by Snowball 2.2.0 - https://snowballstem.org/ */
+
+#include "header.h"
+
+static int r_fix_conflicts(struct SN_env * z);
+static int r_fix_gd(struct SN_env * z);
+static int r_fix_chdz(struct SN_env * z);
+static int r_step1(struct SN_env * z);
+static int r_R1(struct SN_env * z);
+static int r_step2(struct SN_env * z);
+#ifdef __cplusplus
+extern "C" {
+#endif
+extern int lithuanian_UTF_8_stem(struct SN_env * z);
+#ifdef __cplusplus
+}
+#endif
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+extern struct SN_env * lithuanian_UTF_8_create_env(void);
+extern void lithuanian_UTF_8_close_env(struct SN_env * z);
+
+
+#ifdef __cplusplus
+}
+#endif
+static const symbol s_0_0[1] = { 'a' };
+static const symbol s_0_1[2] = { 'i', 'a' };
+static const symbol s_0_2[4] = { 'e', 'r', 'i', 'a' };
+static const symbol s_0_3[4] = { 'o', 's', 'n', 'a' };
+static const symbol s_0_4[5] = { 'i', 'o', 's', 'n', 'a' };
+static const symbol s_0_5[5] = { 'u', 'o', 's', 'n', 'a' };
+static const symbol s_0_6[6] = { 'i', 'u', 'o', 's', 'n', 'a' };
+static const symbol s_0_7[4] = { 'y', 's', 'n', 'a' };
+static const symbol s_0_8[5] = { 0xC4, 0x97, 's', 'n', 'a' };
+static const symbol s_0_9[1] = { 'e' };
+static const symbol s_0_10[2] = { 'i', 'e' };
+static const symbol s_0_11[4] = { 'e', 'n', 'i', 'e' };
+static const symbol s_0_12[4] = { 'e', 'r', 'i', 'e' };
+static const symbol s_0_13[3] = { 'o', 'j', 'e' };
+static const symbol s_0_14[4] = { 'i', 'o', 'j', 'e' };
+static const symbol s_0_15[3] = { 'u', 'j', 'e' };
+static const symbol s_0_16[4] = { 'i', 'u', 'j', 'e' };
+static const symbol s_0_17[3] = { 'y', 'j', 'e' };
+static const symbol s_0_18[5] = { 'e', 'n', 'y', 'j', 'e' };
+static const symbol s_0_19[5] = { 'e', 'r', 'y', 'j', 'e' };
+static const symbol s_0_20[4] = { 0xC4, 0x97, 'j', 'e' };
+static const symbol s_0_21[3] = { 'a', 'm', 'e' };
+static const symbol s_0_22[4] = { 'i', 'a', 'm', 'e' };
+static const symbol s_0_23[4] = { 's', 'i', 'm', 'e' };
+static const symbol s_0_24[3] = { 'o', 'm', 'e' };
+static const symbol s_0_25[4] = { 0xC4, 0x97, 'm', 'e' };
+static const symbol s_0_26[7] = { 't', 'u', 'm', 0xC4, 0x97, 'm', 'e' };
+static const symbol s_0_27[3] = { 'o', 's', 'e' };
+static const symbol s_0_28[4] = { 'i', 'o', 's', 'e' };
+static const symbol s_0_29[4] = { 'u', 'o', 's', 'e' };
+static const symbol s_0_30[5] = { 'i', 'u', 'o', 's', 'e' };
+static const symbol s_0_31[3] = { 'y', 's', 'e' };
+static const symbol s_0_32[5] = { 'e', 'n', 'y', 's', 'e' };
+static const symbol s_0_33[5] = { 'e', 'r', 'y', 's', 'e' };
+static const symbol s_0_34[4] = { 0xC4, 0x97, 's', 'e' };
+static const symbol s_0_35[3] = { 'a', 't', 'e' };
+static const symbol s_0_36[4] = { 'i', 'a', 't', 'e' };
+static const symbol s_0_37[3] = { 'i', 't', 'e' };
+static const symbol s_0_38[4] = { 'k', 'i', 't', 'e' };
+static const symbol s_0_39[4] = { 's', 'i', 't', 'e' };
+static const symbol s_0_40[3] = { 'o', 't', 'e' };
+static const symbol s_0_41[4] = { 't', 'u', 't', 'e' };
+static const symbol s_0_42[4] = { 0xC4, 0x97, 't', 'e' };
+static const symbol s_0_43[7] = { 't', 'u', 'm', 0xC4, 0x97, 't', 'e' };
+static const symbol s_0_44[1] = { 'i' };
+static const symbol s_0_45[2] = { 'a', 'i' };
+static const symbol s_0_46[3] = { 'i', 'a', 'i' };
+static const symbol s_0_47[5] = { 'e', 'r', 'i', 'a', 'i' };
+static const symbol s_0_48[2] = { 'e', 'i' };
+static const symbol s_0_49[5] = { 't', 'u', 'm', 'e', 'i' };
+static const symbol s_0_50[2] = { 'k', 'i' };
+static const symbol s_0_51[3] = { 'i', 'm', 'i' };
+static const symbol s_0_52[5] = { 'e', 'r', 'i', 'm', 'i' };
+static const symbol s_0_53[3] = { 'u', 'm', 'i' };
+static const symbol s_0_54[4] = { 'i', 'u', 'm', 'i' };
+static const symbol s_0_55[2] = { 's', 'i' };
+static const symbol s_0_56[3] = { 'a', 's', 'i' };
+static const symbol s_0_57[4] = { 'i', 'a', 's', 'i' };
+static const symbol s_0_58[3] = { 'e', 's', 'i' };
+static const symbol s_0_59[4] = { 'i', 'e', 's', 'i' };
+static const symbol s_0_60[5] = { 's', 'i', 'e', 's', 'i' };
+static const symbol s_0_61[3] = { 'i', 's', 'i' };
+static const symbol s_0_62[4] = { 'a', 'i', 's', 'i' };
+static const symbol s_0_63[4] = { 'e', 'i', 's', 'i' };
+static const symbol s_0_64[7] = { 't', 'u', 'm', 'e', 'i', 's', 'i' };
+static const symbol s_0_65[4] = { 'u', 'i', 's', 'i' };
+static const symbol s_0_66[3] = { 'o', 's', 'i' };
+static const symbol s_0_67[6] = { 0xC4, 0x97, 'j', 'o', 's', 'i' };
+static const symbol s_0_68[4] = { 'u', 'o', 's', 'i' };
+static const symbol s_0_69[5] = { 'i', 'u', 'o', 's', 'i' };
+static const symbol s_0_70[6] = { 's', 'i', 'u', 'o', 's', 'i' };
+static const symbol s_0_71[3] = { 'u', 's', 'i' };
+static const symbol s_0_72[4] = { 'a', 'u', 's', 'i' };
+static const symbol s_0_73[7] = { 0xC4, 0x8D, 'i', 'a', 'u', 's', 'i' };
+static const symbol s_0_74[4] = { 0xC4, 0x85, 's', 'i' };
+static const symbol s_0_75[4] = { 0xC4, 0x97, 's', 'i' };
+static const symbol s_0_76[4] = { 0xC5, 0xB3, 's', 'i' };
+static const symbol s_0_77[5] = { 't', 0xC5, 0xB3, 's', 'i' };
+static const symbol s_0_78[2] = { 't', 'i' };
+static const symbol s_0_79[4] = { 'e', 'n', 't', 'i' };
+static const symbol s_0_80[4] = { 'i', 'n', 't', 'i' };
+static const symbol s_0_81[3] = { 'o', 't', 'i' };
+static const symbol s_0_82[4] = { 'i', 'o', 't', 'i' };
+static const symbol s_0_83[4] = { 'u', 'o', 't', 'i' };
+static const symbol s_0_84[5] = { 'i', 'u', 'o', 't', 'i' };
+static const symbol s_0_85[4] = { 'a', 'u', 't', 'i' };
+static const symbol s_0_86[5] = { 'i', 'a', 'u', 't', 'i' };
+static const symbol s_0_87[3] = { 'y', 't', 'i' };
+static const symbol s_0_88[4] = { 0xC4, 0x97, 't', 'i' };
+static const symbol s_0_89[7] = { 't', 'e', 'l', 0xC4, 0x97, 't', 'i' };
+static const symbol s_0_90[6] = { 'i', 'n', 0xC4, 0x97, 't', 'i' };
+static const symbol s_0_91[7] = { 't', 'e', 'r', 0xC4, 0x97, 't', 'i' };
+static const symbol s_0_92[2] = { 'u', 'i' };
+static const symbol s_0_93[3] = { 'i', 'u', 'i' };
+static const symbol s_0_94[5] = { 'e', 'n', 'i', 'u', 'i' };
+static const symbol s_0_95[2] = { 'o', 'j' };
+static const symbol s_0_96[3] = { 0xC4, 0x97, 'j' };
+static const symbol s_0_97[1] = { 'k' };
+static const symbol s_0_98[2] = { 'a', 'm' };
+static const symbol s_0_99[3] = { 'i', 'a', 'm' };
+static const symbol s_0_100[3] = { 'i', 'e', 'm' };
+static const symbol s_0_101[2] = { 'i', 'm' };
+static const symbol s_0_102[3] = { 's', 'i', 'm' };
+static const symbol s_0_103[2] = { 'o', 'm' };
+static const symbol s_0_104[3] = { 't', 'u', 'm' };
+static const symbol s_0_105[3] = { 0xC4, 0x97, 'm' };
+static const symbol s_0_106[6] = { 't', 'u', 'm', 0xC4, 0x97, 'm' };
+static const symbol s_0_107[2] = { 'a', 'n' };
+static const symbol s_0_108[2] = { 'o', 'n' };
+static const symbol s_0_109[3] = { 'i', 'o', 'n' };
+static const symbol s_0_110[2] = { 'u', 'n' };
+static const symbol s_0_111[3] = { 'i', 'u', 'n' };
+static const symbol s_0_112[3] = { 0xC4, 0x97, 'n' };
+static const symbol s_0_113[1] = { 'o' };
+static const symbol s_0_114[2] = { 'i', 'o' };
+static const symbol s_0_115[4] = { 'e', 'n', 'i', 'o' };
+static const symbol s_0_116[4] = { 0xC4, 0x97, 'j', 'o' };
+static const symbol s_0_117[2] = { 'u', 'o' };
+static const symbol s_0_118[1] = { 's' };
+static const symbol s_0_119[2] = { 'a', 's' };
+static const symbol s_0_120[3] = { 'i', 'a', 's' };
+static const symbol s_0_121[2] = { 'e', 's' };
+static const symbol s_0_122[3] = { 'i', 'e', 's' };
+static const symbol s_0_123[2] = { 'i', 's' };
+static const symbol s_0_124[3] = { 'a', 'i', 's' };
+static const symbol s_0_125[4] = { 'i', 'a', 'i', 's' };
+static const symbol s_0_126[6] = { 't', 'u', 'm', 'e', 'i', 's' };
+static const symbol s_0_127[4] = { 'i', 'm', 'i', 's' };
+static const symbol s_0_128[6] = { 'e', 'n', 'i', 'm', 'i', 's' };
+static const symbol s_0_129[4] = { 'o', 'm', 'i', 's' };
+static const symbol s_0_130[5] = { 'i', 'o', 'm', 'i', 's' };
+static const symbol s_0_131[4] = { 'u', 'm', 'i', 's' };
+static const symbol s_0_132[5] = { 0xC4, 0x97, 'm', 'i', 's' };
+static const symbol s_0_133[4] = { 'e', 'n', 'i', 's' };
+static const symbol s_0_134[4] = { 'a', 's', 'i', 's' };
+static const symbol s_0_135[4] = { 'y', 's', 'i', 's' };
+static const symbol s_0_136[3] = { 'a', 'm', 's' };
+static const symbol s_0_137[4] = { 'i', 'a', 'm', 's' };
+static const symbol s_0_138[4] = { 'i', 'e', 'm', 's' };
+static const symbol s_0_139[3] = { 'i', 'm', 's' };
+static const symbol s_0_140[5] = { 'e', 'n', 'i', 'm', 's' };
+static const symbol s_0_141[5] = { 'e', 'r', 'i', 'm', 's' };
+static const symbol s_0_142[3] = { 'o', 'm', 's' };
+static const symbol s_0_143[4] = { 'i', 'o', 'm', 's' };
+static const symbol s_0_144[3] = { 'u', 'm', 's' };
+static const symbol s_0_145[4] = { 0xC4, 0x97, 'm', 's' };
+static const symbol s_0_146[3] = { 'e', 'n', 's' };
+static const symbol s_0_147[2] = { 'o', 's' };
+static const symbol s_0_148[3] = { 'i', 'o', 's' };
+static const symbol s_0_149[3] = { 'u', 'o', 's' };
+static const symbol s_0_150[4] = { 'i', 'u', 'o', 's' };
+static const symbol s_0_151[3] = { 'e', 'r', 's' };
+static const symbol s_0_152[2] = { 'u', 's' };
+static const symbol s_0_153[3] = { 'a', 'u', 's' };
+static const symbol s_0_154[4] = { 'i', 'a', 'u', 's' };
+static const symbol s_0_155[3] = { 'i', 'u', 's' };
+static const symbol s_0_156[2] = { 'y', 's' };
+static const symbol s_0_157[4] = { 'e', 'n', 'y', 's' };
+static const symbol s_0_158[4] = { 'e', 'r', 'y', 's' };
+static const symbol s_0_159[3] = { 0xC4, 0x85, 's' };
+static const symbol s_0_160[4] = { 'i', 0xC4, 0x85, 's' };
+static const symbol s_0_161[3] = { 0xC4, 0x97, 's' };
+static const symbol s_0_162[5] = { 'a', 'm', 0xC4, 0x97, 's' };
+static const symbol s_0_163[6] = { 'i', 'a', 'm', 0xC4, 0x97, 's' };
+static const symbol s_0_164[5] = { 'i', 'm', 0xC4, 0x97, 's' };
+static const symbol s_0_165[6] = { 'k', 'i', 'm', 0xC4, 0x97, 's' };
+static const symbol s_0_166[6] = { 's', 'i', 'm', 0xC4, 0x97, 's' };
+static const symbol s_0_167[5] = { 'o', 'm', 0xC4, 0x97, 's' };
+static const symbol s_0_168[6] = { 0xC4, 0x97, 'm', 0xC4, 0x97, 's' };
+static const symbol s_0_169[9] = { 't', 'u', 'm', 0xC4, 0x97, 'm', 0xC4, 0x97, 's' };
+static const symbol s_0_170[5] = { 'a', 't', 0xC4, 0x97, 's' };
+static const symbol s_0_171[6] = { 'i', 'a', 't', 0xC4, 0x97, 's' };
+static const symbol s_0_172[6] = { 's', 'i', 't', 0xC4, 0x97, 's' };
+static const symbol s_0_173[5] = { 'o', 't', 0xC4, 0x97, 's' };
+static const symbol s_0_174[6] = { 0xC4, 0x97, 't', 0xC4, 0x97, 's' };
+static const symbol s_0_175[9] = { 't', 'u', 'm', 0xC4, 0x97, 't', 0xC4, 0x97, 's' };
+static const symbol s_0_176[3] = { 0xC5, 0xAB, 's' };
+static const symbol s_0_177[3] = { 0xC4, 0xAF, 's' };
+static const symbol s_0_178[4] = { 't', 0xC5, 0xB3, 's' };
+static const symbol s_0_179[2] = { 'a', 't' };
+static const symbol s_0_180[3] = { 'i', 'a', 't' };
+static const symbol s_0_181[2] = { 'i', 't' };
+static const symbol s_0_182[3] = { 's', 'i', 't' };
+static const symbol s_0_183[2] = { 'o', 't' };
+static const symbol s_0_184[3] = { 0xC4, 0x97, 't' };
+static const symbol s_0_185[6] = { 't', 'u', 'm', 0xC4, 0x97, 't' };
+static const symbol s_0_186[1] = { 'u' };
+static const symbol s_0_187[2] = { 'a', 'u' };
+static const symbol s_0_188[3] = { 'i', 'a', 'u' };
+static const symbol s_0_189[5] = { 0xC4, 0x8D, 'i', 'a', 'u' };
+static const symbol s_0_190[2] = { 'i', 'u' };
+static const symbol s_0_191[4] = { 'e', 'n', 'i', 'u' };
+static const symbol s_0_192[3] = { 's', 'i', 'u' };
+static const symbol s_0_193[1] = { 'y' };
+static const symbol s_0_194[2] = { 0xC4, 0x85 };
+static const symbol s_0_195[3] = { 'i', 0xC4, 0x85 };
+static const symbol s_0_196[2] = { 0xC4, 0x97 };
+static const symbol s_0_197[2] = { 0xC4, 0x99 };
+static const symbol s_0_198[2] = { 0xC4, 0xAF };
+static const symbol s_0_199[4] = { 'e', 'n', 0xC4, 0xAF };
+static const symbol s_0_200[4] = { 'e', 'r', 0xC4, 0xAF };
+static const symbol s_0_201[2] = { 0xC5, 0xB3 };
+static const symbol s_0_202[3] = { 'i', 0xC5, 0xB3 };
+static const symbol s_0_203[4] = { 'e', 'r', 0xC5, 0xB3 };
+
+static const struct among a_0[204] =
+{
+{ 1, s_0_0, -1, -1, 0},
+{ 2, s_0_1, 0, -1, 0},
+{ 4, s_0_2, 1, -1, 0},
+{ 4, s_0_3, 0, -1, 0},
+{ 5, s_0_4, 3, -1, 0},
+{ 5, s_0_5, 3, -1, 0},
+{ 6, s_0_6, 5, -1, 0},
+{ 4, s_0_7, 0, -1, 0},
+{ 5, s_0_8, 0, -1, 0},
+{ 1, s_0_9, -1, -1, 0},
+{ 2, s_0_10, 9, -1, 0},
+{ 4, s_0_11, 10, -1, 0},
+{ 4, s_0_12, 10, -1, 0},
+{ 3, s_0_13, 9, -1, 0},
+{ 4, s_0_14, 13, -1, 0},
+{ 3, s_0_15, 9, -1, 0},
+{ 4, s_0_16, 15, -1, 0},
+{ 3, s_0_17, 9, -1, 0},
+{ 5, s_0_18, 17, -1, 0},
+{ 5, s_0_19, 17, -1, 0},
+{ 4, s_0_20, 9, -1, 0},
+{ 3, s_0_21, 9, -1, 0},
+{ 4, s_0_22, 21, -1, 0},
+{ 4, s_0_23, 9, -1, 0},
+{ 3, s_0_24, 9, -1, 0},
+{ 4, s_0_25, 9, -1, 0},
+{ 7, s_0_26, 25, -1, 0},
+{ 3, s_0_27, 9, -1, 0},
+{ 4, s_0_28, 27, -1, 0},
+{ 4, s_0_29, 27, -1, 0},
+{ 5, s_0_30, 29, -1, 0},
+{ 3, s_0_31, 9, -1, 0},
+{ 5, s_0_32, 31, -1, 0},
+{ 5, s_0_33, 31, -1, 0},
+{ 4, s_0_34, 9, -1, 0},
+{ 3, s_0_35, 9, -1, 0},
+{ 4, s_0_36, 35, -1, 0},
+{ 3, s_0_37, 9, -1, 0},
+{ 4, s_0_38, 37, -1, 0},
+{ 4, s_0_39, 37, -1, 0},
+{ 3, s_0_40, 9, -1, 0},
+{ 4, s_0_41, 9, -1, 0},
+{ 4, s_0_42, 9, -1, 0},
+{ 7, s_0_43, 42, -1, 0},
+{ 1, s_0_44, -1, -1, 0},
+{ 2, s_0_45, 44, -1, 0},
+{ 3, s_0_46, 45, -1, 0},
+{ 5, s_0_47, 46, -1, 0},
+{ 2, s_0_48, 44, -1, 0},
+{ 5, s_0_49, 48, -1, 0},
+{ 2, s_0_50, 44, -1, 0},
+{ 3, s_0_51, 44, -1, 0},
+{ 5, s_0_52, 51, -1, 0},
+{ 3, s_0_53, 44, -1, 0},
+{ 4, s_0_54, 53, -1, 0},
+{ 2, s_0_55, 44, -1, 0},
+{ 3, s_0_56, 55, -1, 0},
+{ 4, s_0_57, 56, -1, 0},
+{ 3, s_0_58, 55, -1, 0},
+{ 4, s_0_59, 58, -1, 0},
+{ 5, s_0_60, 59, -1, 0},
+{ 3, s_0_61, 55, -1, 0},
+{ 4, s_0_62, 61, -1, 0},
+{ 4, s_0_63, 61, -1, 0},
+{ 7, s_0_64, 63, -1, 0},
+{ 4, s_0_65, 61, -1, 0},
+{ 3, s_0_66, 55, -1, 0},
+{ 6, s_0_67, 66, -1, 0},
+{ 4, s_0_68, 66, -1, 0},
+{ 5, s_0_69, 68, -1, 0},
+{ 6, s_0_70, 69, -1, 0},
+{ 3, s_0_71, 55, -1, 0},
+{ 4, s_0_72, 71, -1, 0},
+{ 7, s_0_73, 72, -1, 0},
+{ 4, s_0_74, 55, -1, 0},
+{ 4, s_0_75, 55, -1, 0},
+{ 4, s_0_76, 55, -1, 0},
+{ 5, s_0_77, 76, -1, 0},
+{ 2, s_0_78, 44, -1, 0},
+{ 4, s_0_79, 78, -1, 0},
+{ 4, s_0_80, 78, -1, 0},
+{ 3, s_0_81, 78, -1, 0},
+{ 4, s_0_82, 81, -1, 0},
+{ 4, s_0_83, 81, -1, 0},
+{ 5, s_0_84, 83, -1, 0},
+{ 4, s_0_85, 78, -1, 0},
+{ 5, s_0_86, 85, -1, 0},
+{ 3, s_0_87, 78, -1, 0},
+{ 4, s_0_88, 78, -1, 0},
+{ 7, s_0_89, 88, -1, 0},
+{ 6, s_0_90, 88, -1, 0},
+{ 7, s_0_91, 88, -1, 0},
+{ 2, s_0_92, 44, -1, 0},
+{ 3, s_0_93, 92, -1, 0},
+{ 5, s_0_94, 93, -1, 0},
+{ 2, s_0_95, -1, -1, 0},
+{ 3, s_0_96, -1, -1, 0},
+{ 1, s_0_97, -1, -1, 0},
+{ 2, s_0_98, -1, -1, 0},
+{ 3, s_0_99, 98, -1, 0},
+{ 3, s_0_100, -1, -1, 0},
+{ 2, s_0_101, -1, -1, 0},
+{ 3, s_0_102, 101, -1, 0},
+{ 2, s_0_103, -1, -1, 0},
+{ 3, s_0_104, -1, -1, 0},
+{ 3, s_0_105, -1, -1, 0},
+{ 6, s_0_106, 105, -1, 0},
+{ 2, s_0_107, -1, -1, 0},
+{ 2, s_0_108, -1, -1, 0},
+{ 3, s_0_109, 108, -1, 0},
+{ 2, s_0_110, -1, -1, 0},
+{ 3, s_0_111, 110, -1, 0},
+{ 3, s_0_112, -1, -1, 0},
+{ 1, s_0_113, -1, -1, 0},
+{ 2, s_0_114, 113, -1, 0},
+{ 4, s_0_115, 114, -1, 0},
+{ 4, s_0_116, 113, -1, 0},
+{ 2, s_0_117, 113, -1, 0},
+{ 1, s_0_118, -1, -1, 0},
+{ 2, s_0_119, 118, -1, 0},
+{ 3, s_0_120, 119, -1, 0},
+{ 2, s_0_121, 118, -1, 0},
+{ 3, s_0_122, 121, -1, 0},
+{ 2, s_0_123, 118, -1, 0},
+{ 3, s_0_124, 123, -1, 0},
+{ 4, s_0_125, 124, -1, 0},
+{ 6, s_0_126, 123, -1, 0},
+{ 4, s_0_127, 123, -1, 0},
+{ 6, s_0_128, 127, -1, 0},
+{ 4, s_0_129, 123, -1, 0},
+{ 5, s_0_130, 129, -1, 0},
+{ 4, s_0_131, 123, -1, 0},
+{ 5, s_0_132, 123, -1, 0},
+{ 4, s_0_133, 123, -1, 0},
+{ 4, s_0_134, 123, -1, 0},
+{ 4, s_0_135, 123, -1, 0},
+{ 3, s_0_136, 118, -1, 0},
+{ 4, s_0_137, 136, -1, 0},
+{ 4, s_0_138, 118, -1, 0},
+{ 3, s_0_139, 118, -1, 0},
+{ 5, s_0_140, 139, -1, 0},
+{ 5, s_0_141, 139, -1, 0},
+{ 3, s_0_142, 118, -1, 0},
+{ 4, s_0_143, 142, -1, 0},
+{ 3, s_0_144, 118, -1, 0},
+{ 4, s_0_145, 118, -1, 0},
+{ 3, s_0_146, 118, -1, 0},
+{ 2, s_0_147, 118, -1, 0},
+{ 3, s_0_148, 147, -1, 0},
+{ 3, s_0_149, 147, -1, 0},
+{ 4, s_0_150, 149, -1, 0},
+{ 3, s_0_151, 118, -1, 0},
+{ 2, s_0_152, 118, -1, 0},
+{ 3, s_0_153, 152, -1, 0},
+{ 4, s_0_154, 153, -1, 0},
+{ 3, s_0_155, 152, -1, 0},
+{ 2, s_0_156, 118, -1, 0},
+{ 4, s_0_157, 156, -1, 0},
+{ 4, s_0_158, 156, -1, 0},
+{ 3, s_0_159, 118, -1, 0},
+{ 4, s_0_160, 159, -1, 0},
+{ 3, s_0_161, 118, -1, 0},
+{ 5, s_0_162, 161, -1, 0},
+{ 6, s_0_163, 162, -1, 0},
+{ 5, s_0_164, 161, -1, 0},
+{ 6, s_0_165, 164, -1, 0},
+{ 6, s_0_166, 164, -1, 0},
+{ 5, s_0_167, 161, -1, 0},
+{ 6, s_0_168, 161, -1, 0},
+{ 9, s_0_169, 168, -1, 0},
+{ 5, s_0_170, 161, -1, 0},
+{ 6, s_0_171, 170, -1, 0},
+{ 6, s_0_172, 161, -1, 0},
+{ 5, s_0_173, 161, -1, 0},
+{ 6, s_0_174, 161, -1, 0},
+{ 9, s_0_175, 174, -1, 0},
+{ 3, s_0_176, 118, -1, 0},
+{ 3, s_0_177, 118, -1, 0},
+{ 4, s_0_178, 118, -1, 0},
+{ 2, s_0_179, -1, -1, 0},
+{ 3, s_0_180, 179, -1, 0},
+{ 2, s_0_181, -1, -1, 0},
+{ 3, s_0_182, 181, -1, 0},
+{ 2, s_0_183, -1, -1, 0},
+{ 3, s_0_184, -1, -1, 0},
+{ 6, s_0_185, 184, -1, 0},
+{ 1, s_0_186, -1, -1, 0},
+{ 2, s_0_187, 186, -1, 0},
+{ 3, s_0_188, 187, -1, 0},
+{ 5, s_0_189, 188, -1, 0},
+{ 2, s_0_190, 186, -1, 0},
+{ 4, s_0_191, 190, -1, 0},
+{ 3, s_0_192, 190, -1, 0},
+{ 1, s_0_193, -1, -1, 0},
+{ 2, s_0_194, -1, -1, 0},
+{ 3, s_0_195, 194, -1, 0},
+{ 2, s_0_196, -1, -1, 0},
+{ 2, s_0_197, -1, -1, 0},
+{ 2, s_0_198, -1, -1, 0},
+{ 4, s_0_199, 198, -1, 0},
+{ 4, s_0_200, 198, -1, 0},
+{ 2, s_0_201, -1, -1, 0},
+{ 3, s_0_202, 201, -1, 0},
+{ 4, s_0_203, 201, -1, 0}
+};
+
+static const symbol s_1_0[3] = { 'i', 'n', 'g' };
+static const symbol s_1_1[2] = { 'a', 'j' };
+static const symbol s_1_2[3] = { 'i', 'a', 'j' };
+static const symbol s_1_3[3] = { 'i', 'e', 'j' };
+static const symbol s_1_4[2] = { 'o', 'j' };
+static const symbol s_1_5[3] = { 'i', 'o', 'j' };
+static const symbol s_1_6[3] = { 'u', 'o', 'j' };
+static const symbol s_1_7[4] = { 'i', 'u', 'o', 'j' };
+static const symbol s_1_8[3] = { 'a', 'u', 'j' };
+static const symbol s_1_9[3] = { 0xC4, 0x85, 'j' };
+static const symbol s_1_10[4] = { 'i', 0xC4, 0x85, 'j' };
+static const symbol s_1_11[3] = { 0xC4, 0x97, 'j' };
+static const symbol s_1_12[3] = { 0xC5, 0xB3, 'j' };
+static const symbol s_1_13[4] = { 'i', 0xC5, 0xB3, 'j' };
+static const symbol s_1_14[2] = { 'o', 'k' };
+static const symbol s_1_15[3] = { 'i', 'o', 'k' };
+static const symbol s_1_16[3] = { 'i', 'u', 'k' };
+static const symbol s_1_17[5] = { 'u', 'l', 'i', 'u', 'k' };
+static const symbol s_1_18[6] = { 'u', 0xC4, 0x8D, 'i', 'u', 'k' };
+static const symbol s_1_19[4] = { 'i', 0xC5, 0xA1, 'k' };
+static const symbol s_1_20[3] = { 'i', 'u', 'l' };
+static const symbol s_1_21[2] = { 'y', 'l' };
+static const symbol s_1_22[3] = { 0xC4, 0x97, 'l' };
+static const symbol s_1_23[2] = { 'a', 'm' };
+static const symbol s_1_24[3] = { 'd', 'a', 'm' };
+static const symbol s_1_25[3] = { 'j', 'a', 'm' };
+static const symbol s_1_26[4] = { 'z', 'g', 'a', 'n' };
+static const symbol s_1_27[3] = { 'a', 'i', 'n' };
+static const symbol s_1_28[3] = { 'e', 's', 'n' };
+static const symbol s_1_29[2] = { 'o', 'p' };
+static const symbol s_1_30[3] = { 'i', 'o', 'p' };
+static const symbol s_1_31[3] = { 'i', 'a', 's' };
+static const symbol s_1_32[3] = { 'i', 'e', 's' };
+static const symbol s_1_33[3] = { 'a', 'i', 's' };
+static const symbol s_1_34[4] = { 'i', 'a', 'i', 's' };
+static const symbol s_1_35[2] = { 'o', 's' };
+static const symbol s_1_36[3] = { 'i', 'o', 's' };
+static const symbol s_1_37[3] = { 'u', 'o', 's' };
+static const symbol s_1_38[4] = { 'i', 'u', 'o', 's' };
+static const symbol s_1_39[3] = { 'a', 'u', 's' };
+static const symbol s_1_40[4] = { 'i', 'a', 'u', 's' };
+static const symbol s_1_41[3] = { 0xC4, 0x85, 's' };
+static const symbol s_1_42[4] = { 'i', 0xC4, 0x85, 's' };
+static const symbol s_1_43[3] = { 0xC4, 0x99, 's' };
+static const symbol s_1_44[7] = { 'u', 't', 0xC4, 0x97, 'a', 'i', 't' };
+static const symbol s_1_45[3] = { 'a', 'n', 't' };
+static const symbol s_1_46[4] = { 'i', 'a', 'n', 't' };
+static const symbol s_1_47[5] = { 's', 'i', 'a', 'n', 't' };
+static const symbol s_1_48[3] = { 'i', 'n', 't' };
+static const symbol s_1_49[2] = { 'o', 't' };
+static const symbol s_1_50[3] = { 'u', 'o', 't' };
+static const symbol s_1_51[4] = { 'i', 'u', 'o', 't' };
+static const symbol s_1_52[2] = { 'y', 't' };
+static const symbol s_1_53[3] = { 0xC4, 0x97, 't' };
+static const symbol s_1_54[5] = { 'y', 'k', 0xC5, 0xA1, 't' };
+static const symbol s_1_55[3] = { 'i', 'a', 'u' };
+static const symbol s_1_56[3] = { 'd', 'a', 'v' };
+static const symbol s_1_57[2] = { 's', 'v' };
+static const symbol s_1_58[3] = { 0xC5, 0xA1, 'v' };
+static const symbol s_1_59[6] = { 'y', 'k', 0xC5, 0xA1, 0xC4, 0x8D };
+static const symbol s_1_60[2] = { 0xC4, 0x99 };
+static const symbol s_1_61[5] = { 0xC4, 0x97, 'j', 0xC4, 0x99 };
+
+static const struct among a_1[62] =
+{
+{ 3, s_1_0, -1, -1, 0},
+{ 2, s_1_1, -1, -1, 0},
+{ 3, s_1_2, 1, -1, 0},
+{ 3, s_1_3, -1, -1, 0},
+{ 2, s_1_4, -1, -1, 0},
+{ 3, s_1_5, 4, -1, 0},
+{ 3, s_1_6, 4, -1, 0},
+{ 4, s_1_7, 6, -1, 0},
+{ 3, s_1_8, -1, -1, 0},
+{ 3, s_1_9, -1, -1, 0},
+{ 4, s_1_10, 9, -1, 0},
+{ 3, s_1_11, -1, -1, 0},
+{ 3, s_1_12, -1, -1, 0},
+{ 4, s_1_13, 12, -1, 0},
+{ 2, s_1_14, -1, -1, 0},
+{ 3, s_1_15, 14, -1, 0},
+{ 3, s_1_16, -1, -1, 0},
+{ 5, s_1_17, 16, -1, 0},
+{ 6, s_1_18, 16, -1, 0},
+{ 4, s_1_19, -1, -1, 0},
+{ 3, s_1_20, -1, -1, 0},
+{ 2, s_1_21, -1, -1, 0},
+{ 3, s_1_22, -1, -1, 0},
+{ 2, s_1_23, -1, -1, 0},
+{ 3, s_1_24, 23, -1, 0},
+{ 3, s_1_25, 23, -1, 0},
+{ 4, s_1_26, -1, -1, 0},
+{ 3, s_1_27, -1, -1, 0},
+{ 3, s_1_28, -1, -1, 0},
+{ 2, s_1_29, -1, -1, 0},
+{ 3, s_1_30, 29, -1, 0},
+{ 3, s_1_31, -1, -1, 0},
+{ 3, s_1_32, -1, -1, 0},
+{ 3, s_1_33, -1, -1, 0},
+{ 4, s_1_34, 33, -1, 0},
+{ 2, s_1_35, -1, -1, 0},
+{ 3, s_1_36, 35, -1, 0},
+{ 3, s_1_37, 35, -1, 0},
+{ 4, s_1_38, 37, -1, 0},
+{ 3, s_1_39, -1, -1, 0},
+{ 4, s_1_40, 39, -1, 0},
+{ 3, s_1_41, -1, -1, 0},
+{ 4, s_1_42, 41, -1, 0},
+{ 3, s_1_43, -1, -1, 0},
+{ 7, s_1_44, -1, -1, 0},
+{ 3, s_1_45, -1, -1, 0},
+{ 4, s_1_46, 45, -1, 0},
+{ 5, s_1_47, 46, -1, 0},
+{ 3, s_1_48, -1, -1, 0},
+{ 2, s_1_49, -1, -1, 0},
+{ 3, s_1_50, 49, -1, 0},
+{ 4, s_1_51, 50, -1, 0},
+{ 2, s_1_52, -1, -1, 0},
+{ 3, s_1_53, -1, -1, 0},
+{ 5, s_1_54, -1, -1, 0},
+{ 3, s_1_55, -1, -1, 0},
+{ 3, s_1_56, -1, -1, 0},
+{ 2, s_1_57, -1, -1, 0},
+{ 3, s_1_58, -1, -1, 0},
+{ 6, s_1_59, -1, -1, 0},
+{ 2, s_1_60, -1, -1, 0},
+{ 5, s_1_61, 60, -1, 0}
+};
+
+static const symbol s_2_0[5] = { 'o', 'j', 'i', 'm', 'e' };
+static const symbol s_2_1[6] = { 0xC4, 0x97, 'j', 'i', 'm', 'e' };
+static const symbol s_2_2[5] = { 'a', 'v', 'i', 'm', 'e' };
+static const symbol s_2_3[5] = { 'o', 'k', 'a', 't', 'e' };
+static const symbol s_2_4[4] = { 'a', 'i', 't', 'e' };
+static const symbol s_2_5[4] = { 'u', 'o', 't', 'e' };
+static const symbol s_2_6[5] = { 'a', 's', 'i', 'u', 's' };
+static const symbol s_2_7[7] = { 'o', 'k', 'a', 't', 0xC4, 0x97, 's' };
+static const symbol s_2_8[6] = { 'a', 'i', 't', 0xC4, 0x97, 's' };
+static const symbol s_2_9[6] = { 'u', 'o', 't', 0xC4, 0x97, 's' };
+static const symbol s_2_10[4] = { 'e', 's', 'i', 'u' };
+
+static const struct among a_2[11] =
+{
+{ 5, s_2_0, -1, 7, 0},
+{ 6, s_2_1, -1, 3, 0},
+{ 5, s_2_2, -1, 6, 0},
+{ 5, s_2_3, -1, 8, 0},
+{ 4, s_2_4, -1, 1, 0},
+{ 4, s_2_5, -1, 2, 0},
+{ 5, s_2_6, -1, 5, 0},
+{ 7, s_2_7, -1, 8, 0},
+{ 6, s_2_8, -1, 1, 0},
+{ 6, s_2_9, -1, 2, 0},
+{ 4, s_2_10, -1, 4, 0}
+};
+
+static const symbol s_3_0[2] = { 0xC4, 0x8D };
+static const symbol s_3_1[3] = { 'd', 0xC5, 0xBE };
+
+static const struct among a_3[2] =
+{
+{ 2, s_3_0, -1, 1, 0},
+{ 3, s_3_1, -1, 2, 0}
+};
+
+static const symbol s_4_0[2] = { 'g', 'd' };
+
+static const struct among a_4[1] =
+{
+{ 2, s_4_0, -1, 1, 0}
+};
+
+static const unsigned char g_v[] = { 17, 65, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 64, 1, 0, 64, 0, 0, 0, 0, 0, 0, 0, 4, 4 };
+
+static const symbol s_0[] = { 'a', 'i', 't', 0xC4, 0x97 };
+static const symbol s_1[] = { 'u', 'o', 't', 0xC4, 0x97 };
+static const symbol s_2[] = { 0xC4, 0x97, 'j', 'i', 'm', 'a', 's' };
+static const symbol s_3[] = { 'e', 's', 'y', 's' };
+static const symbol s_4[] = { 'a', 's', 'y', 's' };
+static const symbol s_5[] = { 'a', 'v', 'i', 'm', 'a', 's' };
+static const symbol s_6[] = { 'o', 'j', 'i', 'm', 'a', 's' };
+static const symbol s_7[] = { 'o', 'k', 'a', 't', 0xC4, 0x97 };
+static const symbol s_8[] = { 't' };
+static const symbol s_9[] = { 'd' };
+static const symbol s_10[] = { 'g' };
+
+static int r_R1(struct SN_env * z) {
+ if (!(z->I[0] <= z->c)) return 0;
+ return 1;
+}
+
+static int r_step1(struct SN_env * z) {
+
+ { int mlimit1;
+ if (z->c < z->I[0]) return 0;
+ mlimit1 = z->lb; z->lb = z->I[0];
+ z->ket = z->c;
+ if (!(find_among_b(z, a_0, 204))) { z->lb = mlimit1; return 0; }
+ z->bra = z->c;
+ z->lb = mlimit1;
+ }
+ { int ret = r_R1(z);
+ if (ret <= 0) return ret;
+ }
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ return 1;
+}
+
+static int r_step2(struct SN_env * z) {
+ while(1) {
+ int m1 = z->l - z->c; (void)m1;
+
+ { int mlimit2;
+ if (z->c < z->I[0]) goto lab0;
+ mlimit2 = z->lb; z->lb = z->I[0];
+ z->ket = z->c;
+ if (!(find_among_b(z, a_1, 62))) { z->lb = mlimit2; goto lab0; }
+ z->bra = z->c;
+ z->lb = mlimit2;
+ }
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ continue;
+ lab0:
+ z->c = z->l - m1;
+ break;
+ }
+ return 1;
+}
+
+static int r_fix_conflicts(struct SN_env * z) {
+ int among_var;
+ z->ket = z->c;
+ if (z->c - 3 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((2621472 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
+ among_var = find_among_b(z, a_2, 11);
+ if (!(among_var)) return 0;
+ z->bra = z->c;
+ switch (among_var) {
+ case 1:
+ { int ret = slice_from_s(z, 5, s_0);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 2:
+ { int ret = slice_from_s(z, 5, s_1);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 3:
+ { int ret = slice_from_s(z, 7, s_2);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 4:
+ { int ret = slice_from_s(z, 4, s_3);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 5:
+ { int ret = slice_from_s(z, 4, s_4);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 6:
+ { int ret = slice_from_s(z, 6, s_5);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 7:
+ { int ret = slice_from_s(z, 6, s_6);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 8:
+ { int ret = slice_from_s(z, 6, s_7);
+ if (ret < 0) return ret;
+ }
+ break;
+ }
+ return 1;
+}
+
+static int r_fix_chdz(struct SN_env * z) {
+ int among_var;
+ z->ket = z->c;
+ if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 141 && z->p[z->c - 1] != 190)) return 0;
+ among_var = find_among_b(z, a_3, 2);
+ if (!(among_var)) return 0;
+ z->bra = z->c;
+ switch (among_var) {
+ case 1:
+ { int ret = slice_from_s(z, 1, s_8);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 2:
+ { int ret = slice_from_s(z, 1, s_9);
+ if (ret < 0) return ret;
+ }
+ break;
+ }
+ return 1;
+}
+
+static int r_fix_gd(struct SN_env * z) {
+ z->ket = z->c;
+ if (z->c - 1 <= z->lb || z->p[z->c - 1] != 100) return 0;
+ if (!(find_among_b(z, a_4, 1))) return 0;
+ z->bra = z->c;
+ { int ret = slice_from_s(z, 1, s_10);
+ if (ret < 0) return ret;
+ }
+ return 1;
+}
+
+extern int lithuanian_UTF_8_stem(struct SN_env * z) {
+ z->I[0] = z->l;
+ { int c1 = z->c;
+ { int c2 = z->c;
+ { int c_test3 = z->c;
+ if (z->c == z->l || z->p[z->c] != 'a') { z->c = c2; goto lab1; }
+ z->c++;
+ z->c = c_test3;
+ }
+ if (!(len_utf8(z->p) > 6)) { z->c = c2; goto lab1; }
+ { int ret = skip_utf8(z->p, z->c, z->l, 1);
+ if (ret < 0) { z->c = c2; goto lab1; }
+ z->c = ret;
+ }
+ lab1:
+ ;
+ }
+ {
+ int ret = out_grouping_U(z, g_v, 97, 371, 1);
+ if (ret < 0) goto lab0;
+ z->c += ret;
+ }
+ {
+ int ret = in_grouping_U(z, g_v, 97, 371, 1);
+ if (ret < 0) goto lab0;
+ z->c += ret;
+ }
+ z->I[0] = z->c;
+ lab0:
+ z->c = c1;
+ }
+ z->lb = z->c; z->c = z->l;
+
+ { int m4 = z->l - z->c; (void)m4;
+ { int ret = r_fix_conflicts(z);
+ if (ret < 0) return ret;
+ }
+ z->c = z->l - m4;
+ }
+ { int m5 = z->l - z->c; (void)m5;
+ { int ret = r_step1(z);
+ if (ret < 0) return ret;
+ }
+ z->c = z->l - m5;
+ }
+ { int m6 = z->l - z->c; (void)m6;
+ { int ret = r_fix_chdz(z);
+ if (ret < 0) return ret;
+ }
+ z->c = z->l - m6;
+ }
+ { int m7 = z->l - z->c; (void)m7;
+ { int ret = r_step2(z);
+ if (ret < 0) return ret;
+ }
+ z->c = z->l - m7;
+ }
+ { int m8 = z->l - z->c; (void)m8;
+ { int ret = r_fix_chdz(z);
+ if (ret < 0) return ret;
+ }
+ z->c = z->l - m8;
+ }
+ { int m9 = z->l - z->c; (void)m9;
+ { int ret = r_fix_gd(z);
+ if (ret < 0) return ret;
+ }
+ z->c = z->l - m9;
+ }
+ z->c = z->lb;
+ return 1;
+}
+
+extern struct SN_env * lithuanian_UTF_8_create_env(void) { return SN_create_env(0, 1); }
+
+extern void lithuanian_UTF_8_close_env(struct SN_env * z) { SN_close_env(z, 0); }
+
diff --git a/src/backend/snowball/libstemmer/stem_UTF_8_nepali.c b/src/backend/snowball/libstemmer/stem_UTF_8_nepali.c
new file mode 100644
index 0000000..b1810c5
--- /dev/null
+++ b/src/backend/snowball/libstemmer/stem_UTF_8_nepali.c
@@ -0,0 +1,421 @@
+/* Generated by Snowball 2.2.0 - https://snowballstem.org/ */
+
+#include "header.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+extern int nepali_UTF_8_stem(struct SN_env * z);
+#ifdef __cplusplus
+}
+#endif
+static int r_remove_category_3(struct SN_env * z);
+static int r_remove_category_2(struct SN_env * z);
+static int r_check_category_2(struct SN_env * z);
+static int r_remove_category_1(struct SN_env * z);
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+extern struct SN_env * nepali_UTF_8_create_env(void);
+extern void nepali_UTF_8_close_env(struct SN_env * z);
+
+
+#ifdef __cplusplus
+}
+#endif
+static const symbol s_0_0[6] = { 0xE0, 0xA4, 0x95, 0xE0, 0xA5, 0x80 };
+static const symbol s_0_1[9] = { 0xE0, 0xA4, 0xB2, 0xE0, 0xA4, 0xBE, 0xE0, 0xA4, 0x87 };
+static const symbol s_0_2[6] = { 0xE0, 0xA4, 0xB2, 0xE0, 0xA5, 0x87 };
+static const symbol s_0_3[9] = { 0xE0, 0xA4, 0xB2, 0xE0, 0xA4, 0xBE, 0xE0, 0xA4, 0x88 };
+static const symbol s_0_4[6] = { 0xE0, 0xA4, 0x95, 0xE0, 0xA5, 0x88 };
+static const symbol s_0_5[12] = { 0xE0, 0xA4, 0xB8, 0xE0, 0xA4, 0x81, 0xE0, 0xA4, 0x97, 0xE0, 0xA5, 0x88 };
+static const symbol s_0_6[6] = { 0xE0, 0xA4, 0xAE, 0xE0, 0xA5, 0x88 };
+static const symbol s_0_7[6] = { 0xE0, 0xA4, 0x95, 0xE0, 0xA5, 0x8B };
+static const symbol s_0_8[9] = { 0xE0, 0xA4, 0xB8, 0xE0, 0xA4, 0x81, 0xE0, 0xA4, 0x97 };
+static const symbol s_0_9[9] = { 0xE0, 0xA4, 0xB8, 0xE0, 0xA4, 0x82, 0xE0, 0xA4, 0x97 };
+static const symbol s_0_10[18] = { 0xE0, 0xA4, 0xAE, 0xE0, 0xA4, 0xBE, 0xE0, 0xA4, 0xB0, 0xE0, 0xA5, 0x8D, 0xE0, 0xA4, 0xAB, 0xE0, 0xA4, 0xA4 };
+static const symbol s_0_11[6] = { 0xE0, 0xA4, 0xB0, 0xE0, 0xA4, 0xA4 };
+static const symbol s_0_12[6] = { 0xE0, 0xA4, 0x95, 0xE0, 0xA4, 0xBE };
+static const symbol s_0_13[6] = { 0xE0, 0xA4, 0xAE, 0xE0, 0xA4, 0xBE };
+static const symbol s_0_14[18] = { 0xE0, 0xA4, 0xA6, 0xE0, 0xA5, 0x8D, 0xE0, 0xA4, 0xB5, 0xE0, 0xA4, 0xBE, 0xE0, 0xA4, 0xB0, 0xE0, 0xA4, 0xBE };
+static const symbol s_0_15[6] = { 0xE0, 0xA4, 0x95, 0xE0, 0xA4, 0xBF };
+static const symbol s_0_16[9] = { 0xE0, 0xA4, 0xAA, 0xE0, 0xA4, 0x9B, 0xE0, 0xA4, 0xBF };
+
+static const struct among a_0[17] =
+{
+{ 6, s_0_0, -1, 2, 0},
+{ 9, s_0_1, -1, 1, 0},
+{ 6, s_0_2, -1, 1, 0},
+{ 9, s_0_3, -1, 1, 0},
+{ 6, s_0_4, -1, 2, 0},
+{ 12, s_0_5, -1, 1, 0},
+{ 6, s_0_6, -1, 1, 0},
+{ 6, s_0_7, -1, 2, 0},
+{ 9, s_0_8, -1, 1, 0},
+{ 9, s_0_9, -1, 1, 0},
+{ 18, s_0_10, -1, 1, 0},
+{ 6, s_0_11, -1, 1, 0},
+{ 6, s_0_12, -1, 2, 0},
+{ 6, s_0_13, -1, 1, 0},
+{ 18, s_0_14, -1, 1, 0},
+{ 6, s_0_15, -1, 2, 0},
+{ 9, s_0_16, -1, 1, 0}
+};
+
+static const symbol s_1_0[3] = { 0xE0, 0xA4, 0x81 };
+static const symbol s_1_1[3] = { 0xE0, 0xA4, 0x82 };
+static const symbol s_1_2[3] = { 0xE0, 0xA5, 0x88 };
+
+static const struct among a_1[3] =
+{
+{ 3, s_1_0, -1, -1, 0},
+{ 3, s_1_1, -1, -1, 0},
+{ 3, s_1_2, -1, -1, 0}
+};
+
+static const symbol s_2_0[3] = { 0xE0, 0xA4, 0x81 };
+static const symbol s_2_1[3] = { 0xE0, 0xA4, 0x82 };
+static const symbol s_2_2[3] = { 0xE0, 0xA5, 0x88 };
+
+static const struct among a_2[3] =
+{
+{ 3, s_2_0, -1, 1, 0},
+{ 3, s_2_1, -1, 1, 0},
+{ 3, s_2_2, -1, 2, 0}
+};
+
+static const symbol s_3_0[9] = { 0xE0, 0xA5, 0x87, 0xE0, 0xA4, 0x95, 0xE0, 0xA5, 0x80 };
+static const symbol s_3_1[9] = { 0xE0, 0xA4, 0x8F, 0xE0, 0xA4, 0x95, 0xE0, 0xA5, 0x80 };
+static const symbol s_3_2[12] = { 0xE0, 0xA4, 0x87, 0xE0, 0xA4, 0x8F, 0xE0, 0xA4, 0x95, 0xE0, 0xA5, 0x80 };
+static const symbol s_3_3[12] = { 0xE0, 0xA4, 0xBF, 0xE0, 0xA4, 0x8F, 0xE0, 0xA4, 0x95, 0xE0, 0xA5, 0x80 };
+static const symbol s_3_4[12] = { 0xE0, 0xA4, 0xA6, 0xE0, 0xA5, 0x87, 0xE0, 0xA4, 0x96, 0xE0, 0xA5, 0x80 };
+static const symbol s_3_5[6] = { 0xE0, 0xA4, 0xA5, 0xE0, 0xA5, 0x80 };
+static const symbol s_3_6[6] = { 0xE0, 0xA4, 0xA6, 0xE0, 0xA5, 0x80 };
+static const symbol s_3_7[6] = { 0xE0, 0xA4, 0x9B, 0xE0, 0xA5, 0x81 };
+static const symbol s_3_8[9] = { 0xE0, 0xA5, 0x87, 0xE0, 0xA4, 0x9B, 0xE0, 0xA5, 0x81 };
+static const symbol s_3_9[12] = { 0xE0, 0xA4, 0xA8, 0xE0, 0xA5, 0x87, 0xE0, 0xA4, 0x9B, 0xE0, 0xA5, 0x81 };
+static const symbol s_3_10[9] = { 0xE0, 0xA4, 0x8F, 0xE0, 0xA4, 0x9B, 0xE0, 0xA5, 0x81 };
+static const symbol s_3_11[6] = { 0xE0, 0xA4, 0xA8, 0xE0, 0xA5, 0x81 };
+static const symbol s_3_12[9] = { 0xE0, 0xA4, 0xB9, 0xE0, 0xA4, 0xB0, 0xE0, 0xA5, 0x81 };
+static const symbol s_3_13[9] = { 0xE0, 0xA4, 0xB9, 0xE0, 0xA4, 0xB0, 0xE0, 0xA5, 0x82 };
+static const symbol s_3_14[6] = { 0xE0, 0xA4, 0x9B, 0xE0, 0xA5, 0x87 };
+static const symbol s_3_15[6] = { 0xE0, 0xA4, 0xA5, 0xE0, 0xA5, 0x87 };
+static const symbol s_3_16[6] = { 0xE0, 0xA4, 0xA8, 0xE0, 0xA5, 0x87 };
+static const symbol s_3_17[9] = { 0xE0, 0xA5, 0x87, 0xE0, 0xA4, 0x95, 0xE0, 0xA5, 0x88 };
+static const symbol s_3_18[12] = { 0xE0, 0xA4, 0xA8, 0xE0, 0xA5, 0x87, 0xE0, 0xA4, 0x95, 0xE0, 0xA5, 0x88 };
+static const symbol s_3_19[9] = { 0xE0, 0xA4, 0x8F, 0xE0, 0xA4, 0x95, 0xE0, 0xA5, 0x88 };
+static const symbol s_3_20[6] = { 0xE0, 0xA4, 0xA6, 0xE0, 0xA5, 0x88 };
+static const symbol s_3_21[9] = { 0xE0, 0xA4, 0x87, 0xE0, 0xA4, 0xA6, 0xE0, 0xA5, 0x88 };
+static const symbol s_3_22[9] = { 0xE0, 0xA4, 0xBF, 0xE0, 0xA4, 0xA6, 0xE0, 0xA5, 0x88 };
+static const symbol s_3_23[9] = { 0xE0, 0xA5, 0x87, 0xE0, 0xA4, 0x95, 0xE0, 0xA5, 0x8B };
+static const symbol s_3_24[12] = { 0xE0, 0xA4, 0xA8, 0xE0, 0xA5, 0x87, 0xE0, 0xA4, 0x95, 0xE0, 0xA5, 0x8B };
+static const symbol s_3_25[9] = { 0xE0, 0xA4, 0x8F, 0xE0, 0xA4, 0x95, 0xE0, 0xA5, 0x8B };
+static const symbol s_3_26[12] = { 0xE0, 0xA4, 0x87, 0xE0, 0xA4, 0x8F, 0xE0, 0xA4, 0x95, 0xE0, 0xA5, 0x8B };
+static const symbol s_3_27[12] = { 0xE0, 0xA4, 0xBF, 0xE0, 0xA4, 0x8F, 0xE0, 0xA4, 0x95, 0xE0, 0xA5, 0x8B };
+static const symbol s_3_28[6] = { 0xE0, 0xA4, 0xA6, 0xE0, 0xA5, 0x8B };
+static const symbol s_3_29[9] = { 0xE0, 0xA4, 0x87, 0xE0, 0xA4, 0xA6, 0xE0, 0xA5, 0x8B };
+static const symbol s_3_30[9] = { 0xE0, 0xA4, 0xBF, 0xE0, 0xA4, 0xA6, 0xE0, 0xA5, 0x8B };
+static const symbol s_3_31[6] = { 0xE0, 0xA4, 0xAF, 0xE0, 0xA5, 0x8B };
+static const symbol s_3_32[9] = { 0xE0, 0xA4, 0x87, 0xE0, 0xA4, 0xAF, 0xE0, 0xA5, 0x8B };
+static const symbol s_3_33[12] = { 0xE0, 0xA4, 0xA5, 0xE0, 0xA5, 0x8D, 0xE0, 0xA4, 0xAF, 0xE0, 0xA5, 0x8B };
+static const symbol s_3_34[9] = { 0xE0, 0xA4, 0xAD, 0xE0, 0xA4, 0xAF, 0xE0, 0xA5, 0x8B };
+static const symbol s_3_35[9] = { 0xE0, 0xA4, 0xBF, 0xE0, 0xA4, 0xAF, 0xE0, 0xA5, 0x8B };
+static const symbol s_3_36[12] = { 0xE0, 0xA4, 0xA5, 0xE0, 0xA4, 0xBF, 0xE0, 0xA4, 0xAF, 0xE0, 0xA5, 0x8B };
+static const symbol s_3_37[12] = { 0xE0, 0xA4, 0xA6, 0xE0, 0xA4, 0xBF, 0xE0, 0xA4, 0xAF, 0xE0, 0xA5, 0x8B };
+static const symbol s_3_38[6] = { 0xE0, 0xA4, 0x9B, 0xE0, 0xA5, 0x8C };
+static const symbol s_3_39[9] = { 0xE0, 0xA4, 0x87, 0xE0, 0xA4, 0x9B, 0xE0, 0xA5, 0x8C };
+static const symbol s_3_40[9] = { 0xE0, 0xA5, 0x87, 0xE0, 0xA4, 0x9B, 0xE0, 0xA5, 0x8C };
+static const symbol s_3_41[12] = { 0xE0, 0xA4, 0xA8, 0xE0, 0xA5, 0x87, 0xE0, 0xA4, 0x9B, 0xE0, 0xA5, 0x8C };
+static const symbol s_3_42[9] = { 0xE0, 0xA4, 0x8F, 0xE0, 0xA4, 0x9B, 0xE0, 0xA5, 0x8C };
+static const symbol s_3_43[9] = { 0xE0, 0xA4, 0xBF, 0xE0, 0xA4, 0x9B, 0xE0, 0xA5, 0x8C };
+static const symbol s_3_44[6] = { 0xE0, 0xA4, 0xAF, 0xE0, 0xA5, 0x8C };
+static const symbol s_3_45[12] = { 0xE0, 0xA4, 0x9B, 0xE0, 0xA5, 0x8D, 0xE0, 0xA4, 0xAF, 0xE0, 0xA5, 0x8C };
+static const symbol s_3_46[12] = { 0xE0, 0xA4, 0xA5, 0xE0, 0xA5, 0x8D, 0xE0, 0xA4, 0xAF, 0xE0, 0xA5, 0x8C };
+static const symbol s_3_47[12] = { 0xE0, 0xA4, 0xA5, 0xE0, 0xA4, 0xBF, 0xE0, 0xA4, 0xAF, 0xE0, 0xA5, 0x8C };
+static const symbol s_3_48[9] = { 0xE0, 0xA4, 0x9B, 0xE0, 0xA4, 0xA8, 0xE0, 0xA5, 0x8D };
+static const symbol s_3_49[12] = { 0xE0, 0xA4, 0x87, 0xE0, 0xA4, 0x9B, 0xE0, 0xA4, 0xA8, 0xE0, 0xA5, 0x8D };
+static const symbol s_3_50[12] = { 0xE0, 0xA5, 0x87, 0xE0, 0xA4, 0x9B, 0xE0, 0xA4, 0xA8, 0xE0, 0xA5, 0x8D };
+static const symbol s_3_51[15] = { 0xE0, 0xA4, 0xA8, 0xE0, 0xA5, 0x87, 0xE0, 0xA4, 0x9B, 0xE0, 0xA4, 0xA8, 0xE0, 0xA5, 0x8D };
+static const symbol s_3_52[12] = { 0xE0, 0xA4, 0x8F, 0xE0, 0xA4, 0x9B, 0xE0, 0xA4, 0xA8, 0xE0, 0xA5, 0x8D };
+static const symbol s_3_53[12] = { 0xE0, 0xA4, 0xBF, 0xE0, 0xA4, 0x9B, 0xE0, 0xA4, 0xA8, 0xE0, 0xA5, 0x8D };
+static const symbol s_3_54[12] = { 0xE0, 0xA4, 0xB2, 0xE0, 0xA4, 0xBE, 0xE0, 0xA4, 0xA8, 0xE0, 0xA5, 0x8D };
+static const symbol s_3_55[12] = { 0xE0, 0xA4, 0x9B, 0xE0, 0xA4, 0xBF, 0xE0, 0xA4, 0xA8, 0xE0, 0xA5, 0x8D };
+static const symbol s_3_56[12] = { 0xE0, 0xA4, 0xA5, 0xE0, 0xA4, 0xBF, 0xE0, 0xA4, 0xA8, 0xE0, 0xA5, 0x8D };
+static const symbol s_3_57[9] = { 0xE0, 0xA4, 0xAA, 0xE0, 0xA4, 0xB0, 0xE0, 0xA5, 0x8D };
+static const symbol s_3_58[9] = { 0xE0, 0xA4, 0x87, 0xE0, 0xA4, 0xB8, 0xE0, 0xA5, 0x8D };
+static const symbol s_3_59[15] = { 0xE0, 0xA4, 0xA5, 0xE0, 0xA4, 0xBF, 0xE0, 0xA4, 0x87, 0xE0, 0xA4, 0xB8, 0xE0, 0xA5, 0x8D };
+static const symbol s_3_60[12] = { 0xE0, 0xA4, 0x9B, 0xE0, 0xA5, 0x87, 0xE0, 0xA4, 0xB8, 0xE0, 0xA5, 0x8D };
+static const symbol s_3_61[12] = { 0xE0, 0xA4, 0xB9, 0xE0, 0xA5, 0x8B, 0xE0, 0xA4, 0xB8, 0xE0, 0xA5, 0x8D };
+static const symbol s_3_62[9] = { 0xE0, 0xA4, 0x9B, 0xE0, 0xA4, 0xB8, 0xE0, 0xA5, 0x8D };
+static const symbol s_3_63[12] = { 0xE0, 0xA4, 0x87, 0xE0, 0xA4, 0x9B, 0xE0, 0xA4, 0xB8, 0xE0, 0xA5, 0x8D };
+static const symbol s_3_64[12] = { 0xE0, 0xA5, 0x87, 0xE0, 0xA4, 0x9B, 0xE0, 0xA4, 0xB8, 0xE0, 0xA5, 0x8D };
+static const symbol s_3_65[15] = { 0xE0, 0xA4, 0xA8, 0xE0, 0xA5, 0x87, 0xE0, 0xA4, 0x9B, 0xE0, 0xA4, 0xB8, 0xE0, 0xA5, 0x8D };
+static const symbol s_3_66[12] = { 0xE0, 0xA4, 0x8F, 0xE0, 0xA4, 0x9B, 0xE0, 0xA4, 0xB8, 0xE0, 0xA5, 0x8D };
+static const symbol s_3_67[12] = { 0xE0, 0xA4, 0xBF, 0xE0, 0xA4, 0x9B, 0xE0, 0xA4, 0xB8, 0xE0, 0xA5, 0x8D };
+static const symbol s_3_68[9] = { 0xE0, 0xA4, 0xBF, 0xE0, 0xA4, 0xB8, 0xE0, 0xA5, 0x8D };
+static const symbol s_3_69[12] = { 0xE0, 0xA4, 0xA5, 0xE0, 0xA4, 0xBF, 0xE0, 0xA4, 0xB8, 0xE0, 0xA5, 0x8D };
+static const symbol s_3_70[9] = { 0xE0, 0xA4, 0xA5, 0xE0, 0xA4, 0xBF, 0xE0, 0xA4, 0x8F };
+static const symbol s_3_71[3] = { 0xE0, 0xA4, 0x9B };
+static const symbol s_3_72[6] = { 0xE0, 0xA4, 0x87, 0xE0, 0xA4, 0x9B };
+static const symbol s_3_73[6] = { 0xE0, 0xA5, 0x87, 0xE0, 0xA4, 0x9B };
+static const symbol s_3_74[9] = { 0xE0, 0xA4, 0xA8, 0xE0, 0xA5, 0x87, 0xE0, 0xA4, 0x9B };
+static const symbol s_3_75[15] = { 0xE0, 0xA4, 0xB9, 0xE0, 0xA5, 0x81, 0xE0, 0xA4, 0xA8, 0xE0, 0xA5, 0x87, 0xE0, 0xA4, 0x9B };
+static const symbol s_3_76[15] = { 0xE0, 0xA4, 0xB9, 0xE0, 0xA5, 0x81, 0xE0, 0xA4, 0xA8, 0xE0, 0xA5, 0x8D, 0xE0, 0xA4, 0x9B };
+static const symbol s_3_77[12] = { 0xE0, 0xA4, 0x87, 0xE0, 0xA4, 0xA8, 0xE0, 0xA5, 0x8D, 0xE0, 0xA4, 0x9B };
+static const symbol s_3_78[12] = { 0xE0, 0xA4, 0xBF, 0xE0, 0xA4, 0xA8, 0xE0, 0xA5, 0x8D, 0xE0, 0xA4, 0x9B };
+static const symbol s_3_79[6] = { 0xE0, 0xA4, 0x8F, 0xE0, 0xA4, 0x9B };
+static const symbol s_3_80[6] = { 0xE0, 0xA4, 0xBF, 0xE0, 0xA4, 0x9B };
+static const symbol s_3_81[9] = { 0xE0, 0xA5, 0x87, 0xE0, 0xA4, 0x95, 0xE0, 0xA4, 0xBE };
+static const symbol s_3_82[12] = { 0xE0, 0xA4, 0xA8, 0xE0, 0xA5, 0x87, 0xE0, 0xA4, 0x95, 0xE0, 0xA4, 0xBE };
+static const symbol s_3_83[9] = { 0xE0, 0xA4, 0x8F, 0xE0, 0xA4, 0x95, 0xE0, 0xA4, 0xBE };
+static const symbol s_3_84[12] = { 0xE0, 0xA4, 0x87, 0xE0, 0xA4, 0x8F, 0xE0, 0xA4, 0x95, 0xE0, 0xA4, 0xBE };
+static const symbol s_3_85[12] = { 0xE0, 0xA4, 0xBF, 0xE0, 0xA4, 0x8F, 0xE0, 0xA4, 0x95, 0xE0, 0xA4, 0xBE };
+static const symbol s_3_86[6] = { 0xE0, 0xA4, 0xA6, 0xE0, 0xA4, 0xBE };
+static const symbol s_3_87[9] = { 0xE0, 0xA4, 0x87, 0xE0, 0xA4, 0xA6, 0xE0, 0xA4, 0xBE };
+static const symbol s_3_88[9] = { 0xE0, 0xA4, 0xBF, 0xE0, 0xA4, 0xA6, 0xE0, 0xA4, 0xBE };
+static const symbol s_3_89[12] = { 0xE0, 0xA4, 0xA6, 0xE0, 0xA5, 0x87, 0xE0, 0xA4, 0x96, 0xE0, 0xA4, 0xBF };
+static const symbol s_3_90[12] = { 0xE0, 0xA4, 0xAE, 0xE0, 0xA4, 0xBE, 0xE0, 0xA4, 0xA5, 0xE0, 0xA4, 0xBF };
+
+static const struct among a_3[91] =
+{
+{ 9, s_3_0, -1, 1, 0},
+{ 9, s_3_1, -1, 1, 0},
+{ 12, s_3_2, 1, 1, 0},
+{ 12, s_3_3, 1, 1, 0},
+{ 12, s_3_4, -1, 1, 0},
+{ 6, s_3_5, -1, 1, 0},
+{ 6, s_3_6, -1, 1, 0},
+{ 6, s_3_7, -1, 1, 0},
+{ 9, s_3_8, 7, 1, 0},
+{ 12, s_3_9, 8, 1, 0},
+{ 9, s_3_10, 7, 1, 0},
+{ 6, s_3_11, -1, 1, 0},
+{ 9, s_3_12, -1, 1, 0},
+{ 9, s_3_13, -1, 1, 0},
+{ 6, s_3_14, -1, 1, 0},
+{ 6, s_3_15, -1, 1, 0},
+{ 6, s_3_16, -1, 1, 0},
+{ 9, s_3_17, -1, 1, 0},
+{ 12, s_3_18, 17, 1, 0},
+{ 9, s_3_19, -1, 1, 0},
+{ 6, s_3_20, -1, 1, 0},
+{ 9, s_3_21, 20, 1, 0},
+{ 9, s_3_22, 20, 1, 0},
+{ 9, s_3_23, -1, 1, 0},
+{ 12, s_3_24, 23, 1, 0},
+{ 9, s_3_25, -1, 1, 0},
+{ 12, s_3_26, 25, 1, 0},
+{ 12, s_3_27, 25, 1, 0},
+{ 6, s_3_28, -1, 1, 0},
+{ 9, s_3_29, 28, 1, 0},
+{ 9, s_3_30, 28, 1, 0},
+{ 6, s_3_31, -1, 1, 0},
+{ 9, s_3_32, 31, 1, 0},
+{ 12, s_3_33, 31, 1, 0},
+{ 9, s_3_34, 31, 1, 0},
+{ 9, s_3_35, 31, 1, 0},
+{ 12, s_3_36, 35, 1, 0},
+{ 12, s_3_37, 35, 1, 0},
+{ 6, s_3_38, -1, 1, 0},
+{ 9, s_3_39, 38, 1, 0},
+{ 9, s_3_40, 38, 1, 0},
+{ 12, s_3_41, 40, 1, 0},
+{ 9, s_3_42, 38, 1, 0},
+{ 9, s_3_43, 38, 1, 0},
+{ 6, s_3_44, -1, 1, 0},
+{ 12, s_3_45, 44, 1, 0},
+{ 12, s_3_46, 44, 1, 0},
+{ 12, s_3_47, 44, 1, 0},
+{ 9, s_3_48, -1, 1, 0},
+{ 12, s_3_49, 48, 1, 0},
+{ 12, s_3_50, 48, 1, 0},
+{ 15, s_3_51, 50, 1, 0},
+{ 12, s_3_52, 48, 1, 0},
+{ 12, s_3_53, 48, 1, 0},
+{ 12, s_3_54, -1, 1, 0},
+{ 12, s_3_55, -1, 1, 0},
+{ 12, s_3_56, -1, 1, 0},
+{ 9, s_3_57, -1, 1, 0},
+{ 9, s_3_58, -1, 1, 0},
+{ 15, s_3_59, 58, 1, 0},
+{ 12, s_3_60, -1, 1, 0},
+{ 12, s_3_61, -1, 1, 0},
+{ 9, s_3_62, -1, 1, 0},
+{ 12, s_3_63, 62, 1, 0},
+{ 12, s_3_64, 62, 1, 0},
+{ 15, s_3_65, 64, 1, 0},
+{ 12, s_3_66, 62, 1, 0},
+{ 12, s_3_67, 62, 1, 0},
+{ 9, s_3_68, -1, 1, 0},
+{ 12, s_3_69, 68, 1, 0},
+{ 9, s_3_70, -1, 1, 0},
+{ 3, s_3_71, -1, 1, 0},
+{ 6, s_3_72, 71, 1, 0},
+{ 6, s_3_73, 71, 1, 0},
+{ 9, s_3_74, 73, 1, 0},
+{ 15, s_3_75, 74, 1, 0},
+{ 15, s_3_76, 71, 1, 0},
+{ 12, s_3_77, 71, 1, 0},
+{ 12, s_3_78, 71, 1, 0},
+{ 6, s_3_79, 71, 1, 0},
+{ 6, s_3_80, 71, 1, 0},
+{ 9, s_3_81, -1, 1, 0},
+{ 12, s_3_82, 81, 1, 0},
+{ 9, s_3_83, -1, 1, 0},
+{ 12, s_3_84, 83, 1, 0},
+{ 12, s_3_85, 83, 1, 0},
+{ 6, s_3_86, -1, 1, 0},
+{ 9, s_3_87, 86, 1, 0},
+{ 9, s_3_88, 86, 1, 0},
+{ 12, s_3_89, -1, 1, 0},
+{ 12, s_3_90, -1, 1, 0}
+};
+
+static const symbol s_0[] = { 0xE0, 0xA4, 0x8F };
+static const symbol s_1[] = { 0xE0, 0xA5, 0x87 };
+static const symbol s_2[] = { 0xE0, 0xA4, 0xAF, 0xE0, 0xA5, 0x8C };
+static const symbol s_3[] = { 0xE0, 0xA4, 0x9B, 0xE0, 0xA5, 0x8C };
+static const symbol s_4[] = { 0xE0, 0xA4, 0xA8, 0xE0, 0xA5, 0x8C };
+static const symbol s_5[] = { 0xE0, 0xA4, 0xA5, 0xE0, 0xA5, 0x87 };
+static const symbol s_6[] = { 0xE0, 0xA4, 0xA4, 0xE0, 0xA5, 0x8D, 0xE0, 0xA4, 0xB0 };
+
+static int r_remove_category_1(struct SN_env * z) {
+ int among_var;
+ z->ket = z->c;
+ among_var = find_among_b(z, a_0, 17);
+ if (!(among_var)) return 0;
+ z->bra = z->c;
+ switch (among_var) {
+ case 1:
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 2:
+ { int m1 = z->l - z->c; (void)m1;
+ { int m2 = z->l - z->c; (void)m2;
+ if (!(eq_s_b(z, 3, s_0))) goto lab3;
+ goto lab2;
+ lab3:
+ z->c = z->l - m2;
+ if (!(eq_s_b(z, 3, s_1))) goto lab1;
+ }
+ lab2:
+ goto lab0;
+ lab1:
+ z->c = z->l - m1;
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ }
+ lab0:
+ break;
+ }
+ return 1;
+}
+
+static int r_check_category_2(struct SN_env * z) {
+ z->ket = z->c;
+ if (z->c - 2 <= z->lb || z->p[z->c - 1] >> 5 != 4 || !((262 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
+ if (!(find_among_b(z, a_1, 3))) return 0;
+ z->bra = z->c;
+ return 1;
+}
+
+static int r_remove_category_2(struct SN_env * z) {
+ int among_var;
+ z->ket = z->c;
+ if (z->c - 2 <= z->lb || z->p[z->c - 1] >> 5 != 4 || !((262 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
+ among_var = find_among_b(z, a_2, 3);
+ if (!(among_var)) return 0;
+ z->bra = z->c;
+ switch (among_var) {
+ case 1:
+ { int m1 = z->l - z->c; (void)m1;
+ if (!(eq_s_b(z, 6, s_2))) goto lab1;
+ goto lab0;
+ lab1:
+ z->c = z->l - m1;
+ if (!(eq_s_b(z, 6, s_3))) goto lab2;
+ goto lab0;
+ lab2:
+ z->c = z->l - m1;
+ if (!(eq_s_b(z, 6, s_4))) goto lab3;
+ goto lab0;
+ lab3:
+ z->c = z->l - m1;
+ if (!(eq_s_b(z, 6, s_5))) return 0;
+ }
+ lab0:
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 2:
+ if (!(eq_s_b(z, 9, s_6))) return 0;
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ break;
+ }
+ return 1;
+}
+
+static int r_remove_category_3(struct SN_env * z) {
+ z->ket = z->c;
+ if (!(find_among_b(z, a_3, 91))) return 0;
+ z->bra = z->c;
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ return 1;
+}
+
+extern int nepali_UTF_8_stem(struct SN_env * z) {
+ z->lb = z->c; z->c = z->l;
+
+ { int m1 = z->l - z->c; (void)m1;
+ { int ret = r_remove_category_1(z);
+ if (ret < 0) return ret;
+ }
+ z->c = z->l - m1;
+ }
+ { int m2 = z->l - z->c; (void)m2;
+ while(1) {
+ int m3 = z->l - z->c; (void)m3;
+ { int m4 = z->l - z->c; (void)m4;
+ { int m5 = z->l - z->c; (void)m5;
+ { int ret = r_check_category_2(z);
+ if (ret == 0) goto lab2;
+ if (ret < 0) return ret;
+ }
+ z->c = z->l - m5;
+ { int ret = r_remove_category_2(z);
+ if (ret == 0) goto lab2;
+ if (ret < 0) return ret;
+ }
+ }
+ lab2:
+ z->c = z->l - m4;
+ }
+ { int ret = r_remove_category_3(z);
+ if (ret == 0) goto lab1;
+ if (ret < 0) return ret;
+ }
+ continue;
+ lab1:
+ z->c = z->l - m3;
+ break;
+ }
+ z->c = z->l - m2;
+ }
+ z->c = z->lb;
+ return 1;
+}
+
+extern struct SN_env * nepali_UTF_8_create_env(void) { return SN_create_env(0, 0); }
+
+extern void nepali_UTF_8_close_env(struct SN_env * z) { SN_close_env(z, 0); }
+
diff --git a/src/backend/snowball/libstemmer/stem_UTF_8_norwegian.c b/src/backend/snowball/libstemmer/stem_UTF_8_norwegian.c
new file mode 100644
index 0000000..41aa668
--- /dev/null
+++ b/src/backend/snowball/libstemmer/stem_UTF_8_norwegian.c
@@ -0,0 +1,276 @@
+/* Generated by Snowball 2.2.0 - https://snowballstem.org/ */
+
+#include "header.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+extern int norwegian_UTF_8_stem(struct SN_env * z);
+#ifdef __cplusplus
+}
+#endif
+static int r_other_suffix(struct SN_env * z);
+static int r_consonant_pair(struct SN_env * z);
+static int r_main_suffix(struct SN_env * z);
+static int r_mark_regions(struct SN_env * z);
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+extern struct SN_env * norwegian_UTF_8_create_env(void);
+extern void norwegian_UTF_8_close_env(struct SN_env * z);
+
+
+#ifdef __cplusplus
+}
+#endif
+static const symbol s_0_0[1] = { 'a' };
+static const symbol s_0_1[1] = { 'e' };
+static const symbol s_0_2[3] = { 'e', 'd', 'e' };
+static const symbol s_0_3[4] = { 'a', 'n', 'd', 'e' };
+static const symbol s_0_4[4] = { 'e', 'n', 'd', 'e' };
+static const symbol s_0_5[3] = { 'a', 'n', 'e' };
+static const symbol s_0_6[3] = { 'e', 'n', 'e' };
+static const symbol s_0_7[6] = { 'h', 'e', 't', 'e', 'n', 'e' };
+static const symbol s_0_8[4] = { 'e', 'r', 't', 'e' };
+static const symbol s_0_9[2] = { 'e', 'n' };
+static const symbol s_0_10[5] = { 'h', 'e', 't', 'e', 'n' };
+static const symbol s_0_11[2] = { 'a', 'r' };
+static const symbol s_0_12[2] = { 'e', 'r' };
+static const symbol s_0_13[5] = { 'h', 'e', 't', 'e', 'r' };
+static const symbol s_0_14[1] = { 's' };
+static const symbol s_0_15[2] = { 'a', 's' };
+static const symbol s_0_16[2] = { 'e', 's' };
+static const symbol s_0_17[4] = { 'e', 'd', 'e', 's' };
+static const symbol s_0_18[5] = { 'e', 'n', 'd', 'e', 's' };
+static const symbol s_0_19[4] = { 'e', 'n', 'e', 's' };
+static const symbol s_0_20[7] = { 'h', 'e', 't', 'e', 'n', 'e', 's' };
+static const symbol s_0_21[3] = { 'e', 'n', 's' };
+static const symbol s_0_22[6] = { 'h', 'e', 't', 'e', 'n', 's' };
+static const symbol s_0_23[3] = { 'e', 'r', 's' };
+static const symbol s_0_24[3] = { 'e', 't', 's' };
+static const symbol s_0_25[2] = { 'e', 't' };
+static const symbol s_0_26[3] = { 'h', 'e', 't' };
+static const symbol s_0_27[3] = { 'e', 'r', 't' };
+static const symbol s_0_28[3] = { 'a', 's', 't' };
+
+static const struct among a_0[29] =
+{
+{ 1, s_0_0, -1, 1, 0},
+{ 1, s_0_1, -1, 1, 0},
+{ 3, s_0_2, 1, 1, 0},
+{ 4, s_0_3, 1, 1, 0},
+{ 4, s_0_4, 1, 1, 0},
+{ 3, s_0_5, 1, 1, 0},
+{ 3, s_0_6, 1, 1, 0},
+{ 6, s_0_7, 6, 1, 0},
+{ 4, s_0_8, 1, 3, 0},
+{ 2, s_0_9, -1, 1, 0},
+{ 5, s_0_10, 9, 1, 0},
+{ 2, s_0_11, -1, 1, 0},
+{ 2, s_0_12, -1, 1, 0},
+{ 5, s_0_13, 12, 1, 0},
+{ 1, s_0_14, -1, 2, 0},
+{ 2, s_0_15, 14, 1, 0},
+{ 2, s_0_16, 14, 1, 0},
+{ 4, s_0_17, 16, 1, 0},
+{ 5, s_0_18, 16, 1, 0},
+{ 4, s_0_19, 16, 1, 0},
+{ 7, s_0_20, 19, 1, 0},
+{ 3, s_0_21, 14, 1, 0},
+{ 6, s_0_22, 21, 1, 0},
+{ 3, s_0_23, 14, 1, 0},
+{ 3, s_0_24, 14, 1, 0},
+{ 2, s_0_25, -1, 1, 0},
+{ 3, s_0_26, 25, 1, 0},
+{ 3, s_0_27, -1, 3, 0},
+{ 3, s_0_28, -1, 1, 0}
+};
+
+static const symbol s_1_0[2] = { 'd', 't' };
+static const symbol s_1_1[2] = { 'v', 't' };
+
+static const struct among a_1[2] =
+{
+{ 2, s_1_0, -1, -1, 0},
+{ 2, s_1_1, -1, -1, 0}
+};
+
+static const symbol s_2_0[3] = { 'l', 'e', 'g' };
+static const symbol s_2_1[4] = { 'e', 'l', 'e', 'g' };
+static const symbol s_2_2[2] = { 'i', 'g' };
+static const symbol s_2_3[3] = { 'e', 'i', 'g' };
+static const symbol s_2_4[3] = { 'l', 'i', 'g' };
+static const symbol s_2_5[4] = { 'e', 'l', 'i', 'g' };
+static const symbol s_2_6[3] = { 'e', 'l', 's' };
+static const symbol s_2_7[3] = { 'l', 'o', 'v' };
+static const symbol s_2_8[4] = { 'e', 'l', 'o', 'v' };
+static const symbol s_2_9[4] = { 's', 'l', 'o', 'v' };
+static const symbol s_2_10[7] = { 'h', 'e', 't', 's', 'l', 'o', 'v' };
+
+static const struct among a_2[11] =
+{
+{ 3, s_2_0, -1, 1, 0},
+{ 4, s_2_1, 0, 1, 0},
+{ 2, s_2_2, -1, 1, 0},
+{ 3, s_2_3, 2, 1, 0},
+{ 3, s_2_4, 2, 1, 0},
+{ 4, s_2_5, 4, 1, 0},
+{ 3, s_2_6, -1, 1, 0},
+{ 3, s_2_7, -1, 1, 0},
+{ 4, s_2_8, 7, 1, 0},
+{ 4, s_2_9, 7, 1, 0},
+{ 7, s_2_10, 9, 1, 0}
+};
+
+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[] = { 119, 125, 149, 1 };
+
+static const symbol s_0[] = { 'e', 'r' };
+
+static int r_mark_regions(struct SN_env * z) {
+ z->I[1] = z->l;
+ { int c_test1 = z->c;
+ { int ret = skip_utf8(z->p, z->c, z->l, 3);
+ if (ret < 0) return 0;
+ z->c = ret;
+ }
+ z->I[0] = z->c;
+ z->c = c_test1;
+ }
+ if (out_grouping_U(z, g_v, 97, 248, 1) < 0) return 0;
+ {
+ int ret = in_grouping_U(z, g_v, 97, 248, 1);
+ if (ret < 0) return 0;
+ z->c += ret;
+ }
+ z->I[1] = z->c;
+
+ if (!(z->I[1] < z->I[0])) goto lab0;
+ z->I[1] = z->I[0];
+lab0:
+ return 1;
+}
+
+static int r_main_suffix(struct SN_env * z) {
+ int among_var;
+
+ { int mlimit1;
+ if (z->c < z->I[1]) return 0;
+ mlimit1 = z->lb; z->lb = z->I[1];
+ z->ket = z->c;
+ if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1851426 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->lb = mlimit1; return 0; }
+ among_var = find_among_b(z, a_0, 29);
+ if (!(among_var)) { z->lb = mlimit1; return 0; }
+ z->bra = z->c;
+ z->lb = mlimit1;
+ }
+ switch (among_var) {
+ case 1:
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 2:
+ { int m2 = z->l - z->c; (void)m2;
+ if (in_grouping_b_U(z, g_s_ending, 98, 122, 0)) goto lab1;
+ goto lab0;
+ lab1:
+ z->c = z->l - m2;
+ if (z->c <= z->lb || z->p[z->c - 1] != 'k') return 0;
+ z->c--;
+ if (out_grouping_b_U(z, g_v, 97, 248, 0)) return 0;
+ }
+ lab0:
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 3:
+ { int ret = slice_from_s(z, 2, s_0);
+ if (ret < 0) return ret;
+ }
+ break;
+ }
+ return 1;
+}
+
+static int r_consonant_pair(struct SN_env * z) {
+ { int m_test1 = z->l - z->c;
+
+ { int mlimit2;
+ if (z->c < z->I[1]) return 0;
+ mlimit2 = z->lb; z->lb = z->I[1];
+ z->ket = z->c;
+ if (z->c - 1 <= z->lb || z->p[z->c - 1] != 116) { z->lb = mlimit2; return 0; }
+ if (!(find_among_b(z, a_1, 2))) { z->lb = mlimit2; return 0; }
+ z->bra = z->c;
+ z->lb = mlimit2;
+ }
+ z->c = z->l - m_test1;
+ }
+ { int ret = skip_b_utf8(z->p, z->c, z->lb, 1);
+ if (ret < 0) return 0;
+ z->c = ret;
+ }
+ z->bra = z->c;
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ return 1;
+}
+
+static int r_other_suffix(struct SN_env * z) {
+
+ { int mlimit1;
+ if (z->c < z->I[1]) return 0;
+ mlimit1 = z->lb; z->lb = z->I[1];
+ z->ket = z->c;
+ if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((4718720 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->lb = mlimit1; return 0; }
+ if (!(find_among_b(z, a_2, 11))) { z->lb = mlimit1; return 0; }
+ z->bra = z->c;
+ z->lb = mlimit1;
+ }
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ return 1;
+}
+
+extern int norwegian_UTF_8_stem(struct SN_env * z) {
+ { int c1 = z->c;
+ { int ret = r_mark_regions(z);
+ if (ret < 0) return ret;
+ }
+ z->c = c1;
+ }
+ z->lb = z->c; z->c = z->l;
+
+ { int m2 = z->l - z->c; (void)m2;
+ { int ret = r_main_suffix(z);
+ if (ret < 0) return ret;
+ }
+ z->c = z->l - m2;
+ }
+ { int m3 = z->l - z->c; (void)m3;
+ { int ret = r_consonant_pair(z);
+ if (ret < 0) return ret;
+ }
+ z->c = z->l - m3;
+ }
+ { int m4 = z->l - z->c; (void)m4;
+ { int ret = r_other_suffix(z);
+ if (ret < 0) return ret;
+ }
+ z->c = z->l - m4;
+ }
+ z->c = z->lb;
+ return 1;
+}
+
+extern struct SN_env * norwegian_UTF_8_create_env(void) { return SN_create_env(0, 2); }
+
+extern void norwegian_UTF_8_close_env(struct SN_env * z) { SN_close_env(z, 0); }
+
diff --git a/src/backend/snowball/libstemmer/stem_UTF_8_porter.c b/src/backend/snowball/libstemmer/stem_UTF_8_porter.c
new file mode 100644
index 0000000..fb44f56
--- /dev/null
+++ b/src/backend/snowball/libstemmer/stem_UTF_8_porter.c
@@ -0,0 +1,723 @@
+/* Generated by Snowball 2.2.0 - https://snowballstem.org/ */
+
+#include "header.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+extern int porter_UTF_8_stem(struct SN_env * z);
+#ifdef __cplusplus
+}
+#endif
+static int r_Step_5b(struct SN_env * z);
+static int r_Step_5a(struct SN_env * z);
+static int r_Step_4(struct SN_env * z);
+static int r_Step_3(struct SN_env * z);
+static int r_Step_2(struct SN_env * z);
+static int r_Step_1c(struct SN_env * z);
+static int r_Step_1b(struct SN_env * z);
+static int r_Step_1a(struct SN_env * z);
+static int r_R2(struct SN_env * z);
+static int r_R1(struct SN_env * z);
+static int r_shortv(struct SN_env * z);
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+extern struct SN_env * porter_UTF_8_create_env(void);
+extern void porter_UTF_8_close_env(struct SN_env * z);
+
+
+#ifdef __cplusplus
+}
+#endif
+static const symbol s_0_0[1] = { 's' };
+static const symbol s_0_1[3] = { 'i', 'e', 's' };
+static const symbol s_0_2[4] = { 's', 's', 'e', 's' };
+static const symbol s_0_3[2] = { 's', 's' };
+
+static const struct among a_0[4] =
+{
+{ 1, s_0_0, -1, 3, 0},
+{ 3, s_0_1, 0, 2, 0},
+{ 4, s_0_2, 0, 1, 0},
+{ 2, s_0_3, 0, -1, 0}
+};
+
+static const symbol s_1_1[2] = { 'b', 'b' };
+static const symbol s_1_2[2] = { 'd', 'd' };
+static const symbol s_1_3[2] = { 'f', 'f' };
+static const symbol s_1_4[2] = { 'g', 'g' };
+static const symbol s_1_5[2] = { 'b', 'l' };
+static const symbol s_1_6[2] = { 'm', 'm' };
+static const symbol s_1_7[2] = { 'n', 'n' };
+static const symbol s_1_8[2] = { 'p', 'p' };
+static const symbol s_1_9[2] = { 'r', 'r' };
+static const symbol s_1_10[2] = { 'a', 't' };
+static const symbol s_1_11[2] = { 't', 't' };
+static const symbol s_1_12[2] = { 'i', 'z' };
+
+static const struct among a_1[13] =
+{
+{ 0, 0, -1, 3, 0},
+{ 2, s_1_1, 0, 2, 0},
+{ 2, s_1_2, 0, 2, 0},
+{ 2, s_1_3, 0, 2, 0},
+{ 2, s_1_4, 0, 2, 0},
+{ 2, s_1_5, 0, 1, 0},
+{ 2, s_1_6, 0, 2, 0},
+{ 2, s_1_7, 0, 2, 0},
+{ 2, s_1_8, 0, 2, 0},
+{ 2, s_1_9, 0, 2, 0},
+{ 2, s_1_10, 0, 1, 0},
+{ 2, s_1_11, 0, 2, 0},
+{ 2, s_1_12, 0, 1, 0}
+};
+
+static const symbol s_2_0[2] = { 'e', 'd' };
+static const symbol s_2_1[3] = { 'e', 'e', 'd' };
+static const symbol s_2_2[3] = { 'i', 'n', 'g' };
+
+static const struct among a_2[3] =
+{
+{ 2, s_2_0, -1, 2, 0},
+{ 3, s_2_1, 0, 1, 0},
+{ 3, s_2_2, -1, 2, 0}
+};
+
+static const symbol s_3_0[4] = { 'a', 'n', 'c', 'i' };
+static const symbol s_3_1[4] = { 'e', 'n', 'c', 'i' };
+static const symbol s_3_2[4] = { 'a', 'b', 'l', 'i' };
+static const symbol s_3_3[3] = { 'e', 'l', 'i' };
+static const symbol s_3_4[4] = { 'a', 'l', 'l', 'i' };
+static const symbol s_3_5[5] = { 'o', 'u', 's', 'l', 'i' };
+static const symbol s_3_6[5] = { 'e', 'n', 't', 'l', 'i' };
+static const symbol s_3_7[5] = { 'a', 'l', 'i', 't', 'i' };
+static const symbol s_3_8[6] = { 'b', 'i', 'l', 'i', 't', 'i' };
+static const symbol s_3_9[5] = { 'i', 'v', 'i', 't', 'i' };
+static const symbol s_3_10[6] = { 't', 'i', 'o', 'n', 'a', 'l' };
+static const symbol s_3_11[7] = { 'a', 't', 'i', 'o', 'n', 'a', 'l' };
+static const symbol s_3_12[5] = { 'a', 'l', 'i', 's', 'm' };
+static const symbol s_3_13[5] = { 'a', 't', 'i', 'o', 'n' };
+static const symbol s_3_14[7] = { 'i', 'z', 'a', 't', 'i', 'o', 'n' };
+static const symbol s_3_15[4] = { 'i', 'z', 'e', 'r' };
+static const symbol s_3_16[4] = { 'a', 't', 'o', 'r' };
+static const symbol s_3_17[7] = { 'i', 'v', 'e', 'n', 'e', 's', 's' };
+static const symbol s_3_18[7] = { 'f', 'u', 'l', 'n', 'e', 's', 's' };
+static const symbol s_3_19[7] = { 'o', 'u', 's', 'n', 'e', 's', 's' };
+
+static const struct among a_3[20] =
+{
+{ 4, s_3_0, -1, 3, 0},
+{ 4, s_3_1, -1, 2, 0},
+{ 4, s_3_2, -1, 4, 0},
+{ 3, s_3_3, -1, 6, 0},
+{ 4, s_3_4, -1, 9, 0},
+{ 5, s_3_5, -1, 11, 0},
+{ 5, s_3_6, -1, 5, 0},
+{ 5, s_3_7, -1, 9, 0},
+{ 6, s_3_8, -1, 13, 0},
+{ 5, s_3_9, -1, 12, 0},
+{ 6, s_3_10, -1, 1, 0},
+{ 7, s_3_11, 10, 8, 0},
+{ 5, s_3_12, -1, 9, 0},
+{ 5, s_3_13, -1, 8, 0},
+{ 7, s_3_14, 13, 7, 0},
+{ 4, s_3_15, -1, 7, 0},
+{ 4, s_3_16, -1, 8, 0},
+{ 7, s_3_17, -1, 12, 0},
+{ 7, s_3_18, -1, 10, 0},
+{ 7, s_3_19, -1, 11, 0}
+};
+
+static const symbol s_4_0[5] = { 'i', 'c', 'a', 't', 'e' };
+static const symbol s_4_1[5] = { 'a', 't', 'i', 'v', 'e' };
+static const symbol s_4_2[5] = { 'a', 'l', 'i', 'z', 'e' };
+static const symbol s_4_3[5] = { 'i', 'c', 'i', 't', 'i' };
+static const symbol s_4_4[4] = { 'i', 'c', 'a', 'l' };
+static const symbol s_4_5[3] = { 'f', 'u', 'l' };
+static const symbol s_4_6[4] = { 'n', 'e', 's', 's' };
+
+static const struct among a_4[7] =
+{
+{ 5, s_4_0, -1, 2, 0},
+{ 5, s_4_1, -1, 3, 0},
+{ 5, s_4_2, -1, 1, 0},
+{ 5, s_4_3, -1, 2, 0},
+{ 4, s_4_4, -1, 2, 0},
+{ 3, s_4_5, -1, 3, 0},
+{ 4, s_4_6, -1, 3, 0}
+};
+
+static const symbol s_5_0[2] = { 'i', 'c' };
+static const symbol s_5_1[4] = { 'a', 'n', 'c', 'e' };
+static const symbol s_5_2[4] = { 'e', 'n', 'c', 'e' };
+static const symbol s_5_3[4] = { 'a', 'b', 'l', 'e' };
+static const symbol s_5_4[4] = { 'i', 'b', 'l', 'e' };
+static const symbol s_5_5[3] = { 'a', 't', 'e' };
+static const symbol s_5_6[3] = { 'i', 'v', 'e' };
+static const symbol s_5_7[3] = { 'i', 'z', 'e' };
+static const symbol s_5_8[3] = { 'i', 't', 'i' };
+static const symbol s_5_9[2] = { 'a', 'l' };
+static const symbol s_5_10[3] = { 'i', 's', 'm' };
+static const symbol s_5_11[3] = { 'i', 'o', 'n' };
+static const symbol s_5_12[2] = { 'e', 'r' };
+static const symbol s_5_13[3] = { 'o', 'u', 's' };
+static const symbol s_5_14[3] = { 'a', 'n', 't' };
+static const symbol s_5_15[3] = { 'e', 'n', 't' };
+static const symbol s_5_16[4] = { 'm', 'e', 'n', 't' };
+static const symbol s_5_17[5] = { 'e', 'm', 'e', 'n', 't' };
+static const symbol s_5_18[2] = { 'o', 'u' };
+
+static const struct among a_5[19] =
+{
+{ 2, s_5_0, -1, 1, 0},
+{ 4, s_5_1, -1, 1, 0},
+{ 4, s_5_2, -1, 1, 0},
+{ 4, s_5_3, -1, 1, 0},
+{ 4, s_5_4, -1, 1, 0},
+{ 3, s_5_5, -1, 1, 0},
+{ 3, s_5_6, -1, 1, 0},
+{ 3, s_5_7, -1, 1, 0},
+{ 3, s_5_8, -1, 1, 0},
+{ 2, s_5_9, -1, 1, 0},
+{ 3, s_5_10, -1, 1, 0},
+{ 3, s_5_11, -1, 2, 0},
+{ 2, s_5_12, -1, 1, 0},
+{ 3, s_5_13, -1, 1, 0},
+{ 3, s_5_14, -1, 1, 0},
+{ 3, s_5_15, -1, 1, 0},
+{ 4, s_5_16, 15, 1, 0},
+{ 5, s_5_17, 16, 1, 0},
+{ 2, s_5_18, -1, 1, 0}
+};
+
+static const unsigned char g_v[] = { 17, 65, 16, 1 };
+
+static const unsigned char g_v_WXY[] = { 1, 17, 65, 208, 1 };
+
+static const symbol s_0[] = { 's', 's' };
+static const symbol s_1[] = { 'i' };
+static const symbol s_2[] = { 'e', 'e' };
+static const symbol s_3[] = { 'e' };
+static const symbol s_4[] = { 'e' };
+static const symbol s_5[] = { 'i' };
+static const symbol s_6[] = { 't', 'i', 'o', 'n' };
+static const symbol s_7[] = { 'e', 'n', 'c', 'e' };
+static const symbol s_8[] = { 'a', 'n', 'c', 'e' };
+static const symbol s_9[] = { 'a', 'b', 'l', 'e' };
+static const symbol s_10[] = { 'e', 'n', 't' };
+static const symbol s_11[] = { 'e' };
+static const symbol s_12[] = { 'i', 'z', 'e' };
+static const symbol s_13[] = { 'a', 't', 'e' };
+static const symbol s_14[] = { 'a', 'l' };
+static const symbol s_15[] = { 'f', 'u', 'l' };
+static const symbol s_16[] = { 'o', 'u', 's' };
+static const symbol s_17[] = { 'i', 'v', 'e' };
+static const symbol s_18[] = { 'b', 'l', 'e' };
+static const symbol s_19[] = { 'a', 'l' };
+static const symbol s_20[] = { 'i', 'c' };
+static const symbol s_21[] = { 'Y' };
+static const symbol s_22[] = { 'Y' };
+static const symbol s_23[] = { 'y' };
+
+static int r_shortv(struct SN_env * z) {
+ if (out_grouping_b_U(z, g_v_WXY, 89, 121, 0)) return 0;
+ if (in_grouping_b_U(z, g_v, 97, 121, 0)) return 0;
+ if (out_grouping_b_U(z, g_v, 97, 121, 0)) return 0;
+ return 1;
+}
+
+static int r_R1(struct SN_env * z) {
+ if (!(z->I[1] <= z->c)) return 0;
+ return 1;
+}
+
+static int r_R2(struct SN_env * z) {
+ if (!(z->I[0] <= z->c)) return 0;
+ return 1;
+}
+
+static int r_Step_1a(struct SN_env * z) {
+ int among_var;
+ z->ket = z->c;
+ if (z->c <= z->lb || z->p[z->c - 1] != 115) return 0;
+ among_var = find_among_b(z, a_0, 4);
+ if (!(among_var)) return 0;
+ z->bra = z->c;
+ switch (among_var) {
+ case 1:
+ { int ret = slice_from_s(z, 2, s_0);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 2:
+ { int ret = slice_from_s(z, 1, s_1);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 3:
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ break;
+ }
+ return 1;
+}
+
+static int r_Step_1b(struct SN_env * z) {
+ int among_var;
+ z->ket = z->c;
+ if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 100 && z->p[z->c - 1] != 103)) return 0;
+ among_var = find_among_b(z, a_2, 3);
+ if (!(among_var)) return 0;
+ z->bra = z->c;
+ switch (among_var) {
+ case 1:
+ { int ret = r_R1(z);
+ if (ret <= 0) return ret;
+ }
+ { int ret = slice_from_s(z, 2, s_2);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 2:
+ { int m_test1 = z->l - z->c;
+ {
+ int ret = out_grouping_b_U(z, g_v, 97, 121, 1);
+ if (ret < 0) return 0;
+ z->c -= ret;
+ }
+ z->c = z->l - m_test1;
+ }
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ { int m_test2 = z->l - z->c;
+ if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((68514004 >> (z->p[z->c - 1] & 0x1f)) & 1)) among_var = 3; else
+ among_var = find_among_b(z, a_1, 13);
+ if (!(among_var)) return 0;
+ z->c = z->l - m_test2;
+ }
+ switch (among_var) {
+ case 1:
+ { int ret;
+ { int saved_c = z->c;
+ ret = insert_s(z, z->c, z->c, 1, s_3);
+ z->c = saved_c;
+ }
+ if (ret < 0) return ret;
+ }
+ break;
+ case 2:
+ z->ket = z->c;
+ { int ret = skip_b_utf8(z->p, z->c, z->lb, 1);
+ if (ret < 0) return 0;
+ z->c = ret;
+ }
+ z->bra = z->c;
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 3:
+ if (z->c != z->I[1]) return 0;
+ { int m_test3 = z->l - z->c;
+ { int ret = r_shortv(z);
+ if (ret <= 0) return ret;
+ }
+ z->c = z->l - m_test3;
+ }
+ { int ret;
+ { int saved_c = z->c;
+ ret = insert_s(z, z->c, z->c, 1, s_4);
+ z->c = saved_c;
+ }
+ if (ret < 0) return ret;
+ }
+ break;
+ }
+ break;
+ }
+ return 1;
+}
+
+static int r_Step_1c(struct SN_env * z) {
+ z->ket = z->c;
+ { int m1 = z->l - z->c; (void)m1;
+ if (z->c <= z->lb || z->p[z->c - 1] != 'y') goto lab1;
+ z->c--;
+ goto lab0;
+ lab1:
+ z->c = z->l - m1;
+ if (z->c <= z->lb || z->p[z->c - 1] != 'Y') return 0;
+ z->c--;
+ }
+lab0:
+ z->bra = z->c;
+ {
+ int ret = out_grouping_b_U(z, g_v, 97, 121, 1);
+ if (ret < 0) return 0;
+ z->c -= ret;
+ }
+ { int ret = slice_from_s(z, 1, s_5);
+ if (ret < 0) return ret;
+ }
+ return 1;
+}
+
+static int r_Step_2(struct SN_env * z) {
+ int among_var;
+ z->ket = z->c;
+ if (z->c - 2 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((815616 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
+ among_var = find_among_b(z, a_3, 20);
+ if (!(among_var)) return 0;
+ z->bra = z->c;
+ { int ret = r_R1(z);
+ if (ret <= 0) return ret;
+ }
+ switch (among_var) {
+ case 1:
+ { int ret = slice_from_s(z, 4, s_6);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 2:
+ { int ret = slice_from_s(z, 4, s_7);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 3:
+ { int ret = slice_from_s(z, 4, s_8);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 4:
+ { int ret = slice_from_s(z, 4, s_9);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 5:
+ { int ret = slice_from_s(z, 3, s_10);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 6:
+ { int ret = slice_from_s(z, 1, s_11);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 7:
+ { int ret = slice_from_s(z, 3, s_12);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 8:
+ { int ret = slice_from_s(z, 3, s_13);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 9:
+ { int ret = slice_from_s(z, 2, s_14);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 10:
+ { int ret = slice_from_s(z, 3, s_15);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 11:
+ { int ret = slice_from_s(z, 3, s_16);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 12:
+ { int ret = slice_from_s(z, 3, s_17);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 13:
+ { int ret = slice_from_s(z, 3, s_18);
+ if (ret < 0) return ret;
+ }
+ break;
+ }
+ return 1;
+}
+
+static int r_Step_3(struct SN_env * z) {
+ int among_var;
+ z->ket = z->c;
+ if (z->c - 2 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((528928 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
+ among_var = find_among_b(z, a_4, 7);
+ if (!(among_var)) return 0;
+ z->bra = z->c;
+ { int ret = r_R1(z);
+ if (ret <= 0) return ret;
+ }
+ switch (among_var) {
+ case 1:
+ { int ret = slice_from_s(z, 2, s_19);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 2:
+ { int ret = slice_from_s(z, 2, s_20);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 3:
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ break;
+ }
+ return 1;
+}
+
+static int r_Step_4(struct SN_env * z) {
+ int among_var;
+ z->ket = z->c;
+ if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((3961384 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
+ among_var = find_among_b(z, a_5, 19);
+ if (!(among_var)) return 0;
+ z->bra = z->c;
+ { int ret = r_R2(z);
+ if (ret <= 0) return ret;
+ }
+ switch (among_var) {
+ case 1:
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 2:
+ { int m1 = z->l - z->c; (void)m1;
+ if (z->c <= z->lb || z->p[z->c - 1] != 's') goto lab1;
+ z->c--;
+ goto lab0;
+ lab1:
+ z->c = z->l - m1;
+ if (z->c <= z->lb || z->p[z->c - 1] != 't') return 0;
+ z->c--;
+ }
+ lab0:
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ break;
+ }
+ return 1;
+}
+
+static int r_Step_5a(struct SN_env * z) {
+ z->ket = z->c;
+ if (z->c <= z->lb || z->p[z->c - 1] != 'e') return 0;
+ z->c--;
+ z->bra = z->c;
+ { int m1 = z->l - z->c; (void)m1;
+ { int ret = r_R2(z);
+ if (ret == 0) goto lab1;
+ if (ret < 0) return ret;
+ }
+ goto lab0;
+ lab1:
+ z->c = z->l - m1;
+ { int ret = r_R1(z);
+ if (ret <= 0) return ret;
+ }
+ { int m2 = z->l - z->c; (void)m2;
+ { int ret = r_shortv(z);
+ if (ret == 0) goto lab2;
+ if (ret < 0) return ret;
+ }
+ return 0;
+ lab2:
+ z->c = z->l - m2;
+ }
+ }
+lab0:
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ return 1;
+}
+
+static int r_Step_5b(struct SN_env * z) {
+ z->ket = z->c;
+ if (z->c <= z->lb || z->p[z->c - 1] != 'l') return 0;
+ z->c--;
+ z->bra = z->c;
+ { int ret = r_R2(z);
+ if (ret <= 0) return ret;
+ }
+ if (z->c <= z->lb || z->p[z->c - 1] != 'l') return 0;
+ z->c--;
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ return 1;
+}
+
+extern int porter_UTF_8_stem(struct SN_env * z) {
+ z->I[2] = 0;
+ { int c1 = z->c;
+ z->bra = z->c;
+ if (z->c == z->l || z->p[z->c] != 'y') goto lab0;
+ z->c++;
+ z->ket = z->c;
+ { int ret = slice_from_s(z, 1, s_21);
+ if (ret < 0) return ret;
+ }
+ z->I[2] = 1;
+ lab0:
+ z->c = c1;
+ }
+ { int c2 = z->c;
+ while(1) {
+ int c3 = z->c;
+ while(1) {
+ int c4 = z->c;
+ if (in_grouping_U(z, g_v, 97, 121, 0)) goto lab3;
+ z->bra = z->c;
+ if (z->c == z->l || z->p[z->c] != 'y') goto lab3;
+ z->c++;
+ z->ket = z->c;
+ z->c = c4;
+ break;
+ lab3:
+ z->c = c4;
+ { int ret = skip_utf8(z->p, z->c, z->l, 1);
+ if (ret < 0) goto lab2;
+ z->c = ret;
+ }
+ }
+ { int ret = slice_from_s(z, 1, s_22);
+ if (ret < 0) return ret;
+ }
+ z->I[2] = 1;
+ continue;
+ lab2:
+ z->c = c3;
+ break;
+ }
+ z->c = c2;
+ }
+ z->I[1] = z->l;
+ z->I[0] = z->l;
+ { int c5 = z->c;
+ {
+ int ret = out_grouping_U(z, g_v, 97, 121, 1);
+ if (ret < 0) goto lab4;
+ z->c += ret;
+ }
+ {
+ int ret = in_grouping_U(z, g_v, 97, 121, 1);
+ if (ret < 0) goto lab4;
+ z->c += ret;
+ }
+ z->I[1] = z->c;
+ {
+ int ret = out_grouping_U(z, g_v, 97, 121, 1);
+ if (ret < 0) goto lab4;
+ z->c += ret;
+ }
+ {
+ int ret = in_grouping_U(z, g_v, 97, 121, 1);
+ if (ret < 0) goto lab4;
+ z->c += ret;
+ }
+ z->I[0] = z->c;
+ lab4:
+ z->c = c5;
+ }
+ z->lb = z->c; z->c = z->l;
+
+ { int m6 = z->l - z->c; (void)m6;
+ { int ret = r_Step_1a(z);
+ if (ret < 0) return ret;
+ }
+ z->c = z->l - m6;
+ }
+ { int m7 = z->l - z->c; (void)m7;
+ { int ret = r_Step_1b(z);
+ if (ret < 0) return ret;
+ }
+ z->c = z->l - m7;
+ }
+ { int m8 = z->l - z->c; (void)m8;
+ { int ret = r_Step_1c(z);
+ if (ret < 0) return ret;
+ }
+ z->c = z->l - m8;
+ }
+ { int m9 = z->l - z->c; (void)m9;
+ { int ret = r_Step_2(z);
+ if (ret < 0) return ret;
+ }
+ z->c = z->l - m9;
+ }
+ { int m10 = z->l - z->c; (void)m10;
+ { int ret = r_Step_3(z);
+ if (ret < 0) return ret;
+ }
+ z->c = z->l - m10;
+ }
+ { int m11 = z->l - z->c; (void)m11;
+ { int ret = r_Step_4(z);
+ if (ret < 0) return ret;
+ }
+ z->c = z->l - m11;
+ }
+ { int m12 = z->l - z->c; (void)m12;
+ { int ret = r_Step_5a(z);
+ if (ret < 0) return ret;
+ }
+ z->c = z->l - m12;
+ }
+ { int m13 = z->l - z->c; (void)m13;
+ { int ret = r_Step_5b(z);
+ if (ret < 0) return ret;
+ }
+ z->c = z->l - m13;
+ }
+ z->c = z->lb;
+ { int c14 = z->c;
+ if (!(z->I[2])) goto lab5;
+ while(1) {
+ int c15 = z->c;
+ while(1) {
+ int c16 = z->c;
+ z->bra = z->c;
+ if (z->c == z->l || z->p[z->c] != 'Y') goto lab7;
+ z->c++;
+ z->ket = z->c;
+ z->c = c16;
+ break;
+ lab7:
+ z->c = c16;
+ { int ret = skip_utf8(z->p, z->c, z->l, 1);
+ if (ret < 0) goto lab6;
+ z->c = ret;
+ }
+ }
+ { int ret = slice_from_s(z, 1, s_23);
+ if (ret < 0) return ret;
+ }
+ continue;
+ lab6:
+ z->c = c15;
+ break;
+ }
+ lab5:
+ z->c = c14;
+ }
+ return 1;
+}
+
+extern struct SN_env * porter_UTF_8_create_env(void) { return SN_create_env(0, 3); }
+
+extern void porter_UTF_8_close_env(struct SN_env * z) { SN_close_env(z, 0); }
+
diff --git a/src/backend/snowball/libstemmer/stem_UTF_8_portuguese.c b/src/backend/snowball/libstemmer/stem_UTF_8_portuguese.c
new file mode 100644
index 0000000..af0a8e1
--- /dev/null
+++ b/src/backend/snowball/libstemmer/stem_UTF_8_portuguese.c
@@ -0,0 +1,967 @@
+/* Generated by Snowball 2.2.0 - https://snowballstem.org/ */
+
+#include "header.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+extern int portuguese_UTF_8_stem(struct SN_env * z);
+#ifdef __cplusplus
+}
+#endif
+static int r_residual_form(struct SN_env * z);
+static int r_residual_suffix(struct SN_env * z);
+static int r_verb_suffix(struct SN_env * z);
+static int r_standard_suffix(struct SN_env * z);
+static int r_R2(struct SN_env * z);
+static int r_R1(struct SN_env * z);
+static int r_RV(struct SN_env * z);
+static int r_mark_regions(struct SN_env * z);
+static int r_postlude(struct SN_env * z);
+static int r_prelude(struct SN_env * z);
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+extern struct SN_env * portuguese_UTF_8_create_env(void);
+extern void portuguese_UTF_8_close_env(struct SN_env * z);
+
+
+#ifdef __cplusplus
+}
+#endif
+static const symbol s_0_1[2] = { 0xC3, 0xA3 };
+static const symbol s_0_2[2] = { 0xC3, 0xB5 };
+
+static const struct among a_0[3] =
+{
+{ 0, 0, -1, 3, 0},
+{ 2, s_0_1, 0, 1, 0},
+{ 2, s_0_2, 0, 2, 0}
+};
+
+static const symbol s_1_1[2] = { 'a', '~' };
+static const symbol s_1_2[2] = { 'o', '~' };
+
+static const struct among a_1[3] =
+{
+{ 0, 0, -1, 3, 0},
+{ 2, s_1_1, 0, 1, 0},
+{ 2, s_1_2, 0, 2, 0}
+};
+
+static const symbol s_2_0[2] = { 'i', 'c' };
+static const symbol s_2_1[2] = { 'a', 'd' };
+static const symbol s_2_2[2] = { 'o', 's' };
+static const symbol s_2_3[2] = { 'i', 'v' };
+
+static const struct among a_2[4] =
+{
+{ 2, s_2_0, -1, -1, 0},
+{ 2, s_2_1, -1, -1, 0},
+{ 2, s_2_2, -1, -1, 0},
+{ 2, s_2_3, -1, 1, 0}
+};
+
+static const symbol s_3_0[4] = { 'a', 'n', 't', 'e' };
+static const symbol s_3_1[4] = { 'a', 'v', 'e', 'l' };
+static const symbol s_3_2[5] = { 0xC3, 0xAD, 'v', 'e', 'l' };
+
+static const struct among a_3[3] =
+{
+{ 4, s_3_0, -1, 1, 0},
+{ 4, s_3_1, -1, 1, 0},
+{ 5, s_3_2, -1, 1, 0}
+};
+
+static const symbol s_4_0[2] = { 'i', 'c' };
+static const symbol s_4_1[4] = { 'a', 'b', 'i', 'l' };
+static const symbol s_4_2[2] = { 'i', 'v' };
+
+static const struct among a_4[3] =
+{
+{ 2, s_4_0, -1, 1, 0},
+{ 4, s_4_1, -1, 1, 0},
+{ 2, s_4_2, -1, 1, 0}
+};
+
+static const symbol s_5_0[3] = { 'i', 'c', 'a' };
+static const symbol s_5_1[6] = { 0xC3, 0xA2, 'n', 'c', 'i', 'a' };
+static const symbol s_5_2[6] = { 0xC3, 0xAA, 'n', 'c', 'i', 'a' };
+static const symbol s_5_3[5] = { 'l', 'o', 'g', 'i', 'a' };
+static const symbol s_5_4[3] = { 'i', 'r', 'a' };
+static const symbol s_5_5[5] = { 'a', 'd', 'o', 'r', 'a' };
+static const symbol s_5_6[3] = { 'o', 's', 'a' };
+static const symbol s_5_7[4] = { 'i', 's', 't', 'a' };
+static const symbol s_5_8[3] = { 'i', 'v', 'a' };
+static const symbol s_5_9[3] = { 'e', 'z', 'a' };
+static const symbol s_5_10[5] = { 'i', 'd', 'a', 'd', 'e' };
+static const symbol s_5_11[4] = { 'a', 'n', 't', 'e' };
+static const symbol s_5_12[5] = { 'm', 'e', 'n', 't', 'e' };
+static const symbol s_5_13[6] = { 'a', 'm', 'e', 'n', 't', 'e' };
+static const symbol s_5_14[5] = { 0xC3, 0xA1, 'v', 'e', 'l' };
+static const symbol s_5_15[5] = { 0xC3, 0xAD, 'v', 'e', 'l' };
+static const symbol s_5_16[3] = { 'i', 'c', 'o' };
+static const symbol s_5_17[4] = { 'i', 's', 'm', 'o' };
+static const symbol s_5_18[3] = { 'o', 's', 'o' };
+static const symbol s_5_19[6] = { 'a', 'm', 'e', 'n', 't', 'o' };
+static const symbol s_5_20[6] = { 'i', 'm', 'e', 'n', 't', 'o' };
+static const symbol s_5_21[3] = { 'i', 'v', 'o' };
+static const symbol s_5_22[6] = { 'a', 0xC3, 0xA7, 'a', '~', 'o' };
+static const symbol s_5_23[6] = { 'u', 0xC3, 0xA7, 'a', '~', 'o' };
+static const symbol s_5_24[4] = { 'a', 'd', 'o', 'r' };
+static const symbol s_5_25[4] = { 'i', 'c', 'a', 's' };
+static const symbol s_5_26[7] = { 0xC3, 0xAA, 'n', 'c', 'i', 'a', 's' };
+static const symbol s_5_27[6] = { 'l', 'o', 'g', 'i', 'a', 's' };
+static const symbol s_5_28[4] = { 'i', 'r', 'a', 's' };
+static const symbol s_5_29[6] = { 'a', 'd', 'o', 'r', 'a', 's' };
+static const symbol s_5_30[4] = { 'o', 's', 'a', 's' };
+static const symbol s_5_31[5] = { 'i', 's', 't', 'a', 's' };
+static const symbol s_5_32[4] = { 'i', 'v', 'a', 's' };
+static const symbol s_5_33[4] = { 'e', 'z', 'a', 's' };
+static const symbol s_5_34[6] = { 'i', 'd', 'a', 'd', 'e', 's' };
+static const symbol s_5_35[6] = { 'a', 'd', 'o', 'r', 'e', 's' };
+static const symbol s_5_36[5] = { 'a', 'n', 't', 'e', 's' };
+static const symbol s_5_37[7] = { 'a', 0xC3, 0xA7, 'o', '~', 'e', 's' };
+static const symbol s_5_38[7] = { 'u', 0xC3, 0xA7, 'o', '~', 'e', 's' };
+static const symbol s_5_39[4] = { 'i', 'c', 'o', 's' };
+static const symbol s_5_40[5] = { 'i', 's', 'm', 'o', 's' };
+static const symbol s_5_41[4] = { 'o', 's', 'o', 's' };
+static const symbol s_5_42[7] = { 'a', 'm', 'e', 'n', 't', 'o', 's' };
+static const symbol s_5_43[7] = { 'i', 'm', 'e', 'n', 't', 'o', 's' };
+static const symbol s_5_44[4] = { 'i', 'v', 'o', 's' };
+
+static const struct among a_5[45] =
+{
+{ 3, s_5_0, -1, 1, 0},
+{ 6, s_5_1, -1, 1, 0},
+{ 6, s_5_2, -1, 4, 0},
+{ 5, s_5_3, -1, 2, 0},
+{ 3, s_5_4, -1, 9, 0},
+{ 5, s_5_5, -1, 1, 0},
+{ 3, s_5_6, -1, 1, 0},
+{ 4, s_5_7, -1, 1, 0},
+{ 3, s_5_8, -1, 8, 0},
+{ 3, s_5_9, -1, 1, 0},
+{ 5, s_5_10, -1, 7, 0},
+{ 4, s_5_11, -1, 1, 0},
+{ 5, s_5_12, -1, 6, 0},
+{ 6, s_5_13, 12, 5, 0},
+{ 5, s_5_14, -1, 1, 0},
+{ 5, s_5_15, -1, 1, 0},
+{ 3, s_5_16, -1, 1, 0},
+{ 4, s_5_17, -1, 1, 0},
+{ 3, s_5_18, -1, 1, 0},
+{ 6, s_5_19, -1, 1, 0},
+{ 6, s_5_20, -1, 1, 0},
+{ 3, s_5_21, -1, 8, 0},
+{ 6, s_5_22, -1, 1, 0},
+{ 6, s_5_23, -1, 3, 0},
+{ 4, s_5_24, -1, 1, 0},
+{ 4, s_5_25, -1, 1, 0},
+{ 7, s_5_26, -1, 4, 0},
+{ 6, s_5_27, -1, 2, 0},
+{ 4, s_5_28, -1, 9, 0},
+{ 6, s_5_29, -1, 1, 0},
+{ 4, s_5_30, -1, 1, 0},
+{ 5, s_5_31, -1, 1, 0},
+{ 4, s_5_32, -1, 8, 0},
+{ 4, s_5_33, -1, 1, 0},
+{ 6, s_5_34, -1, 7, 0},
+{ 6, s_5_35, -1, 1, 0},
+{ 5, s_5_36, -1, 1, 0},
+{ 7, s_5_37, -1, 1, 0},
+{ 7, s_5_38, -1, 3, 0},
+{ 4, s_5_39, -1, 1, 0},
+{ 5, s_5_40, -1, 1, 0},
+{ 4, s_5_41, -1, 1, 0},
+{ 7, s_5_42, -1, 1, 0},
+{ 7, s_5_43, -1, 1, 0},
+{ 4, s_5_44, -1, 8, 0}
+};
+
+static const symbol s_6_0[3] = { 'a', 'd', 'a' };
+static const symbol s_6_1[3] = { 'i', 'd', 'a' };
+static const symbol s_6_2[2] = { 'i', 'a' };
+static const symbol s_6_3[4] = { 'a', 'r', 'i', 'a' };
+static const symbol s_6_4[4] = { 'e', 'r', 'i', 'a' };
+static const symbol s_6_5[4] = { 'i', 'r', 'i', 'a' };
+static const symbol s_6_6[3] = { 'a', 'r', 'a' };
+static const symbol s_6_7[3] = { 'e', 'r', 'a' };
+static const symbol s_6_8[3] = { 'i', 'r', 'a' };
+static const symbol s_6_9[3] = { 'a', 'v', 'a' };
+static const symbol s_6_10[4] = { 'a', 's', 's', 'e' };
+static const symbol s_6_11[4] = { 'e', 's', 's', 'e' };
+static const symbol s_6_12[4] = { 'i', 's', 's', 'e' };
+static const symbol s_6_13[4] = { 'a', 's', 't', 'e' };
+static const symbol s_6_14[4] = { 'e', 's', 't', 'e' };
+static const symbol s_6_15[4] = { 'i', 's', 't', 'e' };
+static const symbol s_6_16[2] = { 'e', 'i' };
+static const symbol s_6_17[4] = { 'a', 'r', 'e', 'i' };
+static const symbol s_6_18[4] = { 'e', 'r', 'e', 'i' };
+static const symbol s_6_19[4] = { 'i', 'r', 'e', 'i' };
+static const symbol s_6_20[2] = { 'a', 'm' };
+static const symbol s_6_21[3] = { 'i', 'a', 'm' };
+static const symbol s_6_22[5] = { 'a', 'r', 'i', 'a', 'm' };
+static const symbol s_6_23[5] = { 'e', 'r', 'i', 'a', 'm' };
+static const symbol s_6_24[5] = { 'i', 'r', 'i', 'a', 'm' };
+static const symbol s_6_25[4] = { 'a', 'r', 'a', 'm' };
+static const symbol s_6_26[4] = { 'e', 'r', 'a', 'm' };
+static const symbol s_6_27[4] = { 'i', 'r', 'a', 'm' };
+static const symbol s_6_28[4] = { 'a', 'v', 'a', 'm' };
+static const symbol s_6_29[2] = { 'e', 'm' };
+static const symbol s_6_30[4] = { 'a', 'r', 'e', 'm' };
+static const symbol s_6_31[4] = { 'e', 'r', 'e', 'm' };
+static const symbol s_6_32[4] = { 'i', 'r', 'e', 'm' };
+static const symbol s_6_33[5] = { 'a', 's', 's', 'e', 'm' };
+static const symbol s_6_34[5] = { 'e', 's', 's', 'e', 'm' };
+static const symbol s_6_35[5] = { 'i', 's', 's', 'e', 'm' };
+static const symbol s_6_36[3] = { 'a', 'd', 'o' };
+static const symbol s_6_37[3] = { 'i', 'd', 'o' };
+static const symbol s_6_38[4] = { 'a', 'n', 'd', 'o' };
+static const symbol s_6_39[4] = { 'e', 'n', 'd', 'o' };
+static const symbol s_6_40[4] = { 'i', 'n', 'd', 'o' };
+static const symbol s_6_41[5] = { 'a', 'r', 'a', '~', 'o' };
+static const symbol s_6_42[5] = { 'e', 'r', 'a', '~', 'o' };
+static const symbol s_6_43[5] = { 'i', 'r', 'a', '~', 'o' };
+static const symbol s_6_44[2] = { 'a', 'r' };
+static const symbol s_6_45[2] = { 'e', 'r' };
+static const symbol s_6_46[2] = { 'i', 'r' };
+static const symbol s_6_47[2] = { 'a', 's' };
+static const symbol s_6_48[4] = { 'a', 'd', 'a', 's' };
+static const symbol s_6_49[4] = { 'i', 'd', 'a', 's' };
+static const symbol s_6_50[3] = { 'i', 'a', 's' };
+static const symbol s_6_51[5] = { 'a', 'r', 'i', 'a', 's' };
+static const symbol s_6_52[5] = { 'e', 'r', 'i', 'a', 's' };
+static const symbol s_6_53[5] = { 'i', 'r', 'i', 'a', 's' };
+static const symbol s_6_54[4] = { 'a', 'r', 'a', 's' };
+static const symbol s_6_55[4] = { 'e', 'r', 'a', 's' };
+static const symbol s_6_56[4] = { 'i', 'r', 'a', 's' };
+static const symbol s_6_57[4] = { 'a', 'v', 'a', 's' };
+static const symbol s_6_58[2] = { 'e', 's' };
+static const symbol s_6_59[5] = { 'a', 'r', 'd', 'e', 's' };
+static const symbol s_6_60[5] = { 'e', 'r', 'd', 'e', 's' };
+static const symbol s_6_61[5] = { 'i', 'r', 'd', 'e', 's' };
+static const symbol s_6_62[4] = { 'a', 'r', 'e', 's' };
+static const symbol s_6_63[4] = { 'e', 'r', 'e', 's' };
+static const symbol s_6_64[4] = { 'i', 'r', 'e', 's' };
+static const symbol s_6_65[5] = { 'a', 's', 's', 'e', 's' };
+static const symbol s_6_66[5] = { 'e', 's', 's', 'e', 's' };
+static const symbol s_6_67[5] = { 'i', 's', 's', 'e', 's' };
+static const symbol s_6_68[5] = { 'a', 's', 't', 'e', 's' };
+static const symbol s_6_69[5] = { 'e', 's', 't', 'e', 's' };
+static const symbol s_6_70[5] = { 'i', 's', 't', 'e', 's' };
+static const symbol s_6_71[2] = { 'i', 's' };
+static const symbol s_6_72[3] = { 'a', 'i', 's' };
+static const symbol s_6_73[3] = { 'e', 'i', 's' };
+static const symbol s_6_74[5] = { 'a', 'r', 'e', 'i', 's' };
+static const symbol s_6_75[5] = { 'e', 'r', 'e', 'i', 's' };
+static const symbol s_6_76[5] = { 'i', 'r', 'e', 'i', 's' };
+static const symbol s_6_77[6] = { 0xC3, 0xA1, 'r', 'e', 'i', 's' };
+static const symbol s_6_78[6] = { 0xC3, 0xA9, 'r', 'e', 'i', 's' };
+static const symbol s_6_79[6] = { 0xC3, 0xAD, 'r', 'e', 'i', 's' };
+static const symbol s_6_80[7] = { 0xC3, 0xA1, 's', 's', 'e', 'i', 's' };
+static const symbol s_6_81[7] = { 0xC3, 0xA9, 's', 's', 'e', 'i', 's' };
+static const symbol s_6_82[7] = { 0xC3, 0xAD, 's', 's', 'e', 'i', 's' };
+static const symbol s_6_83[6] = { 0xC3, 0xA1, 'v', 'e', 'i', 's' };
+static const symbol s_6_84[5] = { 0xC3, 0xAD, 'e', 'i', 's' };
+static const symbol s_6_85[7] = { 'a', 'r', 0xC3, 0xAD, 'e', 'i', 's' };
+static const symbol s_6_86[7] = { 'e', 'r', 0xC3, 0xAD, 'e', 'i', 's' };
+static const symbol s_6_87[7] = { 'i', 'r', 0xC3, 0xAD, 'e', 'i', 's' };
+static const symbol s_6_88[4] = { 'a', 'd', 'o', 's' };
+static const symbol s_6_89[4] = { 'i', 'd', 'o', 's' };
+static const symbol s_6_90[4] = { 'a', 'm', 'o', 's' };
+static const symbol s_6_91[7] = { 0xC3, 0xA1, 'r', 'a', 'm', 'o', 's' };
+static const symbol s_6_92[7] = { 0xC3, 0xA9, 'r', 'a', 'm', 'o', 's' };
+static const symbol s_6_93[7] = { 0xC3, 0xAD, 'r', 'a', 'm', 'o', 's' };
+static const symbol s_6_94[7] = { 0xC3, 0xA1, 'v', 'a', 'm', 'o', 's' };
+static const symbol s_6_95[6] = { 0xC3, 0xAD, 'a', 'm', 'o', 's' };
+static const symbol s_6_96[8] = { 'a', 'r', 0xC3, 0xAD, 'a', 'm', 'o', 's' };
+static const symbol s_6_97[8] = { 'e', 'r', 0xC3, 0xAD, 'a', 'm', 'o', 's' };
+static const symbol s_6_98[8] = { 'i', 'r', 0xC3, 0xAD, 'a', 'm', 'o', 's' };
+static const symbol s_6_99[4] = { 'e', 'm', 'o', 's' };
+static const symbol s_6_100[6] = { 'a', 'r', 'e', 'm', 'o', 's' };
+static const symbol s_6_101[6] = { 'e', 'r', 'e', 'm', 'o', 's' };
+static const symbol s_6_102[6] = { 'i', 'r', 'e', 'm', 'o', 's' };
+static const symbol s_6_103[8] = { 0xC3, 0xA1, 's', 's', 'e', 'm', 'o', 's' };
+static const symbol s_6_104[8] = { 0xC3, 0xAA, 's', 's', 'e', 'm', 'o', 's' };
+static const symbol s_6_105[8] = { 0xC3, 0xAD, 's', 's', 'e', 'm', 'o', 's' };
+static const symbol s_6_106[4] = { 'i', 'm', 'o', 's' };
+static const symbol s_6_107[5] = { 'a', 'r', 'm', 'o', 's' };
+static const symbol s_6_108[5] = { 'e', 'r', 'm', 'o', 's' };
+static const symbol s_6_109[5] = { 'i', 'r', 'm', 'o', 's' };
+static const symbol s_6_110[5] = { 0xC3, 0xA1, 'm', 'o', 's' };
+static const symbol s_6_111[5] = { 'a', 'r', 0xC3, 0xA1, 's' };
+static const symbol s_6_112[5] = { 'e', 'r', 0xC3, 0xA1, 's' };
+static const symbol s_6_113[5] = { 'i', 'r', 0xC3, 0xA1, 's' };
+static const symbol s_6_114[2] = { 'e', 'u' };
+static const symbol s_6_115[2] = { 'i', 'u' };
+static const symbol s_6_116[2] = { 'o', 'u' };
+static const symbol s_6_117[4] = { 'a', 'r', 0xC3, 0xA1 };
+static const symbol s_6_118[4] = { 'e', 'r', 0xC3, 0xA1 };
+static const symbol s_6_119[4] = { 'i', 'r', 0xC3, 0xA1 };
+
+static const struct among a_6[120] =
+{
+{ 3, s_6_0, -1, 1, 0},
+{ 3, s_6_1, -1, 1, 0},
+{ 2, s_6_2, -1, 1, 0},
+{ 4, s_6_3, 2, 1, 0},
+{ 4, s_6_4, 2, 1, 0},
+{ 4, s_6_5, 2, 1, 0},
+{ 3, s_6_6, -1, 1, 0},
+{ 3, s_6_7, -1, 1, 0},
+{ 3, s_6_8, -1, 1, 0},
+{ 3, s_6_9, -1, 1, 0},
+{ 4, s_6_10, -1, 1, 0},
+{ 4, s_6_11, -1, 1, 0},
+{ 4, s_6_12, -1, 1, 0},
+{ 4, s_6_13, -1, 1, 0},
+{ 4, s_6_14, -1, 1, 0},
+{ 4, s_6_15, -1, 1, 0},
+{ 2, s_6_16, -1, 1, 0},
+{ 4, s_6_17, 16, 1, 0},
+{ 4, s_6_18, 16, 1, 0},
+{ 4, s_6_19, 16, 1, 0},
+{ 2, s_6_20, -1, 1, 0},
+{ 3, s_6_21, 20, 1, 0},
+{ 5, s_6_22, 21, 1, 0},
+{ 5, s_6_23, 21, 1, 0},
+{ 5, s_6_24, 21, 1, 0},
+{ 4, s_6_25, 20, 1, 0},
+{ 4, s_6_26, 20, 1, 0},
+{ 4, s_6_27, 20, 1, 0},
+{ 4, s_6_28, 20, 1, 0},
+{ 2, s_6_29, -1, 1, 0},
+{ 4, s_6_30, 29, 1, 0},
+{ 4, s_6_31, 29, 1, 0},
+{ 4, s_6_32, 29, 1, 0},
+{ 5, s_6_33, 29, 1, 0},
+{ 5, s_6_34, 29, 1, 0},
+{ 5, s_6_35, 29, 1, 0},
+{ 3, s_6_36, -1, 1, 0},
+{ 3, s_6_37, -1, 1, 0},
+{ 4, s_6_38, -1, 1, 0},
+{ 4, s_6_39, -1, 1, 0},
+{ 4, s_6_40, -1, 1, 0},
+{ 5, s_6_41, -1, 1, 0},
+{ 5, s_6_42, -1, 1, 0},
+{ 5, s_6_43, -1, 1, 0},
+{ 2, s_6_44, -1, 1, 0},
+{ 2, s_6_45, -1, 1, 0},
+{ 2, s_6_46, -1, 1, 0},
+{ 2, s_6_47, -1, 1, 0},
+{ 4, s_6_48, 47, 1, 0},
+{ 4, s_6_49, 47, 1, 0},
+{ 3, s_6_50, 47, 1, 0},
+{ 5, s_6_51, 50, 1, 0},
+{ 5, s_6_52, 50, 1, 0},
+{ 5, s_6_53, 50, 1, 0},
+{ 4, s_6_54, 47, 1, 0},
+{ 4, s_6_55, 47, 1, 0},
+{ 4, s_6_56, 47, 1, 0},
+{ 4, s_6_57, 47, 1, 0},
+{ 2, s_6_58, -1, 1, 0},
+{ 5, s_6_59, 58, 1, 0},
+{ 5, s_6_60, 58, 1, 0},
+{ 5, s_6_61, 58, 1, 0},
+{ 4, s_6_62, 58, 1, 0},
+{ 4, s_6_63, 58, 1, 0},
+{ 4, s_6_64, 58, 1, 0},
+{ 5, s_6_65, 58, 1, 0},
+{ 5, s_6_66, 58, 1, 0},
+{ 5, s_6_67, 58, 1, 0},
+{ 5, s_6_68, 58, 1, 0},
+{ 5, s_6_69, 58, 1, 0},
+{ 5, s_6_70, 58, 1, 0},
+{ 2, s_6_71, -1, 1, 0},
+{ 3, s_6_72, 71, 1, 0},
+{ 3, s_6_73, 71, 1, 0},
+{ 5, s_6_74, 73, 1, 0},
+{ 5, s_6_75, 73, 1, 0},
+{ 5, s_6_76, 73, 1, 0},
+{ 6, s_6_77, 73, 1, 0},
+{ 6, s_6_78, 73, 1, 0},
+{ 6, s_6_79, 73, 1, 0},
+{ 7, s_6_80, 73, 1, 0},
+{ 7, s_6_81, 73, 1, 0},
+{ 7, s_6_82, 73, 1, 0},
+{ 6, s_6_83, 73, 1, 0},
+{ 5, s_6_84, 73, 1, 0},
+{ 7, s_6_85, 84, 1, 0},
+{ 7, s_6_86, 84, 1, 0},
+{ 7, s_6_87, 84, 1, 0},
+{ 4, s_6_88, -1, 1, 0},
+{ 4, s_6_89, -1, 1, 0},
+{ 4, s_6_90, -1, 1, 0},
+{ 7, s_6_91, 90, 1, 0},
+{ 7, s_6_92, 90, 1, 0},
+{ 7, s_6_93, 90, 1, 0},
+{ 7, s_6_94, 90, 1, 0},
+{ 6, s_6_95, 90, 1, 0},
+{ 8, s_6_96, 95, 1, 0},
+{ 8, s_6_97, 95, 1, 0},
+{ 8, s_6_98, 95, 1, 0},
+{ 4, s_6_99, -1, 1, 0},
+{ 6, s_6_100, 99, 1, 0},
+{ 6, s_6_101, 99, 1, 0},
+{ 6, s_6_102, 99, 1, 0},
+{ 8, s_6_103, 99, 1, 0},
+{ 8, s_6_104, 99, 1, 0},
+{ 8, s_6_105, 99, 1, 0},
+{ 4, s_6_106, -1, 1, 0},
+{ 5, s_6_107, -1, 1, 0},
+{ 5, s_6_108, -1, 1, 0},
+{ 5, s_6_109, -1, 1, 0},
+{ 5, s_6_110, -1, 1, 0},
+{ 5, s_6_111, -1, 1, 0},
+{ 5, s_6_112, -1, 1, 0},
+{ 5, s_6_113, -1, 1, 0},
+{ 2, s_6_114, -1, 1, 0},
+{ 2, s_6_115, -1, 1, 0},
+{ 2, s_6_116, -1, 1, 0},
+{ 4, s_6_117, -1, 1, 0},
+{ 4, s_6_118, -1, 1, 0},
+{ 4, s_6_119, -1, 1, 0}
+};
+
+static const symbol s_7_0[1] = { 'a' };
+static const symbol s_7_1[1] = { 'i' };
+static const symbol s_7_2[1] = { 'o' };
+static const symbol s_7_3[2] = { 'o', 's' };
+static const symbol s_7_4[2] = { 0xC3, 0xA1 };
+static const symbol s_7_5[2] = { 0xC3, 0xAD };
+static const symbol s_7_6[2] = { 0xC3, 0xB3 };
+
+static const struct among a_7[7] =
+{
+{ 1, s_7_0, -1, 1, 0},
+{ 1, s_7_1, -1, 1, 0},
+{ 1, s_7_2, -1, 1, 0},
+{ 2, s_7_3, -1, 1, 0},
+{ 2, s_7_4, -1, 1, 0},
+{ 2, s_7_5, -1, 1, 0},
+{ 2, s_7_6, -1, 1, 0}
+};
+
+static const symbol s_8_0[1] = { 'e' };
+static const symbol s_8_1[2] = { 0xC3, 0xA7 };
+static const symbol s_8_2[2] = { 0xC3, 0xA9 };
+static const symbol s_8_3[2] = { 0xC3, 0xAA };
+
+static const struct among a_8[4] =
+{
+{ 1, s_8_0, -1, 1, 0},
+{ 2, s_8_1, -1, 2, 0},
+{ 2, s_8_2, -1, 1, 0},
+{ 2, s_8_3, -1, 1, 0}
+};
+
+static const unsigned char g_v[] = { 17, 65, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 19, 12, 2 };
+
+static const symbol s_0[] = { 'a', '~' };
+static const symbol s_1[] = { 'o', '~' };
+static const symbol s_2[] = { 0xC3, 0xA3 };
+static const symbol s_3[] = { 0xC3, 0xB5 };
+static const symbol s_4[] = { 'l', 'o', 'g' };
+static const symbol s_5[] = { 'u' };
+static const symbol s_6[] = { 'e', 'n', 't', 'e' };
+static const symbol s_7[] = { 'a', 't' };
+static const symbol s_8[] = { 'a', 't' };
+static const symbol s_9[] = { 'i', 'r' };
+static const symbol s_10[] = { 'c' };
+
+static int r_prelude(struct SN_env * z) {
+ int among_var;
+ while(1) {
+ int c1 = z->c;
+ z->bra = z->c;
+ if (z->c + 1 >= z->l || (z->p[z->c + 1] != 163 && z->p[z->c + 1] != 181)) among_var = 3; else
+ among_var = find_among(z, a_0, 3);
+ if (!(among_var)) goto lab0;
+ z->ket = z->c;
+ switch (among_var) {
+ case 1:
+ { int ret = slice_from_s(z, 2, s_0);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 2:
+ { int ret = slice_from_s(z, 2, s_1);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 3:
+ { int ret = skip_utf8(z->p, z->c, z->l, 1);
+ if (ret < 0) goto lab0;
+ z->c = ret;
+ }
+ break;
+ }
+ continue;
+ lab0:
+ z->c = c1;
+ break;
+ }
+ return 1;
+}
+
+static int r_mark_regions(struct SN_env * z) {
+ z->I[2] = z->l;
+ z->I[1] = z->l;
+ z->I[0] = z->l;
+ { int c1 = z->c;
+ { int c2 = z->c;
+ if (in_grouping_U(z, g_v, 97, 250, 0)) goto lab2;
+ { int c3 = z->c;
+ if (out_grouping_U(z, g_v, 97, 250, 0)) goto lab4;
+ {
+ int ret = out_grouping_U(z, g_v, 97, 250, 1);
+ if (ret < 0) goto lab4;
+ z->c += ret;
+ }
+ goto lab3;
+ lab4:
+ z->c = c3;
+ if (in_grouping_U(z, g_v, 97, 250, 0)) goto lab2;
+ {
+ int ret = in_grouping_U(z, g_v, 97, 250, 1);
+ if (ret < 0) goto lab2;
+ z->c += ret;
+ }
+ }
+ lab3:
+ goto lab1;
+ lab2:
+ z->c = c2;
+ if (out_grouping_U(z, g_v, 97, 250, 0)) goto lab0;
+ { int c4 = z->c;
+ if (out_grouping_U(z, g_v, 97, 250, 0)) goto lab6;
+ {
+ int ret = out_grouping_U(z, g_v, 97, 250, 1);
+ if (ret < 0) goto lab6;
+ z->c += ret;
+ }
+ goto lab5;
+ lab6:
+ z->c = c4;
+ if (in_grouping_U(z, g_v, 97, 250, 0)) goto lab0;
+ { int ret = skip_utf8(z->p, z->c, z->l, 1);
+ if (ret < 0) goto lab0;
+ z->c = ret;
+ }
+ }
+ lab5:
+ ;
+ }
+ lab1:
+ z->I[2] = z->c;
+ lab0:
+ z->c = c1;
+ }
+ { int c5 = z->c;
+ {
+ int ret = out_grouping_U(z, g_v, 97, 250, 1);
+ if (ret < 0) goto lab7;
+ z->c += ret;
+ }
+ {
+ int ret = in_grouping_U(z, g_v, 97, 250, 1);
+ if (ret < 0) goto lab7;
+ z->c += ret;
+ }
+ z->I[1] = z->c;
+ {
+ int ret = out_grouping_U(z, g_v, 97, 250, 1);
+ if (ret < 0) goto lab7;
+ z->c += ret;
+ }
+ {
+ int ret = in_grouping_U(z, g_v, 97, 250, 1);
+ if (ret < 0) goto lab7;
+ z->c += ret;
+ }
+ z->I[0] = z->c;
+ lab7:
+ z->c = c5;
+ }
+ return 1;
+}
+
+static int r_postlude(struct SN_env * z) {
+ int among_var;
+ while(1) {
+ int c1 = z->c;
+ z->bra = z->c;
+ if (z->c + 1 >= z->l || z->p[z->c + 1] != 126) among_var = 3; else
+ among_var = find_among(z, a_1, 3);
+ if (!(among_var)) goto lab0;
+ z->ket = z->c;
+ switch (among_var) {
+ case 1:
+ { int ret = slice_from_s(z, 2, s_2);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 2:
+ { int ret = slice_from_s(z, 2, s_3);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 3:
+ { int ret = skip_utf8(z->p, z->c, z->l, 1);
+ if (ret < 0) goto lab0;
+ z->c = ret;
+ }
+ break;
+ }
+ continue;
+ lab0:
+ z->c = c1;
+ break;
+ }
+ return 1;
+}
+
+static int r_RV(struct SN_env * z) {
+ if (!(z->I[2] <= z->c)) return 0;
+ return 1;
+}
+
+static int r_R1(struct SN_env * z) {
+ if (!(z->I[1] <= z->c)) return 0;
+ return 1;
+}
+
+static int r_R2(struct SN_env * z) {
+ if (!(z->I[0] <= z->c)) return 0;
+ return 1;
+}
+
+static int r_standard_suffix(struct SN_env * z) {
+ int among_var;
+ z->ket = z->c;
+ if (z->c - 2 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((823330 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
+ among_var = find_among_b(z, a_5, 45);
+ if (!(among_var)) return 0;
+ z->bra = z->c;
+ switch (among_var) {
+ case 1:
+ { int ret = r_R2(z);
+ if (ret <= 0) return ret;
+ }
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 2:
+ { int ret = r_R2(z);
+ if (ret <= 0) return ret;
+ }
+ { int ret = slice_from_s(z, 3, s_4);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 3:
+ { int ret = r_R2(z);
+ if (ret <= 0) return ret;
+ }
+ { int ret = slice_from_s(z, 1, s_5);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 4:
+ { int ret = r_R2(z);
+ if (ret <= 0) return ret;
+ }
+ { int ret = slice_from_s(z, 4, s_6);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 5:
+ { int ret = r_R1(z);
+ if (ret <= 0) return ret;
+ }
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ { int m1 = z->l - z->c; (void)m1;
+ z->ket = z->c;
+ if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((4718616 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->c = z->l - m1; goto lab0; }
+ among_var = find_among_b(z, a_2, 4);
+ if (!(among_var)) { z->c = z->l - m1; goto lab0; }
+ z->bra = z->c;
+ { int ret = r_R2(z);
+ if (ret == 0) { z->c = z->l - m1; goto lab0; }
+ if (ret < 0) return ret;
+ }
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ switch (among_var) {
+ case 1:
+ z->ket = z->c;
+ if (!(eq_s_b(z, 2, s_7))) { z->c = z->l - m1; goto lab0; }
+ z->bra = z->c;
+ { int ret = r_R2(z);
+ if (ret == 0) { z->c = z->l - m1; goto lab0; }
+ if (ret < 0) return ret;
+ }
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ break;
+ }
+ lab0:
+ ;
+ }
+ break;
+ case 6:
+ { int ret = r_R2(z);
+ if (ret <= 0) return ret;
+ }
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ { int m2 = z->l - z->c; (void)m2;
+ z->ket = z->c;
+ if (z->c - 3 <= z->lb || (z->p[z->c - 1] != 101 && z->p[z->c - 1] != 108)) { z->c = z->l - m2; goto lab1; }
+ if (!(find_among_b(z, a_3, 3))) { z->c = z->l - m2; goto lab1; }
+ z->bra = z->c;
+ { int ret = r_R2(z);
+ if (ret == 0) { z->c = z->l - m2; goto lab1; }
+ if (ret < 0) return ret;
+ }
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ lab1:
+ ;
+ }
+ break;
+ case 7:
+ { int ret = r_R2(z);
+ if (ret <= 0) return ret;
+ }
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ { int m3 = z->l - z->c; (void)m3;
+ z->ket = z->c;
+ 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 - m3; goto lab2; }
+ if (!(find_among_b(z, a_4, 3))) { z->c = z->l - m3; goto lab2; }
+ z->bra = z->c;
+ { int ret = r_R2(z);
+ if (ret == 0) { z->c = z->l - m3; goto lab2; }
+ if (ret < 0) return ret;
+ }
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ lab2:
+ ;
+ }
+ break;
+ case 8:
+ { int ret = r_R2(z);
+ if (ret <= 0) return ret;
+ }
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ { int m4 = z->l - z->c; (void)m4;
+ z->ket = z->c;
+ if (!(eq_s_b(z, 2, s_8))) { z->c = z->l - m4; goto lab3; }
+ z->bra = z->c;
+ { int ret = r_R2(z);
+ if (ret == 0) { z->c = z->l - m4; goto lab3; }
+ if (ret < 0) return ret;
+ }
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ lab3:
+ ;
+ }
+ break;
+ case 9:
+ { int ret = r_RV(z);
+ if (ret <= 0) return ret;
+ }
+ if (z->c <= z->lb || z->p[z->c - 1] != 'e') return 0;
+ z->c--;
+ { int ret = slice_from_s(z, 2, s_9);
+ if (ret < 0) return ret;
+ }
+ break;
+ }
+ return 1;
+}
+
+static int r_verb_suffix(struct SN_env * z) {
+
+ { int mlimit1;
+ if (z->c < z->I[2]) return 0;
+ mlimit1 = z->lb; z->lb = z->I[2];
+ z->ket = z->c;
+ if (!(find_among_b(z, a_6, 120))) { z->lb = mlimit1; return 0; }
+ z->bra = z->c;
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ z->lb = mlimit1;
+ }
+ return 1;
+}
+
+static int r_residual_suffix(struct SN_env * z) {
+ z->ket = z->c;
+ if (!(find_among_b(z, a_7, 7))) return 0;
+ z->bra = z->c;
+ { int ret = r_RV(z);
+ if (ret <= 0) return ret;
+ }
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ return 1;
+}
+
+static int r_residual_form(struct SN_env * z) {
+ int among_var;
+ z->ket = z->c;
+ among_var = find_among_b(z, a_8, 4);
+ if (!(among_var)) return 0;
+ z->bra = z->c;
+ switch (among_var) {
+ case 1:
+ { int ret = r_RV(z);
+ if (ret <= 0) return ret;
+ }
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ z->ket = z->c;
+ { int m1 = z->l - z->c; (void)m1;
+ if (z->c <= z->lb || z->p[z->c - 1] != 'u') goto lab1;
+ z->c--;
+ z->bra = z->c;
+ { int m_test2 = z->l - z->c;
+ if (z->c <= z->lb || z->p[z->c - 1] != 'g') goto lab1;
+ z->c--;
+ z->c = z->l - m_test2;
+ }
+ goto lab0;
+ lab1:
+ z->c = z->l - m1;
+ if (z->c <= z->lb || z->p[z->c - 1] != 'i') return 0;
+ z->c--;
+ z->bra = z->c;
+ { int m_test3 = z->l - z->c;
+ if (z->c <= z->lb || z->p[z->c - 1] != 'c') return 0;
+ z->c--;
+ z->c = z->l - m_test3;
+ }
+ }
+ lab0:
+ { int ret = r_RV(z);
+ if (ret <= 0) return ret;
+ }
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 2:
+ { int ret = slice_from_s(z, 1, s_10);
+ if (ret < 0) return ret;
+ }
+ break;
+ }
+ return 1;
+}
+
+extern int portuguese_UTF_8_stem(struct SN_env * z) {
+ { int c1 = z->c;
+ { int ret = r_prelude(z);
+ if (ret < 0) return ret;
+ }
+ z->c = c1;
+ }
+
+ { int ret = r_mark_regions(z);
+ if (ret < 0) return ret;
+ }
+ z->lb = z->c; z->c = z->l;
+
+ { int m2 = z->l - z->c; (void)m2;
+ { int m3 = z->l - z->c; (void)m3;
+ { int m4 = z->l - z->c; (void)m4;
+ { int m5 = z->l - z->c; (void)m5;
+ { int ret = r_standard_suffix(z);
+ if (ret == 0) goto lab4;
+ if (ret < 0) return ret;
+ }
+ goto lab3;
+ lab4:
+ z->c = z->l - m5;
+ { int ret = r_verb_suffix(z);
+ if (ret == 0) goto lab2;
+ if (ret < 0) return ret;
+ }
+ }
+ lab3:
+ z->c = z->l - m4;
+ { int m6 = z->l - z->c; (void)m6;
+ z->ket = z->c;
+ if (z->c <= z->lb || z->p[z->c - 1] != 'i') goto lab5;
+ z->c--;
+ z->bra = z->c;
+ { int m_test7 = z->l - z->c;
+ if (z->c <= z->lb || z->p[z->c - 1] != 'c') goto lab5;
+ z->c--;
+ z->c = z->l - m_test7;
+ }
+ { int ret = r_RV(z);
+ if (ret == 0) goto lab5;
+ if (ret < 0) return ret;
+ }
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ lab5:
+ z->c = z->l - m6;
+ }
+ }
+ goto lab1;
+ lab2:
+ z->c = z->l - m3;
+ { int ret = r_residual_suffix(z);
+ if (ret == 0) goto lab0;
+ if (ret < 0) return ret;
+ }
+ }
+ lab1:
+ lab0:
+ z->c = z->l - m2;
+ }
+ { int m8 = z->l - z->c; (void)m8;
+ { int ret = r_residual_form(z);
+ if (ret < 0) return ret;
+ }
+ z->c = z->l - m8;
+ }
+ z->c = z->lb;
+ { int c9 = z->c;
+ { int ret = r_postlude(z);
+ if (ret < 0) return ret;
+ }
+ z->c = c9;
+ }
+ return 1;
+}
+
+extern struct SN_env * portuguese_UTF_8_create_env(void) { return SN_create_env(0, 3); }
+
+extern void portuguese_UTF_8_close_env(struct SN_env * z) { SN_close_env(z, 0); }
+
diff --git a/src/backend/snowball/libstemmer/stem_UTF_8_romanian.c b/src/backend/snowball/libstemmer/stem_UTF_8_romanian.c
new file mode 100644
index 0000000..d4bbbf5
--- /dev/null
+++ b/src/backend/snowball/libstemmer/stem_UTF_8_romanian.c
@@ -0,0 +1,971 @@
+/* Generated by Snowball 2.2.0 - https://snowballstem.org/ */
+
+#include "header.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+extern int romanian_UTF_8_stem(struct SN_env * z);
+#ifdef __cplusplus
+}
+#endif
+static int r_vowel_suffix(struct SN_env * z);
+static int r_verb_suffix(struct SN_env * z);
+static int r_combo_suffix(struct SN_env * z);
+static int r_standard_suffix(struct SN_env * z);
+static int r_step_0(struct SN_env * z);
+static int r_R2(struct SN_env * z);
+static int r_R1(struct SN_env * z);
+static int r_RV(struct SN_env * z);
+static int r_mark_regions(struct SN_env * z);
+static int r_postlude(struct SN_env * z);
+static int r_prelude(struct SN_env * z);
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+extern struct SN_env * romanian_UTF_8_create_env(void);
+extern void romanian_UTF_8_close_env(struct SN_env * z);
+
+
+#ifdef __cplusplus
+}
+#endif
+static const symbol s_0_1[1] = { 'I' };
+static const symbol s_0_2[1] = { 'U' };
+
+static const struct among a_0[3] =
+{
+{ 0, 0, -1, 3, 0},
+{ 1, s_0_1, 0, 1, 0},
+{ 1, s_0_2, 0, 2, 0}
+};
+
+static const symbol s_1_0[2] = { 'e', 'a' };
+static const symbol s_1_1[5] = { 'a', 0xC5, 0xA3, 'i', 'a' };
+static const symbol s_1_2[3] = { 'a', 'u', 'a' };
+static const symbol s_1_3[3] = { 'i', 'u', 'a' };
+static const symbol s_1_4[5] = { 'a', 0xC5, 0xA3, 'i', 'e' };
+static const symbol s_1_5[3] = { 'e', 'l', 'e' };
+static const symbol s_1_6[3] = { 'i', 'l', 'e' };
+static const symbol s_1_7[4] = { 'i', 'i', 'l', 'e' };
+static const symbol s_1_8[3] = { 'i', 'e', 'i' };
+static const symbol s_1_9[4] = { 'a', 't', 'e', 'i' };
+static const symbol s_1_10[2] = { 'i', 'i' };
+static const symbol s_1_11[4] = { 'u', 'l', 'u', 'i' };
+static const symbol s_1_12[2] = { 'u', 'l' };
+static const symbol s_1_13[4] = { 'e', 'l', 'o', 'r' };
+static const symbol s_1_14[4] = { 'i', 'l', 'o', 'r' };
+static const symbol s_1_15[5] = { 'i', 'i', 'l', 'o', 'r' };
+
+static const struct among a_1[16] =
+{
+{ 2, s_1_0, -1, 3, 0},
+{ 5, s_1_1, -1, 7, 0},
+{ 3, s_1_2, -1, 2, 0},
+{ 3, s_1_3, -1, 4, 0},
+{ 5, s_1_4, -1, 7, 0},
+{ 3, s_1_5, -1, 3, 0},
+{ 3, s_1_6, -1, 5, 0},
+{ 4, s_1_7, 6, 4, 0},
+{ 3, s_1_8, -1, 4, 0},
+{ 4, s_1_9, -1, 6, 0},
+{ 2, s_1_10, -1, 4, 0},
+{ 4, s_1_11, -1, 1, 0},
+{ 2, s_1_12, -1, 1, 0},
+{ 4, s_1_13, -1, 3, 0},
+{ 4, s_1_14, -1, 4, 0},
+{ 5, s_1_15, 14, 4, 0}
+};
+
+static const symbol s_2_0[5] = { 'i', 'c', 'a', 'l', 'a' };
+static const symbol s_2_1[5] = { 'i', 'c', 'i', 'v', 'a' };
+static const symbol s_2_2[5] = { 'a', 't', 'i', 'v', 'a' };
+static const symbol s_2_3[5] = { 'i', 't', 'i', 'v', 'a' };
+static const symbol s_2_4[5] = { 'i', 'c', 'a', 'l', 'e' };
+static const symbol s_2_5[7] = { 'a', 0xC5, 0xA3, 'i', 'u', 'n', 'e' };
+static const symbol s_2_6[7] = { 'i', 0xC5, 0xA3, 'i', 'u', 'n', 'e' };
+static const symbol s_2_7[6] = { 'a', 't', 'o', 'a', 'r', 'e' };
+static const symbol s_2_8[6] = { 'i', 't', 'o', 'a', 'r', 'e' };
+static const symbol s_2_9[7] = { 0xC4, 0x83, 't', 'o', 'a', 'r', 'e' };
+static const symbol s_2_10[7] = { 'i', 'c', 'i', 't', 'a', 't', 'e' };
+static const symbol s_2_11[9] = { 'a', 'b', 'i', 'l', 'i', 't', 'a', 't', 'e' };
+static const symbol s_2_12[9] = { 'i', 'b', 'i', 'l', 'i', 't', 'a', 't', 'e' };
+static const symbol s_2_13[7] = { 'i', 'v', 'i', 't', 'a', 't', 'e' };
+static const symbol s_2_14[5] = { 'i', 'c', 'i', 'v', 'e' };
+static const symbol s_2_15[5] = { 'a', 't', 'i', 'v', 'e' };
+static const symbol s_2_16[5] = { 'i', 't', 'i', 'v', 'e' };
+static const symbol s_2_17[5] = { 'i', 'c', 'a', 'l', 'i' };
+static const symbol s_2_18[5] = { 'a', 't', 'o', 'r', 'i' };
+static const symbol s_2_19[7] = { 'i', 'c', 'a', 't', 'o', 'r', 'i' };
+static const symbol s_2_20[5] = { 'i', 't', 'o', 'r', 'i' };
+static const symbol s_2_21[6] = { 0xC4, 0x83, 't', 'o', 'r', 'i' };
+static const symbol s_2_22[7] = { 'i', 'c', 'i', 't', 'a', 't', 'i' };
+static const symbol s_2_23[9] = { 'a', 'b', 'i', 'l', 'i', 't', 'a', 't', 'i' };
+static const symbol s_2_24[7] = { 'i', 'v', 'i', 't', 'a', 't', 'i' };
+static const symbol s_2_25[5] = { 'i', 'c', 'i', 'v', 'i' };
+static const symbol s_2_26[5] = { 'a', 't', 'i', 'v', 'i' };
+static const symbol s_2_27[5] = { 'i', 't', 'i', 'v', 'i' };
+static const symbol s_2_28[7] = { 'i', 'c', 'i', 't', 0xC4, 0x83, 'i' };
+static const symbol s_2_29[9] = { 'a', 'b', 'i', 'l', 'i', 't', 0xC4, 0x83, 'i' };
+static const symbol s_2_30[7] = { 'i', 'v', 'i', 't', 0xC4, 0x83, 'i' };
+static const symbol s_2_31[9] = { 'i', 'c', 'i', 't', 0xC4, 0x83, 0xC5, 0xA3, 'i' };
+static const symbol s_2_32[11] = { 'a', 'b', 'i', 'l', 'i', 't', 0xC4, 0x83, 0xC5, 0xA3, 'i' };
+static const symbol s_2_33[9] = { 'i', 'v', 'i', 't', 0xC4, 0x83, 0xC5, 0xA3, 'i' };
+static const symbol s_2_34[4] = { 'i', 'c', 'a', 'l' };
+static const symbol s_2_35[4] = { 'a', 't', 'o', 'r' };
+static const symbol s_2_36[6] = { 'i', 'c', 'a', 't', 'o', 'r' };
+static const symbol s_2_37[4] = { 'i', 't', 'o', 'r' };
+static const symbol s_2_38[5] = { 0xC4, 0x83, 't', 'o', 'r' };
+static const symbol s_2_39[4] = { 'i', 'c', 'i', 'v' };
+static const symbol s_2_40[4] = { 'a', 't', 'i', 'v' };
+static const symbol s_2_41[4] = { 'i', 't', 'i', 'v' };
+static const symbol s_2_42[6] = { 'i', 'c', 'a', 'l', 0xC4, 0x83 };
+static const symbol s_2_43[6] = { 'i', 'c', 'i', 'v', 0xC4, 0x83 };
+static const symbol s_2_44[6] = { 'a', 't', 'i', 'v', 0xC4, 0x83 };
+static const symbol s_2_45[6] = { 'i', 't', 'i', 'v', 0xC4, 0x83 };
+
+static const struct among a_2[46] =
+{
+{ 5, s_2_0, -1, 4, 0},
+{ 5, s_2_1, -1, 4, 0},
+{ 5, s_2_2, -1, 5, 0},
+{ 5, s_2_3, -1, 6, 0},
+{ 5, s_2_4, -1, 4, 0},
+{ 7, s_2_5, -1, 5, 0},
+{ 7, s_2_6, -1, 6, 0},
+{ 6, s_2_7, -1, 5, 0},
+{ 6, s_2_8, -1, 6, 0},
+{ 7, s_2_9, -1, 5, 0},
+{ 7, s_2_10, -1, 4, 0},
+{ 9, s_2_11, -1, 1, 0},
+{ 9, s_2_12, -1, 2, 0},
+{ 7, s_2_13, -1, 3, 0},
+{ 5, s_2_14, -1, 4, 0},
+{ 5, s_2_15, -1, 5, 0},
+{ 5, s_2_16, -1, 6, 0},
+{ 5, s_2_17, -1, 4, 0},
+{ 5, s_2_18, -1, 5, 0},
+{ 7, s_2_19, 18, 4, 0},
+{ 5, s_2_20, -1, 6, 0},
+{ 6, s_2_21, -1, 5, 0},
+{ 7, s_2_22, -1, 4, 0},
+{ 9, s_2_23, -1, 1, 0},
+{ 7, s_2_24, -1, 3, 0},
+{ 5, s_2_25, -1, 4, 0},
+{ 5, s_2_26, -1, 5, 0},
+{ 5, s_2_27, -1, 6, 0},
+{ 7, s_2_28, -1, 4, 0},
+{ 9, s_2_29, -1, 1, 0},
+{ 7, s_2_30, -1, 3, 0},
+{ 9, s_2_31, -1, 4, 0},
+{ 11, s_2_32, -1, 1, 0},
+{ 9, s_2_33, -1, 3, 0},
+{ 4, s_2_34, -1, 4, 0},
+{ 4, s_2_35, -1, 5, 0},
+{ 6, s_2_36, 35, 4, 0},
+{ 4, s_2_37, -1, 6, 0},
+{ 5, s_2_38, -1, 5, 0},
+{ 4, s_2_39, -1, 4, 0},
+{ 4, s_2_40, -1, 5, 0},
+{ 4, s_2_41, -1, 6, 0},
+{ 6, s_2_42, -1, 4, 0},
+{ 6, s_2_43, -1, 4, 0},
+{ 6, s_2_44, -1, 5, 0},
+{ 6, s_2_45, -1, 6, 0}
+};
+
+static const symbol s_3_0[3] = { 'i', 'c', 'a' };
+static const symbol s_3_1[5] = { 'a', 'b', 'i', 'l', 'a' };
+static const symbol s_3_2[5] = { 'i', 'b', 'i', 'l', 'a' };
+static const symbol s_3_3[4] = { 'o', 'a', 's', 'a' };
+static const symbol s_3_4[3] = { 'a', 't', 'a' };
+static const symbol s_3_5[3] = { 'i', 't', 'a' };
+static const symbol s_3_6[4] = { 'a', 'n', 't', 'a' };
+static const symbol s_3_7[4] = { 'i', 's', 't', 'a' };
+static const symbol s_3_8[3] = { 'u', 't', 'a' };
+static const symbol s_3_9[3] = { 'i', 'v', 'a' };
+static const symbol s_3_10[2] = { 'i', 'c' };
+static const symbol s_3_11[3] = { 'i', 'c', 'e' };
+static const symbol s_3_12[5] = { 'a', 'b', 'i', 'l', 'e' };
+static const symbol s_3_13[5] = { 'i', 'b', 'i', 'l', 'e' };
+static const symbol s_3_14[4] = { 'i', 's', 'm', 'e' };
+static const symbol s_3_15[4] = { 'i', 'u', 'n', 'e' };
+static const symbol s_3_16[4] = { 'o', 'a', 's', 'e' };
+static const symbol s_3_17[3] = { 'a', 't', 'e' };
+static const symbol s_3_18[5] = { 'i', 't', 'a', 't', 'e' };
+static const symbol s_3_19[3] = { 'i', 't', 'e' };
+static const symbol s_3_20[4] = { 'a', 'n', 't', 'e' };
+static const symbol s_3_21[4] = { 'i', 's', 't', 'e' };
+static const symbol s_3_22[3] = { 'u', 't', 'e' };
+static const symbol s_3_23[3] = { 'i', 'v', 'e' };
+static const symbol s_3_24[3] = { 'i', 'c', 'i' };
+static const symbol s_3_25[5] = { 'a', 'b', 'i', 'l', 'i' };
+static const symbol s_3_26[5] = { 'i', 'b', 'i', 'l', 'i' };
+static const symbol s_3_27[4] = { 'i', 'u', 'n', 'i' };
+static const symbol s_3_28[5] = { 'a', 't', 'o', 'r', 'i' };
+static const symbol s_3_29[3] = { 'o', 's', 'i' };
+static const symbol s_3_30[3] = { 'a', 't', 'i' };
+static const symbol s_3_31[5] = { 'i', 't', 'a', 't', 'i' };
+static const symbol s_3_32[3] = { 'i', 't', 'i' };
+static const symbol s_3_33[4] = { 'a', 'n', 't', 'i' };
+static const symbol s_3_34[4] = { 'i', 's', 't', 'i' };
+static const symbol s_3_35[3] = { 'u', 't', 'i' };
+static const symbol s_3_36[5] = { 'i', 0xC5, 0x9F, 't', 'i' };
+static const symbol s_3_37[3] = { 'i', 'v', 'i' };
+static const symbol s_3_38[5] = { 'i', 't', 0xC4, 0x83, 'i' };
+static const symbol s_3_39[4] = { 'o', 0xC5, 0x9F, 'i' };
+static const symbol s_3_40[7] = { 'i', 't', 0xC4, 0x83, 0xC5, 0xA3, 'i' };
+static const symbol s_3_41[4] = { 'a', 'b', 'i', 'l' };
+static const symbol s_3_42[4] = { 'i', 'b', 'i', 'l' };
+static const symbol s_3_43[3] = { 'i', 's', 'm' };
+static const symbol s_3_44[4] = { 'a', 't', 'o', 'r' };
+static const symbol s_3_45[2] = { 'o', 's' };
+static const symbol s_3_46[2] = { 'a', 't' };
+static const symbol s_3_47[2] = { 'i', 't' };
+static const symbol s_3_48[3] = { 'a', 'n', 't' };
+static const symbol s_3_49[3] = { 'i', 's', 't' };
+static const symbol s_3_50[2] = { 'u', 't' };
+static const symbol s_3_51[2] = { 'i', 'v' };
+static const symbol s_3_52[4] = { 'i', 'c', 0xC4, 0x83 };
+static const symbol s_3_53[6] = { 'a', 'b', 'i', 'l', 0xC4, 0x83 };
+static const symbol s_3_54[6] = { 'i', 'b', 'i', 'l', 0xC4, 0x83 };
+static const symbol s_3_55[5] = { 'o', 'a', 's', 0xC4, 0x83 };
+static const symbol s_3_56[4] = { 'a', 't', 0xC4, 0x83 };
+static const symbol s_3_57[4] = { 'i', 't', 0xC4, 0x83 };
+static const symbol s_3_58[5] = { 'a', 'n', 't', 0xC4, 0x83 };
+static const symbol s_3_59[5] = { 'i', 's', 't', 0xC4, 0x83 };
+static const symbol s_3_60[4] = { 'u', 't', 0xC4, 0x83 };
+static const symbol s_3_61[4] = { 'i', 'v', 0xC4, 0x83 };
+
+static const struct among a_3[62] =
+{
+{ 3, s_3_0, -1, 1, 0},
+{ 5, s_3_1, -1, 1, 0},
+{ 5, s_3_2, -1, 1, 0},
+{ 4, s_3_3, -1, 1, 0},
+{ 3, s_3_4, -1, 1, 0},
+{ 3, s_3_5, -1, 1, 0},
+{ 4, s_3_6, -1, 1, 0},
+{ 4, s_3_7, -1, 3, 0},
+{ 3, s_3_8, -1, 1, 0},
+{ 3, s_3_9, -1, 1, 0},
+{ 2, s_3_10, -1, 1, 0},
+{ 3, s_3_11, -1, 1, 0},
+{ 5, s_3_12, -1, 1, 0},
+{ 5, s_3_13, -1, 1, 0},
+{ 4, s_3_14, -1, 3, 0},
+{ 4, s_3_15, -1, 2, 0},
+{ 4, s_3_16, -1, 1, 0},
+{ 3, s_3_17, -1, 1, 0},
+{ 5, s_3_18, 17, 1, 0},
+{ 3, s_3_19, -1, 1, 0},
+{ 4, s_3_20, -1, 1, 0},
+{ 4, s_3_21, -1, 3, 0},
+{ 3, s_3_22, -1, 1, 0},
+{ 3, s_3_23, -1, 1, 0},
+{ 3, s_3_24, -1, 1, 0},
+{ 5, s_3_25, -1, 1, 0},
+{ 5, s_3_26, -1, 1, 0},
+{ 4, s_3_27, -1, 2, 0},
+{ 5, s_3_28, -1, 1, 0},
+{ 3, s_3_29, -1, 1, 0},
+{ 3, s_3_30, -1, 1, 0},
+{ 5, s_3_31, 30, 1, 0},
+{ 3, s_3_32, -1, 1, 0},
+{ 4, s_3_33, -1, 1, 0},
+{ 4, s_3_34, -1, 3, 0},
+{ 3, s_3_35, -1, 1, 0},
+{ 5, s_3_36, -1, 3, 0},
+{ 3, s_3_37, -1, 1, 0},
+{ 5, s_3_38, -1, 1, 0},
+{ 4, s_3_39, -1, 1, 0},
+{ 7, s_3_40, -1, 1, 0},
+{ 4, s_3_41, -1, 1, 0},
+{ 4, s_3_42, -1, 1, 0},
+{ 3, s_3_43, -1, 3, 0},
+{ 4, s_3_44, -1, 1, 0},
+{ 2, s_3_45, -1, 1, 0},
+{ 2, s_3_46, -1, 1, 0},
+{ 2, s_3_47, -1, 1, 0},
+{ 3, s_3_48, -1, 1, 0},
+{ 3, s_3_49, -1, 3, 0},
+{ 2, s_3_50, -1, 1, 0},
+{ 2, s_3_51, -1, 1, 0},
+{ 4, s_3_52, -1, 1, 0},
+{ 6, s_3_53, -1, 1, 0},
+{ 6, s_3_54, -1, 1, 0},
+{ 5, s_3_55, -1, 1, 0},
+{ 4, s_3_56, -1, 1, 0},
+{ 4, s_3_57, -1, 1, 0},
+{ 5, s_3_58, -1, 1, 0},
+{ 5, s_3_59, -1, 3, 0},
+{ 4, s_3_60, -1, 1, 0},
+{ 4, s_3_61, -1, 1, 0}
+};
+
+static const symbol s_4_0[2] = { 'e', 'a' };
+static const symbol s_4_1[2] = { 'i', 'a' };
+static const symbol s_4_2[3] = { 'e', 's', 'c' };
+static const symbol s_4_3[4] = { 0xC4, 0x83, 's', 'c' };
+static const symbol s_4_4[3] = { 'i', 'n', 'd' };
+static const symbol s_4_5[4] = { 0xC3, 0xA2, 'n', 'd' };
+static const symbol s_4_6[3] = { 'a', 'r', 'e' };
+static const symbol s_4_7[3] = { 'e', 'r', 'e' };
+static const symbol s_4_8[3] = { 'i', 'r', 'e' };
+static const symbol s_4_9[4] = { 0xC3, 0xA2, 'r', 'e' };
+static const symbol s_4_10[2] = { 's', 'e' };
+static const symbol s_4_11[3] = { 'a', 's', 'e' };
+static const symbol s_4_12[4] = { 's', 'e', 's', 'e' };
+static const symbol s_4_13[3] = { 'i', 's', 'e' };
+static const symbol s_4_14[3] = { 'u', 's', 'e' };
+static const symbol s_4_15[4] = { 0xC3, 0xA2, 's', 'e' };
+static const symbol s_4_16[5] = { 'e', 0xC5, 0x9F, 't', 'e' };
+static const symbol s_4_17[6] = { 0xC4, 0x83, 0xC5, 0x9F, 't', 'e' };
+static const symbol s_4_18[3] = { 'e', 'z', 'e' };
+static const symbol s_4_19[2] = { 'a', 'i' };
+static const symbol s_4_20[3] = { 'e', 'a', 'i' };
+static const symbol s_4_21[3] = { 'i', 'a', 'i' };
+static const symbol s_4_22[3] = { 's', 'e', 'i' };
+static const symbol s_4_23[5] = { 'e', 0xC5, 0x9F, 't', 'i' };
+static const symbol s_4_24[6] = { 0xC4, 0x83, 0xC5, 0x9F, 't', 'i' };
+static const symbol s_4_25[2] = { 'u', 'i' };
+static const symbol s_4_26[3] = { 'e', 'z', 'i' };
+static const symbol s_4_27[4] = { 'a', 0xC5, 0x9F, 'i' };
+static const symbol s_4_28[5] = { 's', 'e', 0xC5, 0x9F, 'i' };
+static const symbol s_4_29[6] = { 'a', 's', 'e', 0xC5, 0x9F, 'i' };
+static const symbol s_4_30[7] = { 's', 'e', 's', 'e', 0xC5, 0x9F, 'i' };
+static const symbol s_4_31[6] = { 'i', 's', 'e', 0xC5, 0x9F, 'i' };
+static const symbol s_4_32[6] = { 'u', 's', 'e', 0xC5, 0x9F, 'i' };
+static const symbol s_4_33[7] = { 0xC3, 0xA2, 's', 'e', 0xC5, 0x9F, 'i' };
+static const symbol s_4_34[4] = { 'i', 0xC5, 0x9F, 'i' };
+static const symbol s_4_35[4] = { 'u', 0xC5, 0x9F, 'i' };
+static const symbol s_4_36[5] = { 0xC3, 0xA2, 0xC5, 0x9F, 'i' };
+static const symbol s_4_37[3] = { 0xC3, 0xA2, 'i' };
+static const symbol s_4_38[4] = { 'a', 0xC5, 0xA3, 'i' };
+static const symbol s_4_39[5] = { 'e', 'a', 0xC5, 0xA3, 'i' };
+static const symbol s_4_40[5] = { 'i', 'a', 0xC5, 0xA3, 'i' };
+static const symbol s_4_41[4] = { 'e', 0xC5, 0xA3, 'i' };
+static const symbol s_4_42[4] = { 'i', 0xC5, 0xA3, 'i' };
+static const symbol s_4_43[7] = { 'a', 'r', 0xC4, 0x83, 0xC5, 0xA3, 'i' };
+static const symbol s_4_44[8] = { 's', 'e', 'r', 0xC4, 0x83, 0xC5, 0xA3, 'i' };
+static const symbol s_4_45[9] = { 'a', 's', 'e', 'r', 0xC4, 0x83, 0xC5, 0xA3, 'i' };
+static const symbol s_4_46[10] = { 's', 'e', 's', 'e', 'r', 0xC4, 0x83, 0xC5, 0xA3, 'i' };
+static const symbol s_4_47[9] = { 'i', 's', 'e', 'r', 0xC4, 0x83, 0xC5, 0xA3, 'i' };
+static const symbol s_4_48[9] = { 'u', 's', 'e', 'r', 0xC4, 0x83, 0xC5, 0xA3, 'i' };
+static const symbol s_4_49[10] = { 0xC3, 0xA2, 's', 'e', 'r', 0xC4, 0x83, 0xC5, 0xA3, 'i' };
+static const symbol s_4_50[7] = { 'i', 'r', 0xC4, 0x83, 0xC5, 0xA3, 'i' };
+static const symbol s_4_51[7] = { 'u', 'r', 0xC4, 0x83, 0xC5, 0xA3, 'i' };
+static const symbol s_4_52[8] = { 0xC3, 0xA2, 'r', 0xC4, 0x83, 0xC5, 0xA3, 'i' };
+static const symbol s_4_53[5] = { 0xC3, 0xA2, 0xC5, 0xA3, 'i' };
+static const symbol s_4_54[2] = { 'a', 'm' };
+static const symbol s_4_55[3] = { 'e', 'a', 'm' };
+static const symbol s_4_56[3] = { 'i', 'a', 'm' };
+static const symbol s_4_57[2] = { 'e', 'm' };
+static const symbol s_4_58[4] = { 'a', 's', 'e', 'm' };
+static const symbol s_4_59[5] = { 's', 'e', 's', 'e', 'm' };
+static const symbol s_4_60[4] = { 'i', 's', 'e', 'm' };
+static const symbol s_4_61[4] = { 'u', 's', 'e', 'm' };
+static const symbol s_4_62[5] = { 0xC3, 0xA2, 's', 'e', 'm' };
+static const symbol s_4_63[2] = { 'i', 'm' };
+static const symbol s_4_64[3] = { 0xC4, 0x83, 'm' };
+static const symbol s_4_65[5] = { 'a', 'r', 0xC4, 0x83, 'm' };
+static const symbol s_4_66[6] = { 's', 'e', 'r', 0xC4, 0x83, 'm' };
+static const symbol s_4_67[7] = { 'a', 's', 'e', 'r', 0xC4, 0x83, 'm' };
+static const symbol s_4_68[8] = { 's', 'e', 's', 'e', 'r', 0xC4, 0x83, 'm' };
+static const symbol s_4_69[7] = { 'i', 's', 'e', 'r', 0xC4, 0x83, 'm' };
+static const symbol s_4_70[7] = { 'u', 's', 'e', 'r', 0xC4, 0x83, 'm' };
+static const symbol s_4_71[8] = { 0xC3, 0xA2, 's', 'e', 'r', 0xC4, 0x83, 'm' };
+static const symbol s_4_72[5] = { 'i', 'r', 0xC4, 0x83, 'm' };
+static const symbol s_4_73[5] = { 'u', 'r', 0xC4, 0x83, 'm' };
+static const symbol s_4_74[6] = { 0xC3, 0xA2, 'r', 0xC4, 0x83, 'm' };
+static const symbol s_4_75[3] = { 0xC3, 0xA2, 'm' };
+static const symbol s_4_76[2] = { 'a', 'u' };
+static const symbol s_4_77[3] = { 'e', 'a', 'u' };
+static const symbol s_4_78[3] = { 'i', 'a', 'u' };
+static const symbol s_4_79[4] = { 'i', 'n', 'd', 'u' };
+static const symbol s_4_80[5] = { 0xC3, 0xA2, 'n', 'd', 'u' };
+static const symbol s_4_81[2] = { 'e', 'z' };
+static const symbol s_4_82[6] = { 'e', 'a', 's', 'c', 0xC4, 0x83 };
+static const symbol s_4_83[4] = { 'a', 'r', 0xC4, 0x83 };
+static const symbol s_4_84[5] = { 's', 'e', 'r', 0xC4, 0x83 };
+static const symbol s_4_85[6] = { 'a', 's', 'e', 'r', 0xC4, 0x83 };
+static const symbol s_4_86[7] = { 's', 'e', 's', 'e', 'r', 0xC4, 0x83 };
+static const symbol s_4_87[6] = { 'i', 's', 'e', 'r', 0xC4, 0x83 };
+static const symbol s_4_88[6] = { 'u', 's', 'e', 'r', 0xC4, 0x83 };
+static const symbol s_4_89[7] = { 0xC3, 0xA2, 's', 'e', 'r', 0xC4, 0x83 };
+static const symbol s_4_90[4] = { 'i', 'r', 0xC4, 0x83 };
+static const symbol s_4_91[4] = { 'u', 'r', 0xC4, 0x83 };
+static const symbol s_4_92[5] = { 0xC3, 0xA2, 'r', 0xC4, 0x83 };
+static const symbol s_4_93[5] = { 'e', 'a', 'z', 0xC4, 0x83 };
+
+static const struct among a_4[94] =
+{
+{ 2, s_4_0, -1, 1, 0},
+{ 2, s_4_1, -1, 1, 0},
+{ 3, s_4_2, -1, 1, 0},
+{ 4, s_4_3, -1, 1, 0},
+{ 3, s_4_4, -1, 1, 0},
+{ 4, s_4_5, -1, 1, 0},
+{ 3, s_4_6, -1, 1, 0},
+{ 3, s_4_7, -1, 1, 0},
+{ 3, s_4_8, -1, 1, 0},
+{ 4, s_4_9, -1, 1, 0},
+{ 2, s_4_10, -1, 2, 0},
+{ 3, s_4_11, 10, 1, 0},
+{ 4, s_4_12, 10, 2, 0},
+{ 3, s_4_13, 10, 1, 0},
+{ 3, s_4_14, 10, 1, 0},
+{ 4, s_4_15, 10, 1, 0},
+{ 5, s_4_16, -1, 1, 0},
+{ 6, s_4_17, -1, 1, 0},
+{ 3, s_4_18, -1, 1, 0},
+{ 2, s_4_19, -1, 1, 0},
+{ 3, s_4_20, 19, 1, 0},
+{ 3, s_4_21, 19, 1, 0},
+{ 3, s_4_22, -1, 2, 0},
+{ 5, s_4_23, -1, 1, 0},
+{ 6, s_4_24, -1, 1, 0},
+{ 2, s_4_25, -1, 1, 0},
+{ 3, s_4_26, -1, 1, 0},
+{ 4, s_4_27, -1, 1, 0},
+{ 5, s_4_28, -1, 2, 0},
+{ 6, s_4_29, 28, 1, 0},
+{ 7, s_4_30, 28, 2, 0},
+{ 6, s_4_31, 28, 1, 0},
+{ 6, s_4_32, 28, 1, 0},
+{ 7, s_4_33, 28, 1, 0},
+{ 4, s_4_34, -1, 1, 0},
+{ 4, s_4_35, -1, 1, 0},
+{ 5, s_4_36, -1, 1, 0},
+{ 3, s_4_37, -1, 1, 0},
+{ 4, s_4_38, -1, 2, 0},
+{ 5, s_4_39, 38, 1, 0},
+{ 5, s_4_40, 38, 1, 0},
+{ 4, s_4_41, -1, 2, 0},
+{ 4, s_4_42, -1, 2, 0},
+{ 7, s_4_43, -1, 1, 0},
+{ 8, s_4_44, -1, 2, 0},
+{ 9, s_4_45, 44, 1, 0},
+{ 10, s_4_46, 44, 2, 0},
+{ 9, s_4_47, 44, 1, 0},
+{ 9, s_4_48, 44, 1, 0},
+{ 10, s_4_49, 44, 1, 0},
+{ 7, s_4_50, -1, 1, 0},
+{ 7, s_4_51, -1, 1, 0},
+{ 8, s_4_52, -1, 1, 0},
+{ 5, s_4_53, -1, 2, 0},
+{ 2, s_4_54, -1, 1, 0},
+{ 3, s_4_55, 54, 1, 0},
+{ 3, s_4_56, 54, 1, 0},
+{ 2, s_4_57, -1, 2, 0},
+{ 4, s_4_58, 57, 1, 0},
+{ 5, s_4_59, 57, 2, 0},
+{ 4, s_4_60, 57, 1, 0},
+{ 4, s_4_61, 57, 1, 0},
+{ 5, s_4_62, 57, 1, 0},
+{ 2, s_4_63, -1, 2, 0},
+{ 3, s_4_64, -1, 2, 0},
+{ 5, s_4_65, 64, 1, 0},
+{ 6, s_4_66, 64, 2, 0},
+{ 7, s_4_67, 66, 1, 0},
+{ 8, s_4_68, 66, 2, 0},
+{ 7, s_4_69, 66, 1, 0},
+{ 7, s_4_70, 66, 1, 0},
+{ 8, s_4_71, 66, 1, 0},
+{ 5, s_4_72, 64, 1, 0},
+{ 5, s_4_73, 64, 1, 0},
+{ 6, s_4_74, 64, 1, 0},
+{ 3, s_4_75, -1, 2, 0},
+{ 2, s_4_76, -1, 1, 0},
+{ 3, s_4_77, 76, 1, 0},
+{ 3, s_4_78, 76, 1, 0},
+{ 4, s_4_79, -1, 1, 0},
+{ 5, s_4_80, -1, 1, 0},
+{ 2, s_4_81, -1, 1, 0},
+{ 6, s_4_82, -1, 1, 0},
+{ 4, s_4_83, -1, 1, 0},
+{ 5, s_4_84, -1, 2, 0},
+{ 6, s_4_85, 84, 1, 0},
+{ 7, s_4_86, 84, 2, 0},
+{ 6, s_4_87, 84, 1, 0},
+{ 6, s_4_88, 84, 1, 0},
+{ 7, s_4_89, 84, 1, 0},
+{ 4, s_4_90, -1, 1, 0},
+{ 4, s_4_91, -1, 1, 0},
+{ 5, s_4_92, -1, 1, 0},
+{ 5, s_4_93, -1, 1, 0}
+};
+
+static const symbol s_5_0[1] = { 'a' };
+static const symbol s_5_1[1] = { 'e' };
+static const symbol s_5_2[2] = { 'i', 'e' };
+static const symbol s_5_3[1] = { 'i' };
+static const symbol s_5_4[2] = { 0xC4, 0x83 };
+
+static const struct among a_5[5] =
+{
+{ 1, s_5_0, -1, 1, 0},
+{ 1, s_5_1, -1, 1, 0},
+{ 2, s_5_2, 1, 1, 0},
+{ 1, s_5_3, -1, 1, 0},
+{ 2, s_5_4, -1, 1, 0}
+};
+
+static const unsigned char g_v[] = { 17, 65, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 32, 0, 0, 4 };
+
+static const symbol s_0[] = { 'U' };
+static const symbol s_1[] = { 'I' };
+static const symbol s_2[] = { 'i' };
+static const symbol s_3[] = { 'u' };
+static const symbol s_4[] = { 'a' };
+static const symbol s_5[] = { 'e' };
+static const symbol s_6[] = { 'i' };
+static const symbol s_7[] = { 'a', 'b' };
+static const symbol s_8[] = { 'i' };
+static const symbol s_9[] = { 'a', 't' };
+static const symbol s_10[] = { 'a', 0xC5, 0xA3, 'i' };
+static const symbol s_11[] = { 'a', 'b', 'i', 'l' };
+static const symbol s_12[] = { 'i', 'b', 'i', 'l' };
+static const symbol s_13[] = { 'i', 'v' };
+static const symbol s_14[] = { 'i', 'c' };
+static const symbol s_15[] = { 'a', 't' };
+static const symbol s_16[] = { 'i', 't' };
+static const symbol s_17[] = { 0xC5, 0xA3 };
+static const symbol s_18[] = { 't' };
+static const symbol s_19[] = { 'i', 's', 't' };
+
+static int r_prelude(struct SN_env * z) {
+ while(1) {
+ int c1 = z->c;
+ while(1) {
+ int c2 = z->c;
+ if (in_grouping_U(z, g_v, 97, 259, 0)) goto lab1;
+ z->bra = z->c;
+ { int c3 = z->c;
+ if (z->c == z->l || z->p[z->c] != 'u') goto lab3;
+ z->c++;
+ z->ket = z->c;
+ if (in_grouping_U(z, g_v, 97, 259, 0)) goto lab3;
+ { int ret = slice_from_s(z, 1, s_0);
+ if (ret < 0) return ret;
+ }
+ goto lab2;
+ lab3:
+ z->c = c3;
+ if (z->c == z->l || z->p[z->c] != 'i') goto lab1;
+ z->c++;
+ z->ket = z->c;
+ if (in_grouping_U(z, g_v, 97, 259, 0)) goto lab1;
+ { int ret = slice_from_s(z, 1, s_1);
+ if (ret < 0) return ret;
+ }
+ }
+ lab2:
+ z->c = c2;
+ break;
+ lab1:
+ z->c = c2;
+ { int ret = skip_utf8(z->p, z->c, z->l, 1);
+ if (ret < 0) goto lab0;
+ z->c = ret;
+ }
+ }
+ continue;
+ lab0:
+ z->c = c1;
+ break;
+ }
+ return 1;
+}
+
+static int r_mark_regions(struct SN_env * z) {
+ z->I[2] = z->l;
+ z->I[1] = z->l;
+ z->I[0] = z->l;
+ { int c1 = z->c;
+ { int c2 = z->c;
+ if (in_grouping_U(z, g_v, 97, 259, 0)) goto lab2;
+ { int c3 = z->c;
+ if (out_grouping_U(z, g_v, 97, 259, 0)) goto lab4;
+ {
+ int ret = out_grouping_U(z, g_v, 97, 259, 1);
+ if (ret < 0) goto lab4;
+ z->c += ret;
+ }
+ goto lab3;
+ lab4:
+ z->c = c3;
+ if (in_grouping_U(z, g_v, 97, 259, 0)) goto lab2;
+ {
+ int ret = in_grouping_U(z, g_v, 97, 259, 1);
+ if (ret < 0) goto lab2;
+ z->c += ret;
+ }
+ }
+ lab3:
+ goto lab1;
+ lab2:
+ z->c = c2;
+ if (out_grouping_U(z, g_v, 97, 259, 0)) goto lab0;
+ { int c4 = z->c;
+ if (out_grouping_U(z, g_v, 97, 259, 0)) goto lab6;
+ {
+ int ret = out_grouping_U(z, g_v, 97, 259, 1);
+ if (ret < 0) goto lab6;
+ z->c += ret;
+ }
+ goto lab5;
+ lab6:
+ z->c = c4;
+ if (in_grouping_U(z, g_v, 97, 259, 0)) goto lab0;
+ { int ret = skip_utf8(z->p, z->c, z->l, 1);
+ if (ret < 0) goto lab0;
+ z->c = ret;
+ }
+ }
+ lab5:
+ ;
+ }
+ lab1:
+ z->I[2] = z->c;
+ lab0:
+ z->c = c1;
+ }
+ { int c5 = z->c;
+ {
+ int ret = out_grouping_U(z, g_v, 97, 259, 1);
+ if (ret < 0) goto lab7;
+ z->c += ret;
+ }
+ {
+ int ret = in_grouping_U(z, g_v, 97, 259, 1);
+ if (ret < 0) goto lab7;
+ z->c += ret;
+ }
+ z->I[1] = z->c;
+ {
+ int ret = out_grouping_U(z, g_v, 97, 259, 1);
+ if (ret < 0) goto lab7;
+ z->c += ret;
+ }
+ {
+ int ret = in_grouping_U(z, g_v, 97, 259, 1);
+ if (ret < 0) goto lab7;
+ z->c += ret;
+ }
+ z->I[0] = z->c;
+ lab7:
+ z->c = c5;
+ }
+ return 1;
+}
+
+static int r_postlude(struct SN_env * z) {
+ int among_var;
+ while(1) {
+ int c1 = z->c;
+ z->bra = z->c;
+ if (z->c >= z->l || (z->p[z->c + 0] != 73 && z->p[z->c + 0] != 85)) among_var = 3; else
+ among_var = find_among(z, a_0, 3);
+ if (!(among_var)) goto lab0;
+ z->ket = z->c;
+ switch (among_var) {
+ case 1:
+ { int ret = slice_from_s(z, 1, s_2);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 2:
+ { int ret = slice_from_s(z, 1, s_3);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 3:
+ { int ret = skip_utf8(z->p, z->c, z->l, 1);
+ if (ret < 0) goto lab0;
+ z->c = ret;
+ }
+ break;
+ }
+ continue;
+ lab0:
+ z->c = c1;
+ break;
+ }
+ return 1;
+}
+
+static int r_RV(struct SN_env * z) {
+ if (!(z->I[2] <= z->c)) return 0;
+ return 1;
+}
+
+static int r_R1(struct SN_env * z) {
+ if (!(z->I[1] <= z->c)) return 0;
+ return 1;
+}
+
+static int r_R2(struct SN_env * z) {
+ if (!(z->I[0] <= z->c)) return 0;
+ return 1;
+}
+
+static int r_step_0(struct SN_env * z) {
+ int among_var;
+ z->ket = z->c;
+ if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((266786 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
+ among_var = find_among_b(z, a_1, 16);
+ if (!(among_var)) return 0;
+ z->bra = z->c;
+ { int ret = r_R1(z);
+ if (ret <= 0) return ret;
+ }
+ switch (among_var) {
+ case 1:
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 2:
+ { int ret = slice_from_s(z, 1, s_4);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 3:
+ { int ret = slice_from_s(z, 1, s_5);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 4:
+ { int ret = slice_from_s(z, 1, s_6);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 5:
+ { int m1 = z->l - z->c; (void)m1;
+ if (!(eq_s_b(z, 2, s_7))) goto lab0;
+ return 0;
+ lab0:
+ z->c = z->l - m1;
+ }
+ { int ret = slice_from_s(z, 1, s_8);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 6:
+ { int ret = slice_from_s(z, 2, s_9);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 7:
+ { int ret = slice_from_s(z, 4, s_10);
+ if (ret < 0) return ret;
+ }
+ break;
+ }
+ return 1;
+}
+
+static int r_combo_suffix(struct SN_env * z) {
+ int among_var;
+ { int m_test1 = z->l - z->c;
+ z->ket = z->c;
+ among_var = find_among_b(z, a_2, 46);
+ if (!(among_var)) return 0;
+ z->bra = z->c;
+ { int ret = r_R1(z);
+ if (ret <= 0) return ret;
+ }
+ switch (among_var) {
+ case 1:
+ { int ret = slice_from_s(z, 4, s_11);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 2:
+ { int ret = slice_from_s(z, 4, s_12);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 3:
+ { int ret = slice_from_s(z, 2, s_13);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 4:
+ { int ret = slice_from_s(z, 2, s_14);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 5:
+ { int ret = slice_from_s(z, 2, s_15);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 6:
+ { int ret = slice_from_s(z, 2, s_16);
+ if (ret < 0) return ret;
+ }
+ break;
+ }
+ z->I[3] = 1;
+ z->c = z->l - m_test1;
+ }
+ return 1;
+}
+
+static int r_standard_suffix(struct SN_env * z) {
+ int among_var;
+ z->I[3] = 0;
+ while(1) {
+ int m1 = z->l - z->c; (void)m1;
+ { int ret = r_combo_suffix(z);
+ if (ret == 0) goto lab0;
+ if (ret < 0) return ret;
+ }
+ continue;
+ lab0:
+ z->c = z->l - m1;
+ break;
+ }
+ z->ket = z->c;
+ among_var = find_among_b(z, a_3, 62);
+ if (!(among_var)) return 0;
+ z->bra = z->c;
+ { int ret = r_R2(z);
+ if (ret <= 0) return ret;
+ }
+ switch (among_var) {
+ case 1:
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 2:
+ if (!(eq_s_b(z, 2, s_17))) return 0;
+ z->bra = z->c;
+ { int ret = slice_from_s(z, 1, s_18);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 3:
+ { int ret = slice_from_s(z, 3, s_19);
+ if (ret < 0) return ret;
+ }
+ break;
+ }
+ z->I[3] = 1;
+ return 1;
+}
+
+static int r_verb_suffix(struct SN_env * z) {
+ int among_var;
+
+ { int mlimit1;
+ if (z->c < z->I[2]) return 0;
+ mlimit1 = z->lb; z->lb = z->I[2];
+ z->ket = z->c;
+ among_var = find_among_b(z, a_4, 94);
+ if (!(among_var)) { z->lb = mlimit1; return 0; }
+ z->bra = z->c;
+ switch (among_var) {
+ case 1:
+ { int m2 = z->l - z->c; (void)m2;
+ if (out_grouping_b_U(z, g_v, 97, 259, 0)) goto lab1;
+ goto lab0;
+ lab1:
+ z->c = z->l - m2;
+ if (z->c <= z->lb || z->p[z->c - 1] != 'u') { z->lb = mlimit1; return 0; }
+ z->c--;
+ }
+ lab0:
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 2:
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ break;
+ }
+ z->lb = mlimit1;
+ }
+ return 1;
+}
+
+static int r_vowel_suffix(struct SN_env * z) {
+ z->ket = z->c;
+ if (!(find_among_b(z, a_5, 5))) return 0;
+ z->bra = z->c;
+ { int ret = r_RV(z);
+ if (ret <= 0) return ret;
+ }
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ return 1;
+}
+
+extern int romanian_UTF_8_stem(struct SN_env * z) {
+ { int c1 = z->c;
+ { int ret = r_prelude(z);
+ if (ret < 0) return ret;
+ }
+ z->c = c1;
+ }
+
+ { int ret = r_mark_regions(z);
+ if (ret < 0) return ret;
+ }
+ z->lb = z->c; z->c = z->l;
+
+ { int m2 = z->l - z->c; (void)m2;
+ { int ret = r_step_0(z);
+ if (ret < 0) return ret;
+ }
+ z->c = z->l - m2;
+ }
+ { int m3 = z->l - z->c; (void)m3;
+ { int ret = r_standard_suffix(z);
+ if (ret < 0) return ret;
+ }
+ z->c = z->l - m3;
+ }
+ { int m4 = z->l - z->c; (void)m4;
+ { int m5 = z->l - z->c; (void)m5;
+ if (!(z->I[3])) goto lab2;
+ goto lab1;
+ lab2:
+ z->c = z->l - m5;
+ { int ret = r_verb_suffix(z);
+ if (ret == 0) goto lab0;
+ if (ret < 0) return ret;
+ }
+ }
+ lab1:
+ lab0:
+ z->c = z->l - m4;
+ }
+ { int m6 = z->l - z->c; (void)m6;
+ { int ret = r_vowel_suffix(z);
+ if (ret < 0) return ret;
+ }
+ z->c = z->l - m6;
+ }
+ z->c = z->lb;
+ { int c7 = z->c;
+ { int ret = r_postlude(z);
+ if (ret < 0) return ret;
+ }
+ z->c = c7;
+ }
+ return 1;
+}
+
+extern struct SN_env * romanian_UTF_8_create_env(void) { return SN_create_env(0, 4); }
+
+extern void romanian_UTF_8_close_env(struct SN_env * z) { SN_close_env(z, 0); }
+
diff --git a/src/backend/snowball/libstemmer/stem_UTF_8_russian.c b/src/backend/snowball/libstemmer/stem_UTF_8_russian.c
new file mode 100644
index 0000000..1d1b831
--- /dev/null
+++ b/src/backend/snowball/libstemmer/stem_UTF_8_russian.c
@@ -0,0 +1,678 @@
+/* Generated by Snowball 2.2.0 - https://snowballstem.org/ */
+
+#include "header.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+extern int russian_UTF_8_stem(struct SN_env * z);
+#ifdef __cplusplus
+}
+#endif
+static int r_tidy_up(struct SN_env * z);
+static int r_derivational(struct SN_env * z);
+static int r_noun(struct SN_env * z);
+static int r_verb(struct SN_env * z);
+static int r_reflexive(struct SN_env * z);
+static int r_adjectival(struct SN_env * z);
+static int r_adjective(struct SN_env * z);
+static int r_perfective_gerund(struct SN_env * z);
+static int r_R2(struct SN_env * z);
+static int r_mark_regions(struct SN_env * z);
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+extern struct SN_env * russian_UTF_8_create_env(void);
+extern void russian_UTF_8_close_env(struct SN_env * z);
+
+
+#ifdef __cplusplus
+}
+#endif
+static const symbol s_0_0[10] = { 0xD0, 0xB2, 0xD1, 0x88, 0xD0, 0xB8, 0xD1, 0x81, 0xD1, 0x8C };
+static const symbol s_0_1[12] = { 0xD1, 0x8B, 0xD0, 0xB2, 0xD1, 0x88, 0xD0, 0xB8, 0xD1, 0x81, 0xD1, 0x8C };
+static const symbol s_0_2[12] = { 0xD0, 0xB8, 0xD0, 0xB2, 0xD1, 0x88, 0xD0, 0xB8, 0xD1, 0x81, 0xD1, 0x8C };
+static const symbol s_0_3[2] = { 0xD0, 0xB2 };
+static const symbol s_0_4[4] = { 0xD1, 0x8B, 0xD0, 0xB2 };
+static const symbol s_0_5[4] = { 0xD0, 0xB8, 0xD0, 0xB2 };
+static const symbol s_0_6[6] = { 0xD0, 0xB2, 0xD1, 0x88, 0xD0, 0xB8 };
+static const symbol s_0_7[8] = { 0xD1, 0x8B, 0xD0, 0xB2, 0xD1, 0x88, 0xD0, 0xB8 };
+static const symbol s_0_8[8] = { 0xD0, 0xB8, 0xD0, 0xB2, 0xD1, 0x88, 0xD0, 0xB8 };
+
+static const struct among a_0[9] =
+{
+{ 10, s_0_0, -1, 1, 0},
+{ 12, s_0_1, 0, 2, 0},
+{ 12, s_0_2, 0, 2, 0},
+{ 2, s_0_3, -1, 1, 0},
+{ 4, s_0_4, 3, 2, 0},
+{ 4, s_0_5, 3, 2, 0},
+{ 6, s_0_6, -1, 1, 0},
+{ 8, s_0_7, 6, 2, 0},
+{ 8, s_0_8, 6, 2, 0}
+};
+
+static const symbol s_1_0[6] = { 0xD0, 0xB5, 0xD0, 0xBC, 0xD1, 0x83 };
+static const symbol s_1_1[6] = { 0xD0, 0xBE, 0xD0, 0xBC, 0xD1, 0x83 };
+static const symbol s_1_2[4] = { 0xD1, 0x8B, 0xD1, 0x85 };
+static const symbol s_1_3[4] = { 0xD0, 0xB8, 0xD1, 0x85 };
+static const symbol s_1_4[4] = { 0xD1, 0x83, 0xD1, 0x8E };
+static const symbol s_1_5[4] = { 0xD1, 0x8E, 0xD1, 0x8E };
+static const symbol s_1_6[4] = { 0xD0, 0xB5, 0xD1, 0x8E };
+static const symbol s_1_7[4] = { 0xD0, 0xBE, 0xD1, 0x8E };
+static const symbol s_1_8[4] = { 0xD1, 0x8F, 0xD1, 0x8F };
+static const symbol s_1_9[4] = { 0xD0, 0xB0, 0xD1, 0x8F };
+static const symbol s_1_10[4] = { 0xD1, 0x8B, 0xD0, 0xB5 };
+static const symbol s_1_11[4] = { 0xD0, 0xB5, 0xD0, 0xB5 };
+static const symbol s_1_12[4] = { 0xD0, 0xB8, 0xD0, 0xB5 };
+static const symbol s_1_13[4] = { 0xD0, 0xBE, 0xD0, 0xB5 };
+static const symbol s_1_14[6] = { 0xD1, 0x8B, 0xD0, 0xBC, 0xD0, 0xB8 };
+static const symbol s_1_15[6] = { 0xD0, 0xB8, 0xD0, 0xBC, 0xD0, 0xB8 };
+static const symbol s_1_16[4] = { 0xD1, 0x8B, 0xD0, 0xB9 };
+static const symbol s_1_17[4] = { 0xD0, 0xB5, 0xD0, 0xB9 };
+static const symbol s_1_18[4] = { 0xD0, 0xB8, 0xD0, 0xB9 };
+static const symbol s_1_19[4] = { 0xD0, 0xBE, 0xD0, 0xB9 };
+static const symbol s_1_20[4] = { 0xD1, 0x8B, 0xD0, 0xBC };
+static const symbol s_1_21[4] = { 0xD0, 0xB5, 0xD0, 0xBC };
+static const symbol s_1_22[4] = { 0xD0, 0xB8, 0xD0, 0xBC };
+static const symbol s_1_23[4] = { 0xD0, 0xBE, 0xD0, 0xBC };
+static const symbol s_1_24[6] = { 0xD0, 0xB5, 0xD0, 0xB3, 0xD0, 0xBE };
+static const symbol s_1_25[6] = { 0xD0, 0xBE, 0xD0, 0xB3, 0xD0, 0xBE };
+
+static const struct among a_1[26] =
+{
+{ 6, s_1_0, -1, 1, 0},
+{ 6, s_1_1, -1, 1, 0},
+{ 4, s_1_2, -1, 1, 0},
+{ 4, s_1_3, -1, 1, 0},
+{ 4, s_1_4, -1, 1, 0},
+{ 4, s_1_5, -1, 1, 0},
+{ 4, s_1_6, -1, 1, 0},
+{ 4, s_1_7, -1, 1, 0},
+{ 4, s_1_8, -1, 1, 0},
+{ 4, s_1_9, -1, 1, 0},
+{ 4, s_1_10, -1, 1, 0},
+{ 4, s_1_11, -1, 1, 0},
+{ 4, s_1_12, -1, 1, 0},
+{ 4, s_1_13, -1, 1, 0},
+{ 6, s_1_14, -1, 1, 0},
+{ 6, s_1_15, -1, 1, 0},
+{ 4, s_1_16, -1, 1, 0},
+{ 4, s_1_17, -1, 1, 0},
+{ 4, s_1_18, -1, 1, 0},
+{ 4, s_1_19, -1, 1, 0},
+{ 4, s_1_20, -1, 1, 0},
+{ 4, s_1_21, -1, 1, 0},
+{ 4, s_1_22, -1, 1, 0},
+{ 4, s_1_23, -1, 1, 0},
+{ 6, s_1_24, -1, 1, 0},
+{ 6, s_1_25, -1, 1, 0}
+};
+
+static const symbol s_2_0[4] = { 0xD0, 0xB2, 0xD1, 0x88 };
+static const symbol s_2_1[6] = { 0xD1, 0x8B, 0xD0, 0xB2, 0xD1, 0x88 };
+static const symbol s_2_2[6] = { 0xD0, 0xB8, 0xD0, 0xB2, 0xD1, 0x88 };
+static const symbol s_2_3[2] = { 0xD1, 0x89 };
+static const symbol s_2_4[4] = { 0xD1, 0x8E, 0xD1, 0x89 };
+static const symbol s_2_5[6] = { 0xD1, 0x83, 0xD1, 0x8E, 0xD1, 0x89 };
+static const symbol s_2_6[4] = { 0xD0, 0xB5, 0xD0, 0xBC };
+static const symbol s_2_7[4] = { 0xD0, 0xBD, 0xD0, 0xBD };
+
+static const struct among a_2[8] =
+{
+{ 4, s_2_0, -1, 1, 0},
+{ 6, s_2_1, 0, 2, 0},
+{ 6, s_2_2, 0, 2, 0},
+{ 2, s_2_3, -1, 1, 0},
+{ 4, s_2_4, 3, 1, 0},
+{ 6, s_2_5, 4, 2, 0},
+{ 4, s_2_6, -1, 1, 0},
+{ 4, s_2_7, -1, 1, 0}
+};
+
+static const symbol s_3_0[4] = { 0xD1, 0x81, 0xD1, 0x8C };
+static const symbol s_3_1[4] = { 0xD1, 0x81, 0xD1, 0x8F };
+
+static const struct among a_3[2] =
+{
+{ 4, s_3_0, -1, 1, 0},
+{ 4, s_3_1, -1, 1, 0}
+};
+
+static const symbol s_4_0[4] = { 0xD1, 0x8B, 0xD1, 0x82 };
+static const symbol s_4_1[4] = { 0xD1, 0x8E, 0xD1, 0x82 };
+static const symbol s_4_2[6] = { 0xD1, 0x83, 0xD1, 0x8E, 0xD1, 0x82 };
+static const symbol s_4_3[4] = { 0xD1, 0x8F, 0xD1, 0x82 };
+static const symbol s_4_4[4] = { 0xD0, 0xB5, 0xD1, 0x82 };
+static const symbol s_4_5[6] = { 0xD1, 0x83, 0xD0, 0xB5, 0xD1, 0x82 };
+static const symbol s_4_6[4] = { 0xD0, 0xB8, 0xD1, 0x82 };
+static const symbol s_4_7[4] = { 0xD0, 0xBD, 0xD1, 0x8B };
+static const symbol s_4_8[6] = { 0xD0, 0xB5, 0xD0, 0xBD, 0xD1, 0x8B };
+static const symbol s_4_9[4] = { 0xD1, 0x82, 0xD1, 0x8C };
+static const symbol s_4_10[6] = { 0xD1, 0x8B, 0xD1, 0x82, 0xD1, 0x8C };
+static const symbol s_4_11[6] = { 0xD0, 0xB8, 0xD1, 0x82, 0xD1, 0x8C };
+static const symbol s_4_12[6] = { 0xD0, 0xB5, 0xD1, 0x88, 0xD1, 0x8C };
+static const symbol s_4_13[6] = { 0xD0, 0xB8, 0xD1, 0x88, 0xD1, 0x8C };
+static const symbol s_4_14[2] = { 0xD1, 0x8E };
+static const symbol s_4_15[4] = { 0xD1, 0x83, 0xD1, 0x8E };
+static const symbol s_4_16[4] = { 0xD0, 0xBB, 0xD0, 0xB0 };
+static const symbol s_4_17[6] = { 0xD1, 0x8B, 0xD0, 0xBB, 0xD0, 0xB0 };
+static const symbol s_4_18[6] = { 0xD0, 0xB8, 0xD0, 0xBB, 0xD0, 0xB0 };
+static const symbol s_4_19[4] = { 0xD0, 0xBD, 0xD0, 0xB0 };
+static const symbol s_4_20[6] = { 0xD0, 0xB5, 0xD0, 0xBD, 0xD0, 0xB0 };
+static const symbol s_4_21[6] = { 0xD0, 0xB5, 0xD1, 0x82, 0xD0, 0xB5 };
+static const symbol s_4_22[6] = { 0xD0, 0xB8, 0xD1, 0x82, 0xD0, 0xB5 };
+static const symbol s_4_23[6] = { 0xD0, 0xB9, 0xD1, 0x82, 0xD0, 0xB5 };
+static const symbol s_4_24[8] = { 0xD1, 0x83, 0xD0, 0xB9, 0xD1, 0x82, 0xD0, 0xB5 };
+static const symbol s_4_25[8] = { 0xD0, 0xB5, 0xD0, 0xB9, 0xD1, 0x82, 0xD0, 0xB5 };
+static const symbol s_4_26[4] = { 0xD0, 0xBB, 0xD0, 0xB8 };
+static const symbol s_4_27[6] = { 0xD1, 0x8B, 0xD0, 0xBB, 0xD0, 0xB8 };
+static const symbol s_4_28[6] = { 0xD0, 0xB8, 0xD0, 0xBB, 0xD0, 0xB8 };
+static const symbol s_4_29[2] = { 0xD0, 0xB9 };
+static const symbol s_4_30[4] = { 0xD1, 0x83, 0xD0, 0xB9 };
+static const symbol s_4_31[4] = { 0xD0, 0xB5, 0xD0, 0xB9 };
+static const symbol s_4_32[2] = { 0xD0, 0xBB };
+static const symbol s_4_33[4] = { 0xD1, 0x8B, 0xD0, 0xBB };
+static const symbol s_4_34[4] = { 0xD0, 0xB8, 0xD0, 0xBB };
+static const symbol s_4_35[4] = { 0xD1, 0x8B, 0xD0, 0xBC };
+static const symbol s_4_36[4] = { 0xD0, 0xB5, 0xD0, 0xBC };
+static const symbol s_4_37[4] = { 0xD0, 0xB8, 0xD0, 0xBC };
+static const symbol s_4_38[2] = { 0xD0, 0xBD };
+static const symbol s_4_39[4] = { 0xD0, 0xB5, 0xD0, 0xBD };
+static const symbol s_4_40[4] = { 0xD0, 0xBB, 0xD0, 0xBE };
+static const symbol s_4_41[6] = { 0xD1, 0x8B, 0xD0, 0xBB, 0xD0, 0xBE };
+static const symbol s_4_42[6] = { 0xD0, 0xB8, 0xD0, 0xBB, 0xD0, 0xBE };
+static const symbol s_4_43[4] = { 0xD0, 0xBD, 0xD0, 0xBE };
+static const symbol s_4_44[6] = { 0xD0, 0xB5, 0xD0, 0xBD, 0xD0, 0xBE };
+static const symbol s_4_45[6] = { 0xD0, 0xBD, 0xD0, 0xBD, 0xD0, 0xBE };
+
+static const struct among a_4[46] =
+{
+{ 4, s_4_0, -1, 2, 0},
+{ 4, s_4_1, -1, 1, 0},
+{ 6, s_4_2, 1, 2, 0},
+{ 4, s_4_3, -1, 2, 0},
+{ 4, s_4_4, -1, 1, 0},
+{ 6, s_4_5, 4, 2, 0},
+{ 4, s_4_6, -1, 2, 0},
+{ 4, s_4_7, -1, 1, 0},
+{ 6, s_4_8, 7, 2, 0},
+{ 4, s_4_9, -1, 1, 0},
+{ 6, s_4_10, 9, 2, 0},
+{ 6, s_4_11, 9, 2, 0},
+{ 6, s_4_12, -1, 1, 0},
+{ 6, s_4_13, -1, 2, 0},
+{ 2, s_4_14, -1, 2, 0},
+{ 4, s_4_15, 14, 2, 0},
+{ 4, s_4_16, -1, 1, 0},
+{ 6, s_4_17, 16, 2, 0},
+{ 6, s_4_18, 16, 2, 0},
+{ 4, s_4_19, -1, 1, 0},
+{ 6, s_4_20, 19, 2, 0},
+{ 6, s_4_21, -1, 1, 0},
+{ 6, s_4_22, -1, 2, 0},
+{ 6, s_4_23, -1, 1, 0},
+{ 8, s_4_24, 23, 2, 0},
+{ 8, s_4_25, 23, 2, 0},
+{ 4, s_4_26, -1, 1, 0},
+{ 6, s_4_27, 26, 2, 0},
+{ 6, s_4_28, 26, 2, 0},
+{ 2, s_4_29, -1, 1, 0},
+{ 4, s_4_30, 29, 2, 0},
+{ 4, s_4_31, 29, 2, 0},
+{ 2, s_4_32, -1, 1, 0},
+{ 4, s_4_33, 32, 2, 0},
+{ 4, s_4_34, 32, 2, 0},
+{ 4, s_4_35, -1, 2, 0},
+{ 4, s_4_36, -1, 1, 0},
+{ 4, s_4_37, -1, 2, 0},
+{ 2, s_4_38, -1, 1, 0},
+{ 4, s_4_39, 38, 2, 0},
+{ 4, s_4_40, -1, 1, 0},
+{ 6, s_4_41, 40, 2, 0},
+{ 6, s_4_42, 40, 2, 0},
+{ 4, s_4_43, -1, 1, 0},
+{ 6, s_4_44, 43, 2, 0},
+{ 6, s_4_45, 43, 1, 0}
+};
+
+static const symbol s_5_0[2] = { 0xD1, 0x83 };
+static const symbol s_5_1[4] = { 0xD1, 0x8F, 0xD1, 0x85 };
+static const symbol s_5_2[6] = { 0xD0, 0xB8, 0xD1, 0x8F, 0xD1, 0x85 };
+static const symbol s_5_3[4] = { 0xD0, 0xB0, 0xD1, 0x85 };
+static const symbol s_5_4[2] = { 0xD1, 0x8B };
+static const symbol s_5_5[2] = { 0xD1, 0x8C };
+static const symbol s_5_6[2] = { 0xD1, 0x8E };
+static const symbol s_5_7[4] = { 0xD1, 0x8C, 0xD1, 0x8E };
+static const symbol s_5_8[4] = { 0xD0, 0xB8, 0xD1, 0x8E };
+static const symbol s_5_9[2] = { 0xD1, 0x8F };
+static const symbol s_5_10[4] = { 0xD1, 0x8C, 0xD1, 0x8F };
+static const symbol s_5_11[4] = { 0xD0, 0xB8, 0xD1, 0x8F };
+static const symbol s_5_12[2] = { 0xD0, 0xB0 };
+static const symbol s_5_13[4] = { 0xD0, 0xB5, 0xD0, 0xB2 };
+static const symbol s_5_14[4] = { 0xD0, 0xBE, 0xD0, 0xB2 };
+static const symbol s_5_15[2] = { 0xD0, 0xB5 };
+static const symbol s_5_16[4] = { 0xD1, 0x8C, 0xD0, 0xB5 };
+static const symbol s_5_17[4] = { 0xD0, 0xB8, 0xD0, 0xB5 };
+static const symbol s_5_18[2] = { 0xD0, 0xB8 };
+static const symbol s_5_19[4] = { 0xD0, 0xB5, 0xD0, 0xB8 };
+static const symbol s_5_20[4] = { 0xD0, 0xB8, 0xD0, 0xB8 };
+static const symbol s_5_21[6] = { 0xD1, 0x8F, 0xD0, 0xBC, 0xD0, 0xB8 };
+static const symbol s_5_22[8] = { 0xD0, 0xB8, 0xD1, 0x8F, 0xD0, 0xBC, 0xD0, 0xB8 };
+static const symbol s_5_23[6] = { 0xD0, 0xB0, 0xD0, 0xBC, 0xD0, 0xB8 };
+static const symbol s_5_24[2] = { 0xD0, 0xB9 };
+static const symbol s_5_25[4] = { 0xD0, 0xB5, 0xD0, 0xB9 };
+static const symbol s_5_26[6] = { 0xD0, 0xB8, 0xD0, 0xB5, 0xD0, 0xB9 };
+static const symbol s_5_27[4] = { 0xD0, 0xB8, 0xD0, 0xB9 };
+static const symbol s_5_28[4] = { 0xD0, 0xBE, 0xD0, 0xB9 };
+static const symbol s_5_29[4] = { 0xD1, 0x8F, 0xD0, 0xBC };
+static const symbol s_5_30[6] = { 0xD0, 0xB8, 0xD1, 0x8F, 0xD0, 0xBC };
+static const symbol s_5_31[4] = { 0xD0, 0xB0, 0xD0, 0xBC };
+static const symbol s_5_32[4] = { 0xD0, 0xB5, 0xD0, 0xBC };
+static const symbol s_5_33[6] = { 0xD0, 0xB8, 0xD0, 0xB5, 0xD0, 0xBC };
+static const symbol s_5_34[4] = { 0xD0, 0xBE, 0xD0, 0xBC };
+static const symbol s_5_35[2] = { 0xD0, 0xBE };
+
+static const struct among a_5[36] =
+{
+{ 2, s_5_0, -1, 1, 0},
+{ 4, s_5_1, -1, 1, 0},
+{ 6, s_5_2, 1, 1, 0},
+{ 4, s_5_3, -1, 1, 0},
+{ 2, s_5_4, -1, 1, 0},
+{ 2, s_5_5, -1, 1, 0},
+{ 2, s_5_6, -1, 1, 0},
+{ 4, s_5_7, 6, 1, 0},
+{ 4, s_5_8, 6, 1, 0},
+{ 2, s_5_9, -1, 1, 0},
+{ 4, s_5_10, 9, 1, 0},
+{ 4, s_5_11, 9, 1, 0},
+{ 2, s_5_12, -1, 1, 0},
+{ 4, s_5_13, -1, 1, 0},
+{ 4, s_5_14, -1, 1, 0},
+{ 2, s_5_15, -1, 1, 0},
+{ 4, s_5_16, 15, 1, 0},
+{ 4, s_5_17, 15, 1, 0},
+{ 2, s_5_18, -1, 1, 0},
+{ 4, s_5_19, 18, 1, 0},
+{ 4, s_5_20, 18, 1, 0},
+{ 6, s_5_21, 18, 1, 0},
+{ 8, s_5_22, 21, 1, 0},
+{ 6, s_5_23, 18, 1, 0},
+{ 2, s_5_24, -1, 1, 0},
+{ 4, s_5_25, 24, 1, 0},
+{ 6, s_5_26, 25, 1, 0},
+{ 4, s_5_27, 24, 1, 0},
+{ 4, s_5_28, 24, 1, 0},
+{ 4, s_5_29, -1, 1, 0},
+{ 6, s_5_30, 29, 1, 0},
+{ 4, s_5_31, -1, 1, 0},
+{ 4, s_5_32, -1, 1, 0},
+{ 6, s_5_33, 32, 1, 0},
+{ 4, s_5_34, -1, 1, 0},
+{ 2, s_5_35, -1, 1, 0}
+};
+
+static const symbol s_6_0[6] = { 0xD0, 0xBE, 0xD1, 0x81, 0xD1, 0x82 };
+static const symbol s_6_1[8] = { 0xD0, 0xBE, 0xD1, 0x81, 0xD1, 0x82, 0xD1, 0x8C };
+
+static const struct among a_6[2] =
+{
+{ 6, s_6_0, -1, 1, 0},
+{ 8, s_6_1, -1, 1, 0}
+};
+
+static const symbol s_7_0[6] = { 0xD0, 0xB5, 0xD0, 0xB9, 0xD1, 0x88 };
+static const symbol s_7_1[2] = { 0xD1, 0x8C };
+static const symbol s_7_2[8] = { 0xD0, 0xB5, 0xD0, 0xB9, 0xD1, 0x88, 0xD0, 0xB5 };
+static const symbol s_7_3[2] = { 0xD0, 0xBD };
+
+static const struct among a_7[4] =
+{
+{ 6, s_7_0, -1, 1, 0},
+{ 2, s_7_1, -1, 3, 0},
+{ 8, s_7_2, -1, 1, 0},
+{ 2, s_7_3, -1, 2, 0}
+};
+
+static const unsigned char g_v[] = { 33, 65, 8, 232 };
+
+static const symbol s_0[] = { 0xD0, 0xB0 };
+static const symbol s_1[] = { 0xD1, 0x8F };
+static const symbol s_2[] = { 0xD0, 0xB0 };
+static const symbol s_3[] = { 0xD1, 0x8F };
+static const symbol s_4[] = { 0xD0, 0xB0 };
+static const symbol s_5[] = { 0xD1, 0x8F };
+static const symbol s_6[] = { 0xD0, 0xBD };
+static const symbol s_7[] = { 0xD0, 0xBD };
+static const symbol s_8[] = { 0xD0, 0xBD };
+static const symbol s_9[] = { 0xD1, 0x91 };
+static const symbol s_10[] = { 0xD0, 0xB5 };
+static const symbol s_11[] = { 0xD0, 0xB8 };
+
+static int r_mark_regions(struct SN_env * z) {
+ z->I[1] = z->l;
+ z->I[0] = z->l;
+ { int c1 = z->c;
+ {
+ int ret = out_grouping_U(z, g_v, 1072, 1103, 1);
+ if (ret < 0) goto lab0;
+ z->c += ret;
+ }
+ z->I[1] = z->c;
+ {
+ int ret = in_grouping_U(z, g_v, 1072, 1103, 1);
+ if (ret < 0) goto lab0;
+ z->c += ret;
+ }
+ {
+ int ret = out_grouping_U(z, g_v, 1072, 1103, 1);
+ if (ret < 0) goto lab0;
+ z->c += ret;
+ }
+ {
+ int ret = in_grouping_U(z, g_v, 1072, 1103, 1);
+ if (ret < 0) goto lab0;
+ z->c += ret;
+ }
+ z->I[0] = z->c;
+ lab0:
+ z->c = c1;
+ }
+ return 1;
+}
+
+static int r_R2(struct SN_env * z) {
+ if (!(z->I[0] <= z->c)) return 0;
+ return 1;
+}
+
+static int r_perfective_gerund(struct SN_env * z) {
+ int among_var;
+ z->ket = z->c;
+ among_var = find_among_b(z, a_0, 9);
+ if (!(among_var)) return 0;
+ z->bra = z->c;
+ switch (among_var) {
+ case 1:
+ { int m1 = z->l - z->c; (void)m1;
+ if (!(eq_s_b(z, 2, s_0))) goto lab1;
+ goto lab0;
+ lab1:
+ z->c = z->l - m1;
+ if (!(eq_s_b(z, 2, s_1))) return 0;
+ }
+ lab0:
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 2:
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ break;
+ }
+ return 1;
+}
+
+static int r_adjective(struct SN_env * z) {
+ z->ket = z->c;
+ if (!(find_among_b(z, a_1, 26))) return 0;
+ z->bra = z->c;
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ return 1;
+}
+
+static int r_adjectival(struct SN_env * z) {
+ int among_var;
+ { int ret = r_adjective(z);
+ if (ret <= 0) return ret;
+ }
+ { int m1 = z->l - z->c; (void)m1;
+ z->ket = z->c;
+ among_var = find_among_b(z, a_2, 8);
+ if (!(among_var)) { z->c = z->l - m1; goto lab0; }
+ z->bra = z->c;
+ switch (among_var) {
+ case 1:
+ { int m2 = z->l - z->c; (void)m2;
+ if (!(eq_s_b(z, 2, s_2))) goto lab2;
+ goto lab1;
+ lab2:
+ z->c = z->l - m2;
+ if (!(eq_s_b(z, 2, s_3))) { z->c = z->l - m1; goto lab0; }
+ }
+ lab1:
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 2:
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ break;
+ }
+ lab0:
+ ;
+ }
+ return 1;
+}
+
+static int r_reflexive(struct SN_env * z) {
+ z->ket = z->c;
+ if (z->c - 3 <= z->lb || (z->p[z->c - 1] != 140 && z->p[z->c - 1] != 143)) return 0;
+ if (!(find_among_b(z, a_3, 2))) return 0;
+ z->bra = z->c;
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ return 1;
+}
+
+static int r_verb(struct SN_env * z) {
+ int among_var;
+ z->ket = z->c;
+ among_var = find_among_b(z, a_4, 46);
+ if (!(among_var)) return 0;
+ z->bra = z->c;
+ switch (among_var) {
+ case 1:
+ { int m1 = z->l - z->c; (void)m1;
+ if (!(eq_s_b(z, 2, s_4))) goto lab1;
+ goto lab0;
+ lab1:
+ z->c = z->l - m1;
+ if (!(eq_s_b(z, 2, s_5))) return 0;
+ }
+ lab0:
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 2:
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ break;
+ }
+ return 1;
+}
+
+static int r_noun(struct SN_env * z) {
+ z->ket = z->c;
+ if (!(find_among_b(z, a_5, 36))) return 0;
+ z->bra = z->c;
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ return 1;
+}
+
+static int r_derivational(struct SN_env * z) {
+ z->ket = z->c;
+ if (z->c - 5 <= z->lb || (z->p[z->c - 1] != 130 && z->p[z->c - 1] != 140)) return 0;
+ if (!(find_among_b(z, a_6, 2))) return 0;
+ z->bra = z->c;
+ { int ret = r_R2(z);
+ if (ret <= 0) return ret;
+ }
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ return 1;
+}
+
+static int r_tidy_up(struct SN_env * z) {
+ int among_var;
+ z->ket = z->c;
+ among_var = find_among_b(z, a_7, 4);
+ if (!(among_var)) return 0;
+ z->bra = z->c;
+ switch (among_var) {
+ case 1:
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ z->ket = z->c;
+ if (!(eq_s_b(z, 2, s_6))) return 0;
+ z->bra = z->c;
+ if (!(eq_s_b(z, 2, s_7))) return 0;
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 2:
+ if (!(eq_s_b(z, 2, s_8))) return 0;
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 3:
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ break;
+ }
+ return 1;
+}
+
+extern int russian_UTF_8_stem(struct SN_env * z) {
+ { int c1 = z->c;
+ while(1) {
+ int c2 = z->c;
+ while(1) {
+ int c3 = z->c;
+ z->bra = z->c;
+ if (!(eq_s(z, 2, s_9))) goto lab2;
+ z->ket = z->c;
+ z->c = c3;
+ break;
+ lab2:
+ z->c = c3;
+ { int ret = skip_utf8(z->p, z->c, z->l, 1);
+ if (ret < 0) goto lab1;
+ z->c = ret;
+ }
+ }
+ { int ret = slice_from_s(z, 2, s_10);
+ if (ret < 0) return ret;
+ }
+ continue;
+ lab1:
+ z->c = c2;
+ break;
+ }
+ z->c = c1;
+ }
+
+ { int ret = r_mark_regions(z);
+ if (ret < 0) return ret;
+ }
+ z->lb = z->c; z->c = z->l;
+
+
+ { int mlimit4;
+ if (z->c < z->I[1]) return 0;
+ mlimit4 = z->lb; z->lb = z->I[1];
+ { int m5 = z->l - z->c; (void)m5;
+ { int m6 = z->l - z->c; (void)m6;
+ { int ret = r_perfective_gerund(z);
+ if (ret == 0) goto lab5;
+ if (ret < 0) return ret;
+ }
+ goto lab4;
+ lab5:
+ z->c = z->l - m6;
+ { int m7 = z->l - z->c; (void)m7;
+ { int ret = r_reflexive(z);
+ if (ret == 0) { z->c = z->l - m7; goto lab6; }
+ if (ret < 0) return ret;
+ }
+ lab6:
+ ;
+ }
+ { int m8 = z->l - z->c; (void)m8;
+ { int ret = r_adjectival(z);
+ if (ret == 0) goto lab8;
+ if (ret < 0) return ret;
+ }
+ goto lab7;
+ lab8:
+ z->c = z->l - m8;
+ { int ret = r_verb(z);
+ if (ret == 0) goto lab9;
+ if (ret < 0) return ret;
+ }
+ goto lab7;
+ lab9:
+ z->c = z->l - m8;
+ { int ret = r_noun(z);
+ if (ret == 0) goto lab3;
+ if (ret < 0) return ret;
+ }
+ }
+ lab7:
+ ;
+ }
+ lab4:
+ lab3:
+ z->c = z->l - m5;
+ }
+ { int m9 = z->l - z->c; (void)m9;
+ z->ket = z->c;
+ if (!(eq_s_b(z, 2, s_11))) { z->c = z->l - m9; goto lab10; }
+ z->bra = z->c;
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ lab10:
+ ;
+ }
+ { int m10 = z->l - z->c; (void)m10;
+ { int ret = r_derivational(z);
+ if (ret < 0) return ret;
+ }
+ z->c = z->l - m10;
+ }
+ { int m11 = z->l - z->c; (void)m11;
+ { int ret = r_tidy_up(z);
+ if (ret < 0) return ret;
+ }
+ z->c = z->l - m11;
+ }
+ z->lb = mlimit4;
+ }
+ z->c = z->lb;
+ return 1;
+}
+
+extern struct SN_env * russian_UTF_8_create_env(void) { return SN_create_env(0, 2); }
+
+extern void russian_UTF_8_close_env(struct SN_env * z) { SN_close_env(z, 0); }
+
diff --git a/src/backend/snowball/libstemmer/stem_UTF_8_serbian.c b/src/backend/snowball/libstemmer/stem_UTF_8_serbian.c
new file mode 100644
index 0000000..d2d206e
--- /dev/null
+++ b/src/backend/snowball/libstemmer/stem_UTF_8_serbian.c
@@ -0,0 +1,6543 @@
+/* Generated by Snowball 2.2.0 - https://snowballstem.org/ */
+
+#include "header.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+extern int serbian_UTF_8_stem(struct SN_env * z);
+#ifdef __cplusplus
+}
+#endif
+static int r_Step_3(struct SN_env * z);
+static int r_Step_2(struct SN_env * z);
+static int r_Step_1(struct SN_env * z);
+static int r_R1(struct SN_env * z);
+static int r_mark_regions(struct SN_env * z);
+static int r_prelude(struct SN_env * z);
+static int r_cyr_to_lat(struct SN_env * z);
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+extern struct SN_env * serbian_UTF_8_create_env(void);
+extern void serbian_UTF_8_close_env(struct SN_env * z);
+
+
+#ifdef __cplusplus
+}
+#endif
+static const symbol s_0_0[2] = { 0xD0, 0xB0 };
+static const symbol s_0_1[2] = { 0xD0, 0xB1 };
+static const symbol s_0_2[2] = { 0xD0, 0xB2 };
+static const symbol s_0_3[2] = { 0xD0, 0xB3 };
+static const symbol s_0_4[2] = { 0xD0, 0xB4 };
+static const symbol s_0_5[2] = { 0xD0, 0xB5 };
+static const symbol s_0_6[2] = { 0xD0, 0xB6 };
+static const symbol s_0_7[2] = { 0xD0, 0xB7 };
+static const symbol s_0_8[2] = { 0xD0, 0xB8 };
+static const symbol s_0_9[2] = { 0xD0, 0xBA };
+static const symbol s_0_10[2] = { 0xD0, 0xBB };
+static const symbol s_0_11[2] = { 0xD0, 0xBC };
+static const symbol s_0_12[2] = { 0xD0, 0xBD };
+static const symbol s_0_13[2] = { 0xD0, 0xBE };
+static const symbol s_0_14[2] = { 0xD0, 0xBF };
+static const symbol s_0_15[2] = { 0xD1, 0x80 };
+static const symbol s_0_16[2] = { 0xD1, 0x81 };
+static const symbol s_0_17[2] = { 0xD1, 0x82 };
+static const symbol s_0_18[2] = { 0xD1, 0x83 };
+static const symbol s_0_19[2] = { 0xD1, 0x84 };
+static const symbol s_0_20[2] = { 0xD1, 0x85 };
+static const symbol s_0_21[2] = { 0xD1, 0x86 };
+static const symbol s_0_22[2] = { 0xD1, 0x87 };
+static const symbol s_0_23[2] = { 0xD1, 0x88 };
+static const symbol s_0_24[2] = { 0xD1, 0x92 };
+static const symbol s_0_25[2] = { 0xD1, 0x98 };
+static const symbol s_0_26[2] = { 0xD1, 0x99 };
+static const symbol s_0_27[2] = { 0xD1, 0x9A };
+static const symbol s_0_28[2] = { 0xD1, 0x9B };
+static const symbol s_0_29[2] = { 0xD1, 0x9F };
+
+static const struct among a_0[30] =
+{
+{ 2, s_0_0, -1, 1, 0},
+{ 2, s_0_1, -1, 2, 0},
+{ 2, s_0_2, -1, 3, 0},
+{ 2, s_0_3, -1, 4, 0},
+{ 2, s_0_4, -1, 5, 0},
+{ 2, s_0_5, -1, 7, 0},
+{ 2, s_0_6, -1, 8, 0},
+{ 2, s_0_7, -1, 9, 0},
+{ 2, s_0_8, -1, 10, 0},
+{ 2, s_0_9, -1, 12, 0},
+{ 2, s_0_10, -1, 13, 0},
+{ 2, s_0_11, -1, 15, 0},
+{ 2, s_0_12, -1, 16, 0},
+{ 2, s_0_13, -1, 18, 0},
+{ 2, s_0_14, -1, 19, 0},
+{ 2, s_0_15, -1, 20, 0},
+{ 2, s_0_16, -1, 21, 0},
+{ 2, s_0_17, -1, 22, 0},
+{ 2, s_0_18, -1, 24, 0},
+{ 2, s_0_19, -1, 25, 0},
+{ 2, s_0_20, -1, 26, 0},
+{ 2, s_0_21, -1, 27, 0},
+{ 2, s_0_22, -1, 28, 0},
+{ 2, s_0_23, -1, 30, 0},
+{ 2, s_0_24, -1, 6, 0},
+{ 2, s_0_25, -1, 11, 0},
+{ 2, s_0_26, -1, 14, 0},
+{ 2, s_0_27, -1, 17, 0},
+{ 2, s_0_28, -1, 23, 0},
+{ 2, s_0_29, -1, 29, 0}
+};
+
+static const symbol s_1_0[4] = { 'd', 'a', 'b', 'a' };
+static const symbol s_1_1[5] = { 'a', 'j', 'a', 'c', 'a' };
+static const symbol s_1_2[5] = { 'e', 'j', 'a', 'c', 'a' };
+static const symbol s_1_3[5] = { 'l', 'j', 'a', 'c', 'a' };
+static const symbol s_1_4[5] = { 'n', 'j', 'a', 'c', 'a' };
+static const symbol s_1_5[5] = { 'o', 'j', 'a', 'c', 'a' };
+static const symbol s_1_6[5] = { 'a', 'l', 'a', 'c', 'a' };
+static const symbol s_1_7[5] = { 'e', 'l', 'a', 'c', 'a' };
+static const symbol s_1_8[5] = { 'o', 'l', 'a', 'c', 'a' };
+static const symbol s_1_9[4] = { 'm', 'a', 'c', 'a' };
+static const symbol s_1_10[4] = { 'n', 'a', 'c', 'a' };
+static const symbol s_1_11[4] = { 'r', 'a', 'c', 'a' };
+static const symbol s_1_12[4] = { 's', 'a', 'c', 'a' };
+static const symbol s_1_13[4] = { 'v', 'a', 'c', 'a' };
+static const symbol s_1_14[5] = { 0xC5, 0xA1, 'a', 'c', 'a' };
+static const symbol s_1_15[4] = { 'a', 'o', 'c', 'a' };
+static const symbol s_1_16[5] = { 'a', 'c', 'a', 'k', 'a' };
+static const symbol s_1_17[5] = { 'a', 'j', 'a', 'k', 'a' };
+static const symbol s_1_18[5] = { 'o', 'j', 'a', 'k', 'a' };
+static const symbol s_1_19[5] = { 'a', 'n', 'a', 'k', 'a' };
+static const symbol s_1_20[5] = { 'a', 't', 'a', 'k', 'a' };
+static const symbol s_1_21[5] = { 'e', 't', 'a', 'k', 'a' };
+static const symbol s_1_22[5] = { 'i', 't', 'a', 'k', 'a' };
+static const symbol s_1_23[5] = { 'o', 't', 'a', 'k', 'a' };
+static const symbol s_1_24[5] = { 'u', 't', 'a', 'k', 'a' };
+static const symbol s_1_25[6] = { 'a', 0xC4, 0x8D, 'a', 'k', 'a' };
+static const symbol s_1_26[5] = { 'e', 's', 'a', 'm', 'a' };
+static const symbol s_1_27[5] = { 'i', 'z', 'a', 'm', 'a' };
+static const symbol s_1_28[6] = { 'j', 'a', 'c', 'i', 'm', 'a' };
+static const symbol s_1_29[6] = { 'n', 'i', 'c', 'i', 'm', 'a' };
+static const symbol s_1_30[6] = { 't', 'i', 'c', 'i', 'm', 'a' };
+static const symbol s_1_31[8] = { 't', 'e', 't', 'i', 'c', 'i', 'm', 'a' };
+static const symbol s_1_32[6] = { 'z', 'i', 'c', 'i', 'm', 'a' };
+static const symbol s_1_33[6] = { 'a', 't', 'c', 'i', 'm', 'a' };
+static const symbol s_1_34[6] = { 'u', 't', 'c', 'i', 'm', 'a' };
+static const symbol s_1_35[6] = { 0xC4, 0x8D, 'c', 'i', 'm', 'a' };
+static const symbol s_1_36[6] = { 'p', 'e', 's', 'i', 'm', 'a' };
+static const symbol s_1_37[6] = { 'i', 'n', 'z', 'i', 'm', 'a' };
+static const symbol s_1_38[6] = { 'l', 'o', 'z', 'i', 'm', 'a' };
+static const symbol s_1_39[6] = { 'm', 'e', 't', 'a', 'r', 'a' };
+static const symbol s_1_40[7] = { 'c', 'e', 'n', 't', 'a', 'r', 'a' };
+static const symbol s_1_41[6] = { 'i', 's', 't', 'a', 'r', 'a' };
+static const symbol s_1_42[5] = { 'e', 'k', 'a', 't', 'a' };
+static const symbol s_1_43[5] = { 'a', 'n', 'a', 't', 'a' };
+static const symbol s_1_44[6] = { 'n', 's', 't', 'a', 'v', 'a' };
+static const symbol s_1_45[7] = { 'k', 'u', 's', 't', 'a', 'v', 'a' };
+static const symbol s_1_46[4] = { 'a', 'j', 'a', 'c' };
+static const symbol s_1_47[4] = { 'e', 'j', 'a', 'c' };
+static const symbol s_1_48[4] = { 'l', 'j', 'a', 'c' };
+static const symbol s_1_49[4] = { 'n', 'j', 'a', 'c' };
+static const symbol s_1_50[5] = { 'a', 'n', 'j', 'a', 'c' };
+static const symbol s_1_51[4] = { 'o', 'j', 'a', 'c' };
+static const symbol s_1_52[4] = { 'a', 'l', 'a', 'c' };
+static const symbol s_1_53[4] = { 'e', 'l', 'a', 'c' };
+static const symbol s_1_54[4] = { 'o', 'l', 'a', 'c' };
+static const symbol s_1_55[3] = { 'm', 'a', 'c' };
+static const symbol s_1_56[3] = { 'n', 'a', 'c' };
+static const symbol s_1_57[3] = { 'r', 'a', 'c' };
+static const symbol s_1_58[3] = { 's', 'a', 'c' };
+static const symbol s_1_59[3] = { 'v', 'a', 'c' };
+static const symbol s_1_60[4] = { 0xC5, 0xA1, 'a', 'c' };
+static const symbol s_1_61[4] = { 'j', 'e', 'b', 'e' };
+static const symbol s_1_62[4] = { 'o', 'l', 'c', 'e' };
+static const symbol s_1_63[4] = { 'k', 'u', 's', 'e' };
+static const symbol s_1_64[4] = { 'r', 'a', 'v', 'e' };
+static const symbol s_1_65[4] = { 's', 'a', 'v', 'e' };
+static const symbol s_1_66[5] = { 0xC5, 0xA1, 'a', 'v', 'e' };
+static const symbol s_1_67[4] = { 'b', 'a', 'c', 'i' };
+static const symbol s_1_68[4] = { 'j', 'a', 'c', 'i' };
+static const symbol s_1_69[7] = { 't', 'v', 'e', 'n', 'i', 'c', 'i' };
+static const symbol s_1_70[5] = { 's', 'n', 'i', 'c', 'i' };
+static const symbol s_1_71[6] = { 't', 'e', 't', 'i', 'c', 'i' };
+static const symbol s_1_72[5] = { 'b', 'o', 'j', 'c', 'i' };
+static const symbol s_1_73[5] = { 'v', 'o', 'j', 'c', 'i' };
+static const symbol s_1_74[5] = { 'o', 'j', 's', 'c', 'i' };
+static const symbol s_1_75[4] = { 'a', 't', 'c', 'i' };
+static const symbol s_1_76[4] = { 'i', 't', 'c', 'i' };
+static const symbol s_1_77[4] = { 'u', 't', 'c', 'i' };
+static const symbol s_1_78[4] = { 0xC4, 0x8D, 'c', 'i' };
+static const symbol s_1_79[4] = { 'p', 'e', 's', 'i' };
+static const symbol s_1_80[4] = { 'i', 'n', 'z', 'i' };
+static const symbol s_1_81[4] = { 'l', 'o', 'z', 'i' };
+static const symbol s_1_82[4] = { 'a', 'c', 'a', 'k' };
+static const symbol s_1_83[4] = { 'u', 's', 'a', 'k' };
+static const symbol s_1_84[4] = { 'a', 't', 'a', 'k' };
+static const symbol s_1_85[4] = { 'e', 't', 'a', 'k' };
+static const symbol s_1_86[4] = { 'i', 't', 'a', 'k' };
+static const symbol s_1_87[4] = { 'o', 't', 'a', 'k' };
+static const symbol s_1_88[4] = { 'u', 't', 'a', 'k' };
+static const symbol s_1_89[5] = { 'a', 0xC4, 0x8D, 'a', 'k' };
+static const symbol s_1_90[5] = { 'u', 0xC5, 0xA1, 'a', 'k' };
+static const symbol s_1_91[4] = { 'i', 'z', 'a', 'm' };
+static const symbol s_1_92[5] = { 't', 'i', 'c', 'a', 'n' };
+static const symbol s_1_93[5] = { 'c', 'a', 'j', 'a', 'n' };
+static const symbol s_1_94[6] = { 0xC4, 0x8D, 'a', 'j', 'a', 'n' };
+static const symbol s_1_95[6] = { 'v', 'o', 'l', 'j', 'a', 'n' };
+static const symbol s_1_96[5] = { 'e', 's', 'k', 'a', 'n' };
+static const symbol s_1_97[4] = { 'a', 'l', 'a', 'n' };
+static const symbol s_1_98[5] = { 'b', 'i', 'l', 'a', 'n' };
+static const symbol s_1_99[5] = { 'g', 'i', 'l', 'a', 'n' };
+static const symbol s_1_100[5] = { 'n', 'i', 'l', 'a', 'n' };
+static const symbol s_1_101[5] = { 'r', 'i', 'l', 'a', 'n' };
+static const symbol s_1_102[5] = { 's', 'i', 'l', 'a', 'n' };
+static const symbol s_1_103[5] = { 't', 'i', 'l', 'a', 'n' };
+static const symbol s_1_104[6] = { 'a', 'v', 'i', 'l', 'a', 'n' };
+static const symbol s_1_105[5] = { 'l', 'a', 'r', 'a', 'n' };
+static const symbol s_1_106[4] = { 'e', 'r', 'a', 'n' };
+static const symbol s_1_107[4] = { 'a', 's', 'a', 'n' };
+static const symbol s_1_108[4] = { 'e', 's', 'a', 'n' };
+static const symbol s_1_109[5] = { 'd', 'u', 's', 'a', 'n' };
+static const symbol s_1_110[5] = { 'k', 'u', 's', 'a', 'n' };
+static const symbol s_1_111[4] = { 'a', 't', 'a', 'n' };
+static const symbol s_1_112[6] = { 'p', 'l', 'e', 't', 'a', 'n' };
+static const symbol s_1_113[5] = { 't', 'e', 't', 'a', 'n' };
+static const symbol s_1_114[5] = { 'a', 'n', 't', 'a', 'n' };
+static const symbol s_1_115[6] = { 'p', 'r', 'a', 'v', 'a', 'n' };
+static const symbol s_1_116[6] = { 's', 't', 'a', 'v', 'a', 'n' };
+static const symbol s_1_117[5] = { 's', 'i', 'v', 'a', 'n' };
+static const symbol s_1_118[5] = { 't', 'i', 'v', 'a', 'n' };
+static const symbol s_1_119[4] = { 'o', 'z', 'a', 'n' };
+static const symbol s_1_120[6] = { 't', 'i', 0xC4, 0x8D, 'a', 'n' };
+static const symbol s_1_121[5] = { 'a', 0xC5, 0xA1, 'a', 'n' };
+static const symbol s_1_122[6] = { 'd', 'u', 0xC5, 0xA1, 'a', 'n' };
+static const symbol s_1_123[5] = { 'm', 'e', 't', 'a', 'r' };
+static const symbol s_1_124[6] = { 'c', 'e', 'n', 't', 'a', 'r' };
+static const symbol s_1_125[5] = { 'i', 's', 't', 'a', 'r' };
+static const symbol s_1_126[4] = { 'e', 'k', 'a', 't' };
+static const symbol s_1_127[4] = { 'e', 'n', 'a', 't' };
+static const symbol s_1_128[4] = { 'o', 's', 'c', 'u' };
+static const symbol s_1_129[6] = { 'o', 0xC5, 0xA1, 0xC4, 0x87, 'u' };
+
+static const struct among a_1[130] =
+{
+{ 4, s_1_0, -1, 73, 0},
+{ 5, s_1_1, -1, 12, 0},
+{ 5, s_1_2, -1, 14, 0},
+{ 5, s_1_3, -1, 13, 0},
+{ 5, s_1_4, -1, 85, 0},
+{ 5, s_1_5, -1, 15, 0},
+{ 5, s_1_6, -1, 82, 0},
+{ 5, s_1_7, -1, 83, 0},
+{ 5, s_1_8, -1, 84, 0},
+{ 4, s_1_9, -1, 75, 0},
+{ 4, s_1_10, -1, 76, 0},
+{ 4, s_1_11, -1, 81, 0},
+{ 4, s_1_12, -1, 80, 0},
+{ 4, s_1_13, -1, 79, 0},
+{ 5, s_1_14, -1, 18, 0},
+{ 4, s_1_15, -1, 82, 0},
+{ 5, s_1_16, -1, 55, 0},
+{ 5, s_1_17, -1, 16, 0},
+{ 5, s_1_18, -1, 17, 0},
+{ 5, s_1_19, -1, 78, 0},
+{ 5, s_1_20, -1, 58, 0},
+{ 5, s_1_21, -1, 59, 0},
+{ 5, s_1_22, -1, 60, 0},
+{ 5, s_1_23, -1, 61, 0},
+{ 5, s_1_24, -1, 62, 0},
+{ 6, s_1_25, -1, 54, 0},
+{ 5, s_1_26, -1, 67, 0},
+{ 5, s_1_27, -1, 87, 0},
+{ 6, s_1_28, -1, 5, 0},
+{ 6, s_1_29, -1, 23, 0},
+{ 6, s_1_30, -1, 24, 0},
+{ 8, s_1_31, 30, 21, 0},
+{ 6, s_1_32, -1, 25, 0},
+{ 6, s_1_33, -1, 58, 0},
+{ 6, s_1_34, -1, 62, 0},
+{ 6, s_1_35, -1, 74, 0},
+{ 6, s_1_36, -1, 2, 0},
+{ 6, s_1_37, -1, 19, 0},
+{ 6, s_1_38, -1, 1, 0},
+{ 6, s_1_39, -1, 68, 0},
+{ 7, s_1_40, -1, 69, 0},
+{ 6, s_1_41, -1, 70, 0},
+{ 5, s_1_42, -1, 86, 0},
+{ 5, s_1_43, -1, 53, 0},
+{ 6, s_1_44, -1, 22, 0},
+{ 7, s_1_45, -1, 29, 0},
+{ 4, s_1_46, -1, 12, 0},
+{ 4, s_1_47, -1, 14, 0},
+{ 4, s_1_48, -1, 13, 0},
+{ 4, s_1_49, -1, 85, 0},
+{ 5, s_1_50, 49, 11, 0},
+{ 4, s_1_51, -1, 15, 0},
+{ 4, s_1_52, -1, 82, 0},
+{ 4, s_1_53, -1, 83, 0},
+{ 4, s_1_54, -1, 84, 0},
+{ 3, s_1_55, -1, 75, 0},
+{ 3, s_1_56, -1, 76, 0},
+{ 3, s_1_57, -1, 81, 0},
+{ 3, s_1_58, -1, 80, 0},
+{ 3, s_1_59, -1, 79, 0},
+{ 4, s_1_60, -1, 18, 0},
+{ 4, s_1_61, -1, 88, 0},
+{ 4, s_1_62, -1, 84, 0},
+{ 4, s_1_63, -1, 27, 0},
+{ 4, s_1_64, -1, 42, 0},
+{ 4, s_1_65, -1, 52, 0},
+{ 5, s_1_66, -1, 51, 0},
+{ 4, s_1_67, -1, 89, 0},
+{ 4, s_1_68, -1, 5, 0},
+{ 7, s_1_69, -1, 20, 0},
+{ 5, s_1_70, -1, 26, 0},
+{ 6, s_1_71, -1, 21, 0},
+{ 5, s_1_72, -1, 4, 0},
+{ 5, s_1_73, -1, 3, 0},
+{ 5, s_1_74, -1, 66, 0},
+{ 4, s_1_75, -1, 58, 0},
+{ 4, s_1_76, -1, 60, 0},
+{ 4, s_1_77, -1, 62, 0},
+{ 4, s_1_78, -1, 74, 0},
+{ 4, s_1_79, -1, 2, 0},
+{ 4, s_1_80, -1, 19, 0},
+{ 4, s_1_81, -1, 1, 0},
+{ 4, s_1_82, -1, 55, 0},
+{ 4, s_1_83, -1, 57, 0},
+{ 4, s_1_84, -1, 58, 0},
+{ 4, s_1_85, -1, 59, 0},
+{ 4, s_1_86, -1, 60, 0},
+{ 4, s_1_87, -1, 61, 0},
+{ 4, s_1_88, -1, 62, 0},
+{ 5, s_1_89, -1, 54, 0},
+{ 5, s_1_90, -1, 56, 0},
+{ 4, s_1_91, -1, 87, 0},
+{ 5, s_1_92, -1, 65, 0},
+{ 5, s_1_93, -1, 7, 0},
+{ 6, s_1_94, -1, 6, 0},
+{ 6, s_1_95, -1, 77, 0},
+{ 5, s_1_96, -1, 63, 0},
+{ 4, s_1_97, -1, 40, 0},
+{ 5, s_1_98, -1, 33, 0},
+{ 5, s_1_99, -1, 37, 0},
+{ 5, s_1_100, -1, 39, 0},
+{ 5, s_1_101, -1, 38, 0},
+{ 5, s_1_102, -1, 36, 0},
+{ 5, s_1_103, -1, 34, 0},
+{ 6, s_1_104, -1, 35, 0},
+{ 5, s_1_105, -1, 9, 0},
+{ 4, s_1_106, -1, 8, 0},
+{ 4, s_1_107, -1, 91, 0},
+{ 4, s_1_108, -1, 10, 0},
+{ 5, s_1_109, -1, 31, 0},
+{ 5, s_1_110, -1, 28, 0},
+{ 4, s_1_111, -1, 47, 0},
+{ 6, s_1_112, -1, 50, 0},
+{ 5, s_1_113, -1, 49, 0},
+{ 5, s_1_114, -1, 32, 0},
+{ 6, s_1_115, -1, 44, 0},
+{ 6, s_1_116, -1, 43, 0},
+{ 5, s_1_117, -1, 46, 0},
+{ 5, s_1_118, -1, 45, 0},
+{ 4, s_1_119, -1, 41, 0},
+{ 6, s_1_120, -1, 64, 0},
+{ 5, s_1_121, -1, 90, 0},
+{ 6, s_1_122, -1, 30, 0},
+{ 5, s_1_123, -1, 68, 0},
+{ 6, s_1_124, -1, 69, 0},
+{ 5, s_1_125, -1, 70, 0},
+{ 4, s_1_126, -1, 86, 0},
+{ 4, s_1_127, -1, 48, 0},
+{ 4, s_1_128, -1, 72, 0},
+{ 6, s_1_129, -1, 71, 0}
+};
+
+static const symbol s_2_0[3] = { 'a', 'c', 'a' };
+static const symbol s_2_1[3] = { 'e', 'c', 'a' };
+static const symbol s_2_2[3] = { 'u', 'c', 'a' };
+static const symbol s_2_3[2] = { 'g', 'a' };
+static const symbol s_2_4[5] = { 'a', 'c', 'e', 'g', 'a' };
+static const symbol s_2_5[5] = { 'e', 'c', 'e', 'g', 'a' };
+static const symbol s_2_6[5] = { 'u', 'c', 'e', 'g', 'a' };
+static const symbol s_2_7[8] = { 'a', 'n', 'j', 'i', 'j', 'e', 'g', 'a' };
+static const symbol s_2_8[8] = { 'e', 'n', 'j', 'i', 'j', 'e', 'g', 'a' };
+static const symbol s_2_9[8] = { 's', 'n', 'j', 'i', 'j', 'e', 'g', 'a' };
+static const symbol s_2_10[9] = { 0xC5, 0xA1, 'n', 'j', 'i', 'j', 'e', 'g', 'a' };
+static const symbol s_2_11[6] = { 'k', 'i', 'j', 'e', 'g', 'a' };
+static const symbol s_2_12[7] = { 's', 'k', 'i', 'j', 'e', 'g', 'a' };
+static const symbol s_2_13[8] = { 0xC5, 0xA1, 'k', 'i', 'j', 'e', 'g', 'a' };
+static const symbol s_2_14[7] = { 'e', 'l', 'i', 'j', 'e', 'g', 'a' };
+static const symbol s_2_15[6] = { 'n', 'i', 'j', 'e', 'g', 'a' };
+static const symbol s_2_16[7] = { 'o', 's', 'i', 'j', 'e', 'g', 'a' };
+static const symbol s_2_17[7] = { 'a', 't', 'i', 'j', 'e', 'g', 'a' };
+static const symbol s_2_18[9] = { 'e', 'v', 'i', 't', 'i', 'j', 'e', 'g', 'a' };
+static const symbol s_2_19[9] = { 'o', 'v', 'i', 't', 'i', 'j', 'e', 'g', 'a' };
+static const symbol s_2_20[8] = { 'a', 's', 't', 'i', 'j', 'e', 'g', 'a' };
+static const symbol s_2_21[7] = { 'a', 'v', 'i', 'j', 'e', 'g', 'a' };
+static const symbol s_2_22[7] = { 'e', 'v', 'i', 'j', 'e', 'g', 'a' };
+static const symbol s_2_23[7] = { 'i', 'v', 'i', 'j', 'e', 'g', 'a' };
+static const symbol s_2_24[7] = { 'o', 'v', 'i', 'j', 'e', 'g', 'a' };
+static const symbol s_2_25[8] = { 'o', 0xC5, 0xA1, 'i', 'j', 'e', 'g', 'a' };
+static const symbol s_2_26[6] = { 'a', 'n', 'j', 'e', 'g', 'a' };
+static const symbol s_2_27[6] = { 'e', 'n', 'j', 'e', 'g', 'a' };
+static const symbol s_2_28[6] = { 's', 'n', 'j', 'e', 'g', 'a' };
+static const symbol s_2_29[7] = { 0xC5, 0xA1, 'n', 'j', 'e', 'g', 'a' };
+static const symbol s_2_30[4] = { 'k', 'e', 'g', 'a' };
+static const symbol s_2_31[5] = { 's', 'k', 'e', 'g', 'a' };
+static const symbol s_2_32[6] = { 0xC5, 0xA1, 'k', 'e', 'g', 'a' };
+static const symbol s_2_33[5] = { 'e', 'l', 'e', 'g', 'a' };
+static const symbol s_2_34[4] = { 'n', 'e', 'g', 'a' };
+static const symbol s_2_35[5] = { 'a', 'n', 'e', 'g', 'a' };
+static const symbol s_2_36[5] = { 'e', 'n', 'e', 'g', 'a' };
+static const symbol s_2_37[5] = { 's', 'n', 'e', 'g', 'a' };
+static const symbol s_2_38[6] = { 0xC5, 0xA1, 'n', 'e', 'g', 'a' };
+static const symbol s_2_39[5] = { 'o', 's', 'e', 'g', 'a' };
+static const symbol s_2_40[5] = { 'a', 't', 'e', 'g', 'a' };
+static const symbol s_2_41[7] = { 'e', 'v', 'i', 't', 'e', 'g', 'a' };
+static const symbol s_2_42[7] = { 'o', 'v', 'i', 't', 'e', 'g', 'a' };
+static const symbol s_2_43[6] = { 'a', 's', 't', 'e', 'g', 'a' };
+static const symbol s_2_44[5] = { 'a', 'v', 'e', 'g', 'a' };
+static const symbol s_2_45[5] = { 'e', 'v', 'e', 'g', 'a' };
+static const symbol s_2_46[5] = { 'i', 'v', 'e', 'g', 'a' };
+static const symbol s_2_47[5] = { 'o', 'v', 'e', 'g', 'a' };
+static const symbol s_2_48[6] = { 'a', 0xC4, 0x87, 'e', 'g', 'a' };
+static const symbol s_2_49[6] = { 'e', 0xC4, 0x87, 'e', 'g', 'a' };
+static const symbol s_2_50[6] = { 'u', 0xC4, 0x87, 'e', 'g', 'a' };
+static const symbol s_2_51[6] = { 'o', 0xC5, 0xA1, 'e', 'g', 'a' };
+static const symbol s_2_52[5] = { 'a', 'c', 'o', 'g', 'a' };
+static const symbol s_2_53[5] = { 'e', 'c', 'o', 'g', 'a' };
+static const symbol s_2_54[5] = { 'u', 'c', 'o', 'g', 'a' };
+static const symbol s_2_55[6] = { 'a', 'n', 'j', 'o', 'g', 'a' };
+static const symbol s_2_56[6] = { 'e', 'n', 'j', 'o', 'g', 'a' };
+static const symbol s_2_57[6] = { 's', 'n', 'j', 'o', 'g', 'a' };
+static const symbol s_2_58[7] = { 0xC5, 0xA1, 'n', 'j', 'o', 'g', 'a' };
+static const symbol s_2_59[4] = { 'k', 'o', 'g', 'a' };
+static const symbol s_2_60[5] = { 's', 'k', 'o', 'g', 'a' };
+static const symbol s_2_61[6] = { 0xC5, 0xA1, 'k', 'o', 'g', 'a' };
+static const symbol s_2_62[4] = { 'l', 'o', 'g', 'a' };
+static const symbol s_2_63[5] = { 'e', 'l', 'o', 'g', 'a' };
+static const symbol s_2_64[4] = { 'n', 'o', 'g', 'a' };
+static const symbol s_2_65[6] = { 'c', 'i', 'n', 'o', 'g', 'a' };
+static const symbol s_2_66[7] = { 0xC4, 0x8D, 'i', 'n', 'o', 'g', 'a' };
+static const symbol s_2_67[5] = { 'o', 's', 'o', 'g', 'a' };
+static const symbol s_2_68[5] = { 'a', 't', 'o', 'g', 'a' };
+static const symbol s_2_69[7] = { 'e', 'v', 'i', 't', 'o', 'g', 'a' };
+static const symbol s_2_70[7] = { 'o', 'v', 'i', 't', 'o', 'g', 'a' };
+static const symbol s_2_71[6] = { 'a', 's', 't', 'o', 'g', 'a' };
+static const symbol s_2_72[5] = { 'a', 'v', 'o', 'g', 'a' };
+static const symbol s_2_73[5] = { 'e', 'v', 'o', 'g', 'a' };
+static const symbol s_2_74[5] = { 'i', 'v', 'o', 'g', 'a' };
+static const symbol s_2_75[5] = { 'o', 'v', 'o', 'g', 'a' };
+static const symbol s_2_76[6] = { 'a', 0xC4, 0x87, 'o', 'g', 'a' };
+static const symbol s_2_77[6] = { 'e', 0xC4, 0x87, 'o', 'g', 'a' };
+static const symbol s_2_78[6] = { 'u', 0xC4, 0x87, 'o', 'g', 'a' };
+static const symbol s_2_79[6] = { 'o', 0xC5, 0xA1, 'o', 'g', 'a' };
+static const symbol s_2_80[3] = { 'u', 'g', 'a' };
+static const symbol s_2_81[3] = { 'a', 'j', 'a' };
+static const symbol s_2_82[4] = { 'c', 'a', 'j', 'a' };
+static const symbol s_2_83[4] = { 'l', 'a', 'j', 'a' };
+static const symbol s_2_84[4] = { 'r', 'a', 'j', 'a' };
+static const symbol s_2_85[5] = { 0xC4, 0x87, 'a', 'j', 'a' };
+static const symbol s_2_86[5] = { 0xC4, 0x8D, 'a', 'j', 'a' };
+static const symbol s_2_87[5] = { 0xC4, 0x91, 'a', 'j', 'a' };
+static const symbol s_2_88[4] = { 'b', 'i', 'j', 'a' };
+static const symbol s_2_89[4] = { 'c', 'i', 'j', 'a' };
+static const symbol s_2_90[4] = { 'd', 'i', 'j', 'a' };
+static const symbol s_2_91[4] = { 'f', 'i', 'j', 'a' };
+static const symbol s_2_92[4] = { 'g', 'i', 'j', 'a' };
+static const symbol s_2_93[6] = { 'a', 'n', 'j', 'i', 'j', 'a' };
+static const symbol s_2_94[6] = { 'e', 'n', 'j', 'i', 'j', 'a' };
+static const symbol s_2_95[6] = { 's', 'n', 'j', 'i', 'j', 'a' };
+static const symbol s_2_96[7] = { 0xC5, 0xA1, 'n', 'j', 'i', 'j', 'a' };
+static const symbol s_2_97[4] = { 'k', 'i', 'j', 'a' };
+static const symbol s_2_98[5] = { 's', 'k', 'i', 'j', 'a' };
+static const symbol s_2_99[6] = { 0xC5, 0xA1, 'k', 'i', 'j', 'a' };
+static const symbol s_2_100[4] = { 'l', 'i', 'j', 'a' };
+static const symbol s_2_101[5] = { 'e', 'l', 'i', 'j', 'a' };
+static const symbol s_2_102[4] = { 'm', 'i', 'j', 'a' };
+static const symbol s_2_103[4] = { 'n', 'i', 'j', 'a' };
+static const symbol s_2_104[6] = { 'g', 'a', 'n', 'i', 'j', 'a' };
+static const symbol s_2_105[6] = { 'm', 'a', 'n', 'i', 'j', 'a' };
+static const symbol s_2_106[6] = { 'p', 'a', 'n', 'i', 'j', 'a' };
+static const symbol s_2_107[6] = { 'r', 'a', 'n', 'i', 'j', 'a' };
+static const symbol s_2_108[6] = { 't', 'a', 'n', 'i', 'j', 'a' };
+static const symbol s_2_109[4] = { 'p', 'i', 'j', 'a' };
+static const symbol s_2_110[4] = { 'r', 'i', 'j', 'a' };
+static const symbol s_2_111[6] = { 'r', 'a', 'r', 'i', 'j', 'a' };
+static const symbol s_2_112[4] = { 's', 'i', 'j', 'a' };
+static const symbol s_2_113[5] = { 'o', 's', 'i', 'j', 'a' };
+static const symbol s_2_114[4] = { 't', 'i', 'j', 'a' };
+static const symbol s_2_115[5] = { 'a', 't', 'i', 'j', 'a' };
+static const symbol s_2_116[7] = { 'e', 'v', 'i', 't', 'i', 'j', 'a' };
+static const symbol s_2_117[7] = { 'o', 'v', 'i', 't', 'i', 'j', 'a' };
+static const symbol s_2_118[5] = { 'o', 't', 'i', 'j', 'a' };
+static const symbol s_2_119[6] = { 'a', 's', 't', 'i', 'j', 'a' };
+static const symbol s_2_120[5] = { 'a', 'v', 'i', 'j', 'a' };
+static const symbol s_2_121[5] = { 'e', 'v', 'i', 'j', 'a' };
+static const symbol s_2_122[5] = { 'i', 'v', 'i', 'j', 'a' };
+static const symbol s_2_123[5] = { 'o', 'v', 'i', 'j', 'a' };
+static const symbol s_2_124[4] = { 'z', 'i', 'j', 'a' };
+static const symbol s_2_125[6] = { 'o', 0xC5, 0xA1, 'i', 'j', 'a' };
+static const symbol s_2_126[5] = { 0xC5, 0xBE, 'i', 'j', 'a' };
+static const symbol s_2_127[4] = { 'a', 'n', 'j', 'a' };
+static const symbol s_2_128[4] = { 'e', 'n', 'j', 'a' };
+static const symbol s_2_129[4] = { 's', 'n', 'j', 'a' };
+static const symbol s_2_130[5] = { 0xC5, 0xA1, 'n', 'j', 'a' };
+static const symbol s_2_131[2] = { 'k', 'a' };
+static const symbol s_2_132[3] = { 's', 'k', 'a' };
+static const symbol s_2_133[4] = { 0xC5, 0xA1, 'k', 'a' };
+static const symbol s_2_134[3] = { 'a', 'l', 'a' };
+static const symbol s_2_135[5] = { 'a', 'c', 'a', 'l', 'a' };
+static const symbol s_2_136[8] = { 'a', 's', 't', 'a', 'j', 'a', 'l', 'a' };
+static const symbol s_2_137[8] = { 'i', 's', 't', 'a', 'j', 'a', 'l', 'a' };
+static const symbol s_2_138[8] = { 'o', 's', 't', 'a', 'j', 'a', 'l', 'a' };
+static const symbol s_2_139[5] = { 'i', 'j', 'a', 'l', 'a' };
+static const symbol s_2_140[6] = { 'i', 'n', 'j', 'a', 'l', 'a' };
+static const symbol s_2_141[4] = { 'n', 'a', 'l', 'a' };
+static const symbol s_2_142[5] = { 'i', 'r', 'a', 'l', 'a' };
+static const symbol s_2_143[5] = { 'u', 'r', 'a', 'l', 'a' };
+static const symbol s_2_144[4] = { 't', 'a', 'l', 'a' };
+static const symbol s_2_145[6] = { 'a', 's', 't', 'a', 'l', 'a' };
+static const symbol s_2_146[6] = { 'i', 's', 't', 'a', 'l', 'a' };
+static const symbol s_2_147[6] = { 'o', 's', 't', 'a', 'l', 'a' };
+static const symbol s_2_148[5] = { 'a', 'v', 'a', 'l', 'a' };
+static const symbol s_2_149[5] = { 'e', 'v', 'a', 'l', 'a' };
+static const symbol s_2_150[5] = { 'i', 'v', 'a', 'l', 'a' };
+static const symbol s_2_151[5] = { 'o', 'v', 'a', 'l', 'a' };
+static const symbol s_2_152[5] = { 'u', 'v', 'a', 'l', 'a' };
+static const symbol s_2_153[6] = { 'a', 0xC4, 0x8D, 'a', 'l', 'a' };
+static const symbol s_2_154[3] = { 'e', 'l', 'a' };
+static const symbol s_2_155[3] = { 'i', 'l', 'a' };
+static const symbol s_2_156[5] = { 'a', 'c', 'i', 'l', 'a' };
+static const symbol s_2_157[6] = { 'l', 'u', 'c', 'i', 'l', 'a' };
+static const symbol s_2_158[4] = { 'n', 'i', 'l', 'a' };
+static const symbol s_2_159[8] = { 'a', 's', 't', 'a', 'n', 'i', 'l', 'a' };
+static const symbol s_2_160[8] = { 'i', 's', 't', 'a', 'n', 'i', 'l', 'a' };
+static const symbol s_2_161[8] = { 'o', 's', 't', 'a', 'n', 'i', 'l', 'a' };
+static const symbol s_2_162[6] = { 'r', 'o', 's', 'i', 'l', 'a' };
+static const symbol s_2_163[6] = { 'j', 'e', 't', 'i', 'l', 'a' };
+static const symbol s_2_164[5] = { 'o', 'z', 'i', 'l', 'a' };
+static const symbol s_2_165[6] = { 'a', 0xC4, 0x8D, 'i', 'l', 'a' };
+static const symbol s_2_166[7] = { 'l', 'u', 0xC4, 0x8D, 'i', 'l', 'a' };
+static const symbol s_2_167[7] = { 'r', 'o', 0xC5, 0xA1, 'i', 'l', 'a' };
+static const symbol s_2_168[3] = { 'o', 'l', 'a' };
+static const symbol s_2_169[4] = { 'a', 's', 'l', 'a' };
+static const symbol s_2_170[4] = { 'n', 'u', 'l', 'a' };
+static const symbol s_2_171[4] = { 'g', 'a', 'm', 'a' };
+static const symbol s_2_172[6] = { 'l', 'o', 'g', 'a', 'm', 'a' };
+static const symbol s_2_173[5] = { 'u', 'g', 'a', 'm', 'a' };
+static const symbol s_2_174[5] = { 'a', 'j', 'a', 'm', 'a' };
+static const symbol s_2_175[6] = { 'c', 'a', 'j', 'a', 'm', 'a' };
+static const symbol s_2_176[6] = { 'l', 'a', 'j', 'a', 'm', 'a' };
+static const symbol s_2_177[6] = { 'r', 'a', 'j', 'a', 'm', 'a' };
+static const symbol s_2_178[7] = { 0xC4, 0x87, 'a', 'j', 'a', 'm', 'a' };
+static const symbol s_2_179[7] = { 0xC4, 0x8D, 'a', 'j', 'a', 'm', 'a' };
+static const symbol s_2_180[7] = { 0xC4, 0x91, 'a', 'j', 'a', 'm', 'a' };
+static const symbol s_2_181[6] = { 'b', 'i', 'j', 'a', 'm', 'a' };
+static const symbol s_2_182[6] = { 'c', 'i', 'j', 'a', 'm', 'a' };
+static const symbol s_2_183[6] = { 'd', 'i', 'j', 'a', 'm', 'a' };
+static const symbol s_2_184[6] = { 'f', 'i', 'j', 'a', 'm', 'a' };
+static const symbol s_2_185[6] = { 'g', 'i', 'j', 'a', 'm', 'a' };
+static const symbol s_2_186[6] = { 'l', 'i', 'j', 'a', 'm', 'a' };
+static const symbol s_2_187[6] = { 'm', 'i', 'j', 'a', 'm', 'a' };
+static const symbol s_2_188[6] = { 'n', 'i', 'j', 'a', 'm', 'a' };
+static const symbol s_2_189[8] = { 'g', 'a', 'n', 'i', 'j', 'a', 'm', 'a' };
+static const symbol s_2_190[8] = { 'm', 'a', 'n', 'i', 'j', 'a', 'm', 'a' };
+static const symbol s_2_191[8] = { 'p', 'a', 'n', 'i', 'j', 'a', 'm', 'a' };
+static const symbol s_2_192[8] = { 'r', 'a', 'n', 'i', 'j', 'a', 'm', 'a' };
+static const symbol s_2_193[8] = { 't', 'a', 'n', 'i', 'j', 'a', 'm', 'a' };
+static const symbol s_2_194[6] = { 'p', 'i', 'j', 'a', 'm', 'a' };
+static const symbol s_2_195[6] = { 'r', 'i', 'j', 'a', 'm', 'a' };
+static const symbol s_2_196[6] = { 's', 'i', 'j', 'a', 'm', 'a' };
+static const symbol s_2_197[6] = { 't', 'i', 'j', 'a', 'm', 'a' };
+static const symbol s_2_198[6] = { 'z', 'i', 'j', 'a', 'm', 'a' };
+static const symbol s_2_199[7] = { 0xC5, 0xBE, 'i', 'j', 'a', 'm', 'a' };
+static const symbol s_2_200[5] = { 'a', 'l', 'a', 'm', 'a' };
+static const symbol s_2_201[7] = { 'i', 'j', 'a', 'l', 'a', 'm', 'a' };
+static const symbol s_2_202[6] = { 'n', 'a', 'l', 'a', 'm', 'a' };
+static const symbol s_2_203[5] = { 'e', 'l', 'a', 'm', 'a' };
+static const symbol s_2_204[5] = { 'i', 'l', 'a', 'm', 'a' };
+static const symbol s_2_205[6] = { 'r', 'a', 'm', 'a', 'm', 'a' };
+static const symbol s_2_206[6] = { 'l', 'e', 'm', 'a', 'm', 'a' };
+static const symbol s_2_207[5] = { 'i', 'n', 'a', 'm', 'a' };
+static const symbol s_2_208[6] = { 'c', 'i', 'n', 'a', 'm', 'a' };
+static const symbol s_2_209[7] = { 0xC4, 0x8D, 'i', 'n', 'a', 'm', 'a' };
+static const symbol s_2_210[4] = { 'r', 'a', 'm', 'a' };
+static const symbol s_2_211[5] = { 'a', 'r', 'a', 'm', 'a' };
+static const symbol s_2_212[5] = { 'd', 'r', 'a', 'm', 'a' };
+static const symbol s_2_213[5] = { 'e', 'r', 'a', 'm', 'a' };
+static const symbol s_2_214[5] = { 'o', 'r', 'a', 'm', 'a' };
+static const symbol s_2_215[6] = { 'b', 'a', 's', 'a', 'm', 'a' };
+static const symbol s_2_216[6] = { 'g', 'a', 's', 'a', 'm', 'a' };
+static const symbol s_2_217[6] = { 'j', 'a', 's', 'a', 'm', 'a' };
+static const symbol s_2_218[6] = { 'k', 'a', 's', 'a', 'm', 'a' };
+static const symbol s_2_219[6] = { 'n', 'a', 's', 'a', 'm', 'a' };
+static const symbol s_2_220[6] = { 't', 'a', 's', 'a', 'm', 'a' };
+static const symbol s_2_221[6] = { 'v', 'a', 's', 'a', 'm', 'a' };
+static const symbol s_2_222[5] = { 'e', 's', 'a', 'm', 'a' };
+static const symbol s_2_223[5] = { 'i', 's', 'a', 'm', 'a' };
+static const symbol s_2_224[5] = { 'e', 't', 'a', 'm', 'a' };
+static const symbol s_2_225[6] = { 'e', 's', 't', 'a', 'm', 'a' };
+static const symbol s_2_226[6] = { 'i', 's', 't', 'a', 'm', 'a' };
+static const symbol s_2_227[6] = { 'k', 's', 't', 'a', 'm', 'a' };
+static const symbol s_2_228[6] = { 'o', 's', 't', 'a', 'm', 'a' };
+static const symbol s_2_229[5] = { 'a', 'v', 'a', 'm', 'a' };
+static const symbol s_2_230[5] = { 'e', 'v', 'a', 'm', 'a' };
+static const symbol s_2_231[5] = { 'i', 'v', 'a', 'm', 'a' };
+static const symbol s_2_232[7] = { 'b', 'a', 0xC5, 0xA1, 'a', 'm', 'a' };
+static const symbol s_2_233[7] = { 'g', 'a', 0xC5, 0xA1, 'a', 'm', 'a' };
+static const symbol s_2_234[7] = { 'j', 'a', 0xC5, 0xA1, 'a', 'm', 'a' };
+static const symbol s_2_235[7] = { 'k', 'a', 0xC5, 0xA1, 'a', 'm', 'a' };
+static const symbol s_2_236[7] = { 'n', 'a', 0xC5, 0xA1, 'a', 'm', 'a' };
+static const symbol s_2_237[7] = { 't', 'a', 0xC5, 0xA1, 'a', 'm', 'a' };
+static const symbol s_2_238[7] = { 'v', 'a', 0xC5, 0xA1, 'a', 'm', 'a' };
+static const symbol s_2_239[6] = { 'e', 0xC5, 0xA1, 'a', 'm', 'a' };
+static const symbol s_2_240[6] = { 'i', 0xC5, 0xA1, 'a', 'm', 'a' };
+static const symbol s_2_241[4] = { 'l', 'e', 'm', 'a' };
+static const symbol s_2_242[5] = { 'a', 'c', 'i', 'm', 'a' };
+static const symbol s_2_243[5] = { 'e', 'c', 'i', 'm', 'a' };
+static const symbol s_2_244[5] = { 'u', 'c', 'i', 'm', 'a' };
+static const symbol s_2_245[5] = { 'a', 'j', 'i', 'm', 'a' };
+static const symbol s_2_246[6] = { 'c', 'a', 'j', 'i', 'm', 'a' };
+static const symbol s_2_247[6] = { 'l', 'a', 'j', 'i', 'm', 'a' };
+static const symbol s_2_248[6] = { 'r', 'a', 'j', 'i', 'm', 'a' };
+static const symbol s_2_249[7] = { 0xC4, 0x87, 'a', 'j', 'i', 'm', 'a' };
+static const symbol s_2_250[7] = { 0xC4, 0x8D, 'a', 'j', 'i', 'm', 'a' };
+static const symbol s_2_251[7] = { 0xC4, 0x91, 'a', 'j', 'i', 'm', 'a' };
+static const symbol s_2_252[6] = { 'b', 'i', 'j', 'i', 'm', 'a' };
+static const symbol s_2_253[6] = { 'c', 'i', 'j', 'i', 'm', 'a' };
+static const symbol s_2_254[6] = { 'd', 'i', 'j', 'i', 'm', 'a' };
+static const symbol s_2_255[6] = { 'f', 'i', 'j', 'i', 'm', 'a' };
+static const symbol s_2_256[6] = { 'g', 'i', 'j', 'i', 'm', 'a' };
+static const symbol s_2_257[8] = { 'a', 'n', 'j', 'i', 'j', 'i', 'm', 'a' };
+static const symbol s_2_258[8] = { 'e', 'n', 'j', 'i', 'j', 'i', 'm', 'a' };
+static const symbol s_2_259[8] = { 's', 'n', 'j', 'i', 'j', 'i', 'm', 'a' };
+static const symbol s_2_260[9] = { 0xC5, 0xA1, 'n', 'j', 'i', 'j', 'i', 'm', 'a' };
+static const symbol s_2_261[6] = { 'k', 'i', 'j', 'i', 'm', 'a' };
+static const symbol s_2_262[7] = { 's', 'k', 'i', 'j', 'i', 'm', 'a' };
+static const symbol s_2_263[8] = { 0xC5, 0xA1, 'k', 'i', 'j', 'i', 'm', 'a' };
+static const symbol s_2_264[6] = { 'l', 'i', 'j', 'i', 'm', 'a' };
+static const symbol s_2_265[7] = { 'e', 'l', 'i', 'j', 'i', 'm', 'a' };
+static const symbol s_2_266[6] = { 'm', 'i', 'j', 'i', 'm', 'a' };
+static const symbol s_2_267[6] = { 'n', 'i', 'j', 'i', 'm', 'a' };
+static const symbol s_2_268[8] = { 'g', 'a', 'n', 'i', 'j', 'i', 'm', 'a' };
+static const symbol s_2_269[8] = { 'm', 'a', 'n', 'i', 'j', 'i', 'm', 'a' };
+static const symbol s_2_270[8] = { 'p', 'a', 'n', 'i', 'j', 'i', 'm', 'a' };
+static const symbol s_2_271[8] = { 'r', 'a', 'n', 'i', 'j', 'i', 'm', 'a' };
+static const symbol s_2_272[8] = { 't', 'a', 'n', 'i', 'j', 'i', 'm', 'a' };
+static const symbol s_2_273[6] = { 'p', 'i', 'j', 'i', 'm', 'a' };
+static const symbol s_2_274[6] = { 'r', 'i', 'j', 'i', 'm', 'a' };
+static const symbol s_2_275[6] = { 's', 'i', 'j', 'i', 'm', 'a' };
+static const symbol s_2_276[7] = { 'o', 's', 'i', 'j', 'i', 'm', 'a' };
+static const symbol s_2_277[6] = { 't', 'i', 'j', 'i', 'm', 'a' };
+static const symbol s_2_278[7] = { 'a', 't', 'i', 'j', 'i', 'm', 'a' };
+static const symbol s_2_279[9] = { 'e', 'v', 'i', 't', 'i', 'j', 'i', 'm', 'a' };
+static const symbol s_2_280[9] = { 'o', 'v', 'i', 't', 'i', 'j', 'i', 'm', 'a' };
+static const symbol s_2_281[8] = { 'a', 's', 't', 'i', 'j', 'i', 'm', 'a' };
+static const symbol s_2_282[7] = { 'a', 'v', 'i', 'j', 'i', 'm', 'a' };
+static const symbol s_2_283[7] = { 'e', 'v', 'i', 'j', 'i', 'm', 'a' };
+static const symbol s_2_284[7] = { 'i', 'v', 'i', 'j', 'i', 'm', 'a' };
+static const symbol s_2_285[7] = { 'o', 'v', 'i', 'j', 'i', 'm', 'a' };
+static const symbol s_2_286[6] = { 'z', 'i', 'j', 'i', 'm', 'a' };
+static const symbol s_2_287[8] = { 'o', 0xC5, 0xA1, 'i', 'j', 'i', 'm', 'a' };
+static const symbol s_2_288[7] = { 0xC5, 0xBE, 'i', 'j', 'i', 'm', 'a' };
+static const symbol s_2_289[6] = { 'a', 'n', 'j', 'i', 'm', 'a' };
+static const symbol s_2_290[6] = { 'e', 'n', 'j', 'i', 'm', 'a' };
+static const symbol s_2_291[6] = { 's', 'n', 'j', 'i', 'm', 'a' };
+static const symbol s_2_292[7] = { 0xC5, 0xA1, 'n', 'j', 'i', 'm', 'a' };
+static const symbol s_2_293[4] = { 'k', 'i', 'm', 'a' };
+static const symbol s_2_294[5] = { 's', 'k', 'i', 'm', 'a' };
+static const symbol s_2_295[6] = { 0xC5, 0xA1, 'k', 'i', 'm', 'a' };
+static const symbol s_2_296[5] = { 'a', 'l', 'i', 'm', 'a' };
+static const symbol s_2_297[7] = { 'i', 'j', 'a', 'l', 'i', 'm', 'a' };
+static const symbol s_2_298[6] = { 'n', 'a', 'l', 'i', 'm', 'a' };
+static const symbol s_2_299[5] = { 'e', 'l', 'i', 'm', 'a' };
+static const symbol s_2_300[5] = { 'i', 'l', 'i', 'm', 'a' };
+static const symbol s_2_301[7] = { 'o', 'z', 'i', 'l', 'i', 'm', 'a' };
+static const symbol s_2_302[5] = { 'o', 'l', 'i', 'm', 'a' };
+static const symbol s_2_303[6] = { 'l', 'e', 'm', 'i', 'm', 'a' };
+static const symbol s_2_304[4] = { 'n', 'i', 'm', 'a' };
+static const symbol s_2_305[5] = { 'a', 'n', 'i', 'm', 'a' };
+static const symbol s_2_306[5] = { 'i', 'n', 'i', 'm', 'a' };
+static const symbol s_2_307[6] = { 'c', 'i', 'n', 'i', 'm', 'a' };
+static const symbol s_2_308[7] = { 0xC4, 0x8D, 'i', 'n', 'i', 'm', 'a' };
+static const symbol s_2_309[5] = { 'o', 'n', 'i', 'm', 'a' };
+static const symbol s_2_310[5] = { 'a', 'r', 'i', 'm', 'a' };
+static const symbol s_2_311[5] = { 'd', 'r', 'i', 'm', 'a' };
+static const symbol s_2_312[5] = { 'e', 'r', 'i', 'm', 'a' };
+static const symbol s_2_313[5] = { 'o', 'r', 'i', 'm', 'a' };
+static const symbol s_2_314[6] = { 'b', 'a', 's', 'i', 'm', 'a' };
+static const symbol s_2_315[6] = { 'g', 'a', 's', 'i', 'm', 'a' };
+static const symbol s_2_316[6] = { 'j', 'a', 's', 'i', 'm', 'a' };
+static const symbol s_2_317[6] = { 'k', 'a', 's', 'i', 'm', 'a' };
+static const symbol s_2_318[6] = { 'n', 'a', 's', 'i', 'm', 'a' };
+static const symbol s_2_319[6] = { 't', 'a', 's', 'i', 'm', 'a' };
+static const symbol s_2_320[6] = { 'v', 'a', 's', 'i', 'm', 'a' };
+static const symbol s_2_321[5] = { 'e', 's', 'i', 'm', 'a' };
+static const symbol s_2_322[5] = { 'i', 's', 'i', 'm', 'a' };
+static const symbol s_2_323[5] = { 'o', 's', 'i', 'm', 'a' };
+static const symbol s_2_324[5] = { 'a', 't', 'i', 'm', 'a' };
+static const symbol s_2_325[7] = { 'i', 'k', 'a', 't', 'i', 'm', 'a' };
+static const symbol s_2_326[6] = { 'l', 'a', 't', 'i', 'm', 'a' };
+static const symbol s_2_327[5] = { 'e', 't', 'i', 'm', 'a' };
+static const symbol s_2_328[7] = { 'e', 'v', 'i', 't', 'i', 'm', 'a' };
+static const symbol s_2_329[7] = { 'o', 'v', 'i', 't', 'i', 'm', 'a' };
+static const symbol s_2_330[6] = { 'a', 's', 't', 'i', 'm', 'a' };
+static const symbol s_2_331[6] = { 'e', 's', 't', 'i', 'm', 'a' };
+static const symbol s_2_332[6] = { 'i', 's', 't', 'i', 'm', 'a' };
+static const symbol s_2_333[6] = { 'k', 's', 't', 'i', 'm', 'a' };
+static const symbol s_2_334[6] = { 'o', 's', 't', 'i', 'm', 'a' };
+static const symbol s_2_335[7] = { 'i', 0xC5, 0xA1, 't', 'i', 'm', 'a' };
+static const symbol s_2_336[5] = { 'a', 'v', 'i', 'm', 'a' };
+static const symbol s_2_337[5] = { 'e', 'v', 'i', 'm', 'a' };
+static const symbol s_2_338[7] = { 'a', 'j', 'e', 'v', 'i', 'm', 'a' };
+static const symbol s_2_339[8] = { 'c', 'a', 'j', 'e', 'v', 'i', 'm', 'a' };
+static const symbol s_2_340[8] = { 'l', 'a', 'j', 'e', 'v', 'i', 'm', 'a' };
+static const symbol s_2_341[8] = { 'r', 'a', 'j', 'e', 'v', 'i', 'm', 'a' };
+static const symbol s_2_342[9] = { 0xC4, 0x87, 'a', 'j', 'e', 'v', 'i', 'm', 'a' };
+static const symbol s_2_343[9] = { 0xC4, 0x8D, 'a', 'j', 'e', 'v', 'i', 'm', 'a' };
+static const symbol s_2_344[9] = { 0xC4, 0x91, 'a', 'j', 'e', 'v', 'i', 'm', 'a' };
+static const symbol s_2_345[5] = { 'i', 'v', 'i', 'm', 'a' };
+static const symbol s_2_346[5] = { 'o', 'v', 'i', 'm', 'a' };
+static const symbol s_2_347[6] = { 'g', 'o', 'v', 'i', 'm', 'a' };
+static const symbol s_2_348[7] = { 'u', 'g', 'o', 'v', 'i', 'm', 'a' };
+static const symbol s_2_349[6] = { 'l', 'o', 'v', 'i', 'm', 'a' };
+static const symbol s_2_350[7] = { 'o', 'l', 'o', 'v', 'i', 'm', 'a' };
+static const symbol s_2_351[6] = { 'm', 'o', 'v', 'i', 'm', 'a' };
+static const symbol s_2_352[7] = { 'o', 'n', 'o', 'v', 'i', 'm', 'a' };
+static const symbol s_2_353[6] = { 's', 't', 'v', 'i', 'm', 'a' };
+static const symbol s_2_354[7] = { 0xC5, 0xA1, 't', 'v', 'i', 'm', 'a' };
+static const symbol s_2_355[6] = { 'a', 0xC4, 0x87, 'i', 'm', 'a' };
+static const symbol s_2_356[6] = { 'e', 0xC4, 0x87, 'i', 'm', 'a' };
+static const symbol s_2_357[6] = { 'u', 0xC4, 0x87, 'i', 'm', 'a' };
+static const symbol s_2_358[7] = { 'b', 'a', 0xC5, 0xA1, 'i', 'm', 'a' };
+static const symbol s_2_359[7] = { 'g', 'a', 0xC5, 0xA1, 'i', 'm', 'a' };
+static const symbol s_2_360[7] = { 'j', 'a', 0xC5, 0xA1, 'i', 'm', 'a' };
+static const symbol s_2_361[7] = { 'k', 'a', 0xC5, 0xA1, 'i', 'm', 'a' };
+static const symbol s_2_362[7] = { 'n', 'a', 0xC5, 0xA1, 'i', 'm', 'a' };
+static const symbol s_2_363[7] = { 't', 'a', 0xC5, 0xA1, 'i', 'm', 'a' };
+static const symbol s_2_364[7] = { 'v', 'a', 0xC5, 0xA1, 'i', 'm', 'a' };
+static const symbol s_2_365[6] = { 'e', 0xC5, 0xA1, 'i', 'm', 'a' };
+static const symbol s_2_366[6] = { 'i', 0xC5, 0xA1, 'i', 'm', 'a' };
+static const symbol s_2_367[6] = { 'o', 0xC5, 0xA1, 'i', 'm', 'a' };
+static const symbol s_2_368[2] = { 'n', 'a' };
+static const symbol s_2_369[3] = { 'a', 'n', 'a' };
+static const symbol s_2_370[5] = { 'a', 'c', 'a', 'n', 'a' };
+static const symbol s_2_371[5] = { 'u', 'r', 'a', 'n', 'a' };
+static const symbol s_2_372[4] = { 't', 'a', 'n', 'a' };
+static const symbol s_2_373[5] = { 'a', 'v', 'a', 'n', 'a' };
+static const symbol s_2_374[5] = { 'e', 'v', 'a', 'n', 'a' };
+static const symbol s_2_375[5] = { 'i', 'v', 'a', 'n', 'a' };
+static const symbol s_2_376[5] = { 'u', 'v', 'a', 'n', 'a' };
+static const symbol s_2_377[6] = { 'a', 0xC4, 0x8D, 'a', 'n', 'a' };
+static const symbol s_2_378[5] = { 'a', 'c', 'e', 'n', 'a' };
+static const symbol s_2_379[6] = { 'l', 'u', 'c', 'e', 'n', 'a' };
+static const symbol s_2_380[6] = { 'a', 0xC4, 0x8D, 'e', 'n', 'a' };
+static const symbol s_2_381[7] = { 'l', 'u', 0xC4, 0x8D, 'e', 'n', 'a' };
+static const symbol s_2_382[3] = { 'i', 'n', 'a' };
+static const symbol s_2_383[4] = { 'c', 'i', 'n', 'a' };
+static const symbol s_2_384[5] = { 'a', 'n', 'i', 'n', 'a' };
+static const symbol s_2_385[5] = { 0xC4, 0x8D, 'i', 'n', 'a' };
+static const symbol s_2_386[3] = { 'o', 'n', 'a' };
+static const symbol s_2_387[3] = { 'a', 'r', 'a' };
+static const symbol s_2_388[3] = { 'd', 'r', 'a' };
+static const symbol s_2_389[3] = { 'e', 'r', 'a' };
+static const symbol s_2_390[3] = { 'o', 'r', 'a' };
+static const symbol s_2_391[4] = { 'b', 'a', 's', 'a' };
+static const symbol s_2_392[4] = { 'g', 'a', 's', 'a' };
+static const symbol s_2_393[4] = { 'j', 'a', 's', 'a' };
+static const symbol s_2_394[4] = { 'k', 'a', 's', 'a' };
+static const symbol s_2_395[4] = { 'n', 'a', 's', 'a' };
+static const symbol s_2_396[4] = { 't', 'a', 's', 'a' };
+static const symbol s_2_397[4] = { 'v', 'a', 's', 'a' };
+static const symbol s_2_398[3] = { 'e', 's', 'a' };
+static const symbol s_2_399[3] = { 'i', 's', 'a' };
+static const symbol s_2_400[3] = { 'o', 's', 'a' };
+static const symbol s_2_401[3] = { 'a', 't', 'a' };
+static const symbol s_2_402[5] = { 'i', 'k', 'a', 't', 'a' };
+static const symbol s_2_403[4] = { 'l', 'a', 't', 'a' };
+static const symbol s_2_404[3] = { 'e', 't', 'a' };
+static const symbol s_2_405[5] = { 'e', 'v', 'i', 't', 'a' };
+static const symbol s_2_406[5] = { 'o', 'v', 'i', 't', 'a' };
+static const symbol s_2_407[4] = { 'a', 's', 't', 'a' };
+static const symbol s_2_408[4] = { 'e', 's', 't', 'a' };
+static const symbol s_2_409[4] = { 'i', 's', 't', 'a' };
+static const symbol s_2_410[4] = { 'k', 's', 't', 'a' };
+static const symbol s_2_411[4] = { 'o', 's', 't', 'a' };
+static const symbol s_2_412[4] = { 'n', 'u', 't', 'a' };
+static const symbol s_2_413[5] = { 'i', 0xC5, 0xA1, 't', 'a' };
+static const symbol s_2_414[3] = { 'a', 'v', 'a' };
+static const symbol s_2_415[3] = { 'e', 'v', 'a' };
+static const symbol s_2_416[5] = { 'a', 'j', 'e', 'v', 'a' };
+static const symbol s_2_417[6] = { 'c', 'a', 'j', 'e', 'v', 'a' };
+static const symbol s_2_418[6] = { 'l', 'a', 'j', 'e', 'v', 'a' };
+static const symbol s_2_419[6] = { 'r', 'a', 'j', 'e', 'v', 'a' };
+static const symbol s_2_420[7] = { 0xC4, 0x87, 'a', 'j', 'e', 'v', 'a' };
+static const symbol s_2_421[7] = { 0xC4, 0x8D, 'a', 'j', 'e', 'v', 'a' };
+static const symbol s_2_422[7] = { 0xC4, 0x91, 'a', 'j', 'e', 'v', 'a' };
+static const symbol s_2_423[3] = { 'i', 'v', 'a' };
+static const symbol s_2_424[3] = { 'o', 'v', 'a' };
+static const symbol s_2_425[4] = { 'g', 'o', 'v', 'a' };
+static const symbol s_2_426[5] = { 'u', 'g', 'o', 'v', 'a' };
+static const symbol s_2_427[4] = { 'l', 'o', 'v', 'a' };
+static const symbol s_2_428[5] = { 'o', 'l', 'o', 'v', 'a' };
+static const symbol s_2_429[4] = { 'm', 'o', 'v', 'a' };
+static const symbol s_2_430[5] = { 'o', 'n', 'o', 'v', 'a' };
+static const symbol s_2_431[4] = { 's', 't', 'v', 'a' };
+static const symbol s_2_432[5] = { 0xC5, 0xA1, 't', 'v', 'a' };
+static const symbol s_2_433[4] = { 'a', 0xC4, 0x87, 'a' };
+static const symbol s_2_434[4] = { 'e', 0xC4, 0x87, 'a' };
+static const symbol s_2_435[4] = { 'u', 0xC4, 0x87, 'a' };
+static const symbol s_2_436[5] = { 'b', 'a', 0xC5, 0xA1, 'a' };
+static const symbol s_2_437[5] = { 'g', 'a', 0xC5, 0xA1, 'a' };
+static const symbol s_2_438[5] = { 'j', 'a', 0xC5, 0xA1, 'a' };
+static const symbol s_2_439[5] = { 'k', 'a', 0xC5, 0xA1, 'a' };
+static const symbol s_2_440[5] = { 'n', 'a', 0xC5, 0xA1, 'a' };
+static const symbol s_2_441[5] = { 't', 'a', 0xC5, 0xA1, 'a' };
+static const symbol s_2_442[5] = { 'v', 'a', 0xC5, 0xA1, 'a' };
+static const symbol s_2_443[4] = { 'e', 0xC5, 0xA1, 'a' };
+static const symbol s_2_444[4] = { 'i', 0xC5, 0xA1, 'a' };
+static const symbol s_2_445[4] = { 'o', 0xC5, 0xA1, 'a' };
+static const symbol s_2_446[3] = { 'a', 'c', 'e' };
+static const symbol s_2_447[3] = { 'e', 'c', 'e' };
+static const symbol s_2_448[3] = { 'u', 'c', 'e' };
+static const symbol s_2_449[4] = { 'l', 'u', 'c', 'e' };
+static const symbol s_2_450[6] = { 'a', 's', 't', 'a', 'd', 'e' };
+static const symbol s_2_451[6] = { 'i', 's', 't', 'a', 'd', 'e' };
+static const symbol s_2_452[6] = { 'o', 's', 't', 'a', 'd', 'e' };
+static const symbol s_2_453[2] = { 'g', 'e' };
+static const symbol s_2_454[4] = { 'l', 'o', 'g', 'e' };
+static const symbol s_2_455[3] = { 'u', 'g', 'e' };
+static const symbol s_2_456[3] = { 'a', 'j', 'e' };
+static const symbol s_2_457[4] = { 'c', 'a', 'j', 'e' };
+static const symbol s_2_458[4] = { 'l', 'a', 'j', 'e' };
+static const symbol s_2_459[4] = { 'r', 'a', 'j', 'e' };
+static const symbol s_2_460[6] = { 'a', 's', 't', 'a', 'j', 'e' };
+static const symbol s_2_461[6] = { 'i', 's', 't', 'a', 'j', 'e' };
+static const symbol s_2_462[6] = { 'o', 's', 't', 'a', 'j', 'e' };
+static const symbol s_2_463[5] = { 0xC4, 0x87, 'a', 'j', 'e' };
+static const symbol s_2_464[5] = { 0xC4, 0x8D, 'a', 'j', 'e' };
+static const symbol s_2_465[5] = { 0xC4, 0x91, 'a', 'j', 'e' };
+static const symbol s_2_466[3] = { 'i', 'j', 'e' };
+static const symbol s_2_467[4] = { 'b', 'i', 'j', 'e' };
+static const symbol s_2_468[4] = { 'c', 'i', 'j', 'e' };
+static const symbol s_2_469[4] = { 'd', 'i', 'j', 'e' };
+static const symbol s_2_470[4] = { 'f', 'i', 'j', 'e' };
+static const symbol s_2_471[4] = { 'g', 'i', 'j', 'e' };
+static const symbol s_2_472[6] = { 'a', 'n', 'j', 'i', 'j', 'e' };
+static const symbol s_2_473[6] = { 'e', 'n', 'j', 'i', 'j', 'e' };
+static const symbol s_2_474[6] = { 's', 'n', 'j', 'i', 'j', 'e' };
+static const symbol s_2_475[7] = { 0xC5, 0xA1, 'n', 'j', 'i', 'j', 'e' };
+static const symbol s_2_476[4] = { 'k', 'i', 'j', 'e' };
+static const symbol s_2_477[5] = { 's', 'k', 'i', 'j', 'e' };
+static const symbol s_2_478[6] = { 0xC5, 0xA1, 'k', 'i', 'j', 'e' };
+static const symbol s_2_479[4] = { 'l', 'i', 'j', 'e' };
+static const symbol s_2_480[5] = { 'e', 'l', 'i', 'j', 'e' };
+static const symbol s_2_481[4] = { 'm', 'i', 'j', 'e' };
+static const symbol s_2_482[4] = { 'n', 'i', 'j', 'e' };
+static const symbol s_2_483[6] = { 'g', 'a', 'n', 'i', 'j', 'e' };
+static const symbol s_2_484[6] = { 'm', 'a', 'n', 'i', 'j', 'e' };
+static const symbol s_2_485[6] = { 'p', 'a', 'n', 'i', 'j', 'e' };
+static const symbol s_2_486[6] = { 'r', 'a', 'n', 'i', 'j', 'e' };
+static const symbol s_2_487[6] = { 't', 'a', 'n', 'i', 'j', 'e' };
+static const symbol s_2_488[4] = { 'p', 'i', 'j', 'e' };
+static const symbol s_2_489[4] = { 'r', 'i', 'j', 'e' };
+static const symbol s_2_490[4] = { 's', 'i', 'j', 'e' };
+static const symbol s_2_491[5] = { 'o', 's', 'i', 'j', 'e' };
+static const symbol s_2_492[4] = { 't', 'i', 'j', 'e' };
+static const symbol s_2_493[5] = { 'a', 't', 'i', 'j', 'e' };
+static const symbol s_2_494[7] = { 'e', 'v', 'i', 't', 'i', 'j', 'e' };
+static const symbol s_2_495[7] = { 'o', 'v', 'i', 't', 'i', 'j', 'e' };
+static const symbol s_2_496[6] = { 'a', 's', 't', 'i', 'j', 'e' };
+static const symbol s_2_497[5] = { 'a', 'v', 'i', 'j', 'e' };
+static const symbol s_2_498[5] = { 'e', 'v', 'i', 'j', 'e' };
+static const symbol s_2_499[5] = { 'i', 'v', 'i', 'j', 'e' };
+static const symbol s_2_500[5] = { 'o', 'v', 'i', 'j', 'e' };
+static const symbol s_2_501[4] = { 'z', 'i', 'j', 'e' };
+static const symbol s_2_502[6] = { 'o', 0xC5, 0xA1, 'i', 'j', 'e' };
+static const symbol s_2_503[5] = { 0xC5, 0xBE, 'i', 'j', 'e' };
+static const symbol s_2_504[4] = { 'a', 'n', 'j', 'e' };
+static const symbol s_2_505[4] = { 'e', 'n', 'j', 'e' };
+static const symbol s_2_506[4] = { 's', 'n', 'j', 'e' };
+static const symbol s_2_507[5] = { 0xC5, 0xA1, 'n', 'j', 'e' };
+static const symbol s_2_508[3] = { 'u', 'j', 'e' };
+static const symbol s_2_509[6] = { 'l', 'u', 'c', 'u', 'j', 'e' };
+static const symbol s_2_510[5] = { 'i', 'r', 'u', 'j', 'e' };
+static const symbol s_2_511[7] = { 'l', 'u', 0xC4, 0x8D, 'u', 'j', 'e' };
+static const symbol s_2_512[2] = { 'k', 'e' };
+static const symbol s_2_513[3] = { 's', 'k', 'e' };
+static const symbol s_2_514[4] = { 0xC5, 0xA1, 'k', 'e' };
+static const symbol s_2_515[3] = { 'a', 'l', 'e' };
+static const symbol s_2_516[5] = { 'a', 'c', 'a', 'l', 'e' };
+static const symbol s_2_517[8] = { 'a', 's', 't', 'a', 'j', 'a', 'l', 'e' };
+static const symbol s_2_518[8] = { 'i', 's', 't', 'a', 'j', 'a', 'l', 'e' };
+static const symbol s_2_519[8] = { 'o', 's', 't', 'a', 'j', 'a', 'l', 'e' };
+static const symbol s_2_520[5] = { 'i', 'j', 'a', 'l', 'e' };
+static const symbol s_2_521[6] = { 'i', 'n', 'j', 'a', 'l', 'e' };
+static const symbol s_2_522[4] = { 'n', 'a', 'l', 'e' };
+static const symbol s_2_523[5] = { 'i', 'r', 'a', 'l', 'e' };
+static const symbol s_2_524[5] = { 'u', 'r', 'a', 'l', 'e' };
+static const symbol s_2_525[4] = { 't', 'a', 'l', 'e' };
+static const symbol s_2_526[6] = { 'a', 's', 't', 'a', 'l', 'e' };
+static const symbol s_2_527[6] = { 'i', 's', 't', 'a', 'l', 'e' };
+static const symbol s_2_528[6] = { 'o', 's', 't', 'a', 'l', 'e' };
+static const symbol s_2_529[5] = { 'a', 'v', 'a', 'l', 'e' };
+static const symbol s_2_530[5] = { 'e', 'v', 'a', 'l', 'e' };
+static const symbol s_2_531[5] = { 'i', 'v', 'a', 'l', 'e' };
+static const symbol s_2_532[5] = { 'o', 'v', 'a', 'l', 'e' };
+static const symbol s_2_533[5] = { 'u', 'v', 'a', 'l', 'e' };
+static const symbol s_2_534[6] = { 'a', 0xC4, 0x8D, 'a', 'l', 'e' };
+static const symbol s_2_535[3] = { 'e', 'l', 'e' };
+static const symbol s_2_536[3] = { 'i', 'l', 'e' };
+static const symbol s_2_537[5] = { 'a', 'c', 'i', 'l', 'e' };
+static const symbol s_2_538[6] = { 'l', 'u', 'c', 'i', 'l', 'e' };
+static const symbol s_2_539[4] = { 'n', 'i', 'l', 'e' };
+static const symbol s_2_540[6] = { 'r', 'o', 's', 'i', 'l', 'e' };
+static const symbol s_2_541[6] = { 'j', 'e', 't', 'i', 'l', 'e' };
+static const symbol s_2_542[5] = { 'o', 'z', 'i', 'l', 'e' };
+static const symbol s_2_543[6] = { 'a', 0xC4, 0x8D, 'i', 'l', 'e' };
+static const symbol s_2_544[7] = { 'l', 'u', 0xC4, 0x8D, 'i', 'l', 'e' };
+static const symbol s_2_545[7] = { 'r', 'o', 0xC5, 0xA1, 'i', 'l', 'e' };
+static const symbol s_2_546[3] = { 'o', 'l', 'e' };
+static const symbol s_2_547[4] = { 'a', 's', 'l', 'e' };
+static const symbol s_2_548[4] = { 'n', 'u', 'l', 'e' };
+static const symbol s_2_549[4] = { 'r', 'a', 'm', 'e' };
+static const symbol s_2_550[4] = { 'l', 'e', 'm', 'e' };
+static const symbol s_2_551[5] = { 'a', 'c', 'o', 'm', 'e' };
+static const symbol s_2_552[5] = { 'e', 'c', 'o', 'm', 'e' };
+static const symbol s_2_553[5] = { 'u', 'c', 'o', 'm', 'e' };
+static const symbol s_2_554[6] = { 'a', 'n', 'j', 'o', 'm', 'e' };
+static const symbol s_2_555[6] = { 'e', 'n', 'j', 'o', 'm', 'e' };
+static const symbol s_2_556[6] = { 's', 'n', 'j', 'o', 'm', 'e' };
+static const symbol s_2_557[7] = { 0xC5, 0xA1, 'n', 'j', 'o', 'm', 'e' };
+static const symbol s_2_558[4] = { 'k', 'o', 'm', 'e' };
+static const symbol s_2_559[5] = { 's', 'k', 'o', 'm', 'e' };
+static const symbol s_2_560[6] = { 0xC5, 0xA1, 'k', 'o', 'm', 'e' };
+static const symbol s_2_561[5] = { 'e', 'l', 'o', 'm', 'e' };
+static const symbol s_2_562[4] = { 'n', 'o', 'm', 'e' };
+static const symbol s_2_563[6] = { 'c', 'i', 'n', 'o', 'm', 'e' };
+static const symbol s_2_564[7] = { 0xC4, 0x8D, 'i', 'n', 'o', 'm', 'e' };
+static const symbol s_2_565[5] = { 'o', 's', 'o', 'm', 'e' };
+static const symbol s_2_566[5] = { 'a', 't', 'o', 'm', 'e' };
+static const symbol s_2_567[7] = { 'e', 'v', 'i', 't', 'o', 'm', 'e' };
+static const symbol s_2_568[7] = { 'o', 'v', 'i', 't', 'o', 'm', 'e' };
+static const symbol s_2_569[6] = { 'a', 's', 't', 'o', 'm', 'e' };
+static const symbol s_2_570[5] = { 'a', 'v', 'o', 'm', 'e' };
+static const symbol s_2_571[5] = { 'e', 'v', 'o', 'm', 'e' };
+static const symbol s_2_572[5] = { 'i', 'v', 'o', 'm', 'e' };
+static const symbol s_2_573[5] = { 'o', 'v', 'o', 'm', 'e' };
+static const symbol s_2_574[6] = { 'a', 0xC4, 0x87, 'o', 'm', 'e' };
+static const symbol s_2_575[6] = { 'e', 0xC4, 0x87, 'o', 'm', 'e' };
+static const symbol s_2_576[6] = { 'u', 0xC4, 0x87, 'o', 'm', 'e' };
+static const symbol s_2_577[6] = { 'o', 0xC5, 0xA1, 'o', 'm', 'e' };
+static const symbol s_2_578[2] = { 'n', 'e' };
+static const symbol s_2_579[3] = { 'a', 'n', 'e' };
+static const symbol s_2_580[5] = { 'a', 'c', 'a', 'n', 'e' };
+static const symbol s_2_581[5] = { 'u', 'r', 'a', 'n', 'e' };
+static const symbol s_2_582[4] = { 't', 'a', 'n', 'e' };
+static const symbol s_2_583[6] = { 'a', 's', 't', 'a', 'n', 'e' };
+static const symbol s_2_584[6] = { 'i', 's', 't', 'a', 'n', 'e' };
+static const symbol s_2_585[6] = { 'o', 's', 't', 'a', 'n', 'e' };
+static const symbol s_2_586[5] = { 'a', 'v', 'a', 'n', 'e' };
+static const symbol s_2_587[5] = { 'e', 'v', 'a', 'n', 'e' };
+static const symbol s_2_588[5] = { 'i', 'v', 'a', 'n', 'e' };
+static const symbol s_2_589[5] = { 'u', 'v', 'a', 'n', 'e' };
+static const symbol s_2_590[6] = { 'a', 0xC4, 0x8D, 'a', 'n', 'e' };
+static const symbol s_2_591[5] = { 'a', 'c', 'e', 'n', 'e' };
+static const symbol s_2_592[6] = { 'l', 'u', 'c', 'e', 'n', 'e' };
+static const symbol s_2_593[6] = { 'a', 0xC4, 0x8D, 'e', 'n', 'e' };
+static const symbol s_2_594[7] = { 'l', 'u', 0xC4, 0x8D, 'e', 'n', 'e' };
+static const symbol s_2_595[3] = { 'i', 'n', 'e' };
+static const symbol s_2_596[4] = { 'c', 'i', 'n', 'e' };
+static const symbol s_2_597[5] = { 'a', 'n', 'i', 'n', 'e' };
+static const symbol s_2_598[5] = { 0xC4, 0x8D, 'i', 'n', 'e' };
+static const symbol s_2_599[3] = { 'o', 'n', 'e' };
+static const symbol s_2_600[3] = { 'a', 'r', 'e' };
+static const symbol s_2_601[3] = { 'd', 'r', 'e' };
+static const symbol s_2_602[3] = { 'e', 'r', 'e' };
+static const symbol s_2_603[3] = { 'o', 'r', 'e' };
+static const symbol s_2_604[3] = { 'a', 's', 'e' };
+static const symbol s_2_605[4] = { 'b', 'a', 's', 'e' };
+static const symbol s_2_606[5] = { 'a', 'c', 'a', 's', 'e' };
+static const symbol s_2_607[4] = { 'g', 'a', 's', 'e' };
+static const symbol s_2_608[4] = { 'j', 'a', 's', 'e' };
+static const symbol s_2_609[8] = { 'a', 's', 't', 'a', 'j', 'a', 's', 'e' };
+static const symbol s_2_610[8] = { 'i', 's', 't', 'a', 'j', 'a', 's', 'e' };
+static const symbol s_2_611[8] = { 'o', 's', 't', 'a', 'j', 'a', 's', 'e' };
+static const symbol s_2_612[6] = { 'i', 'n', 'j', 'a', 's', 'e' };
+static const symbol s_2_613[4] = { 'k', 'a', 's', 'e' };
+static const symbol s_2_614[4] = { 'n', 'a', 's', 'e' };
+static const symbol s_2_615[5] = { 'i', 'r', 'a', 's', 'e' };
+static const symbol s_2_616[5] = { 'u', 'r', 'a', 's', 'e' };
+static const symbol s_2_617[4] = { 't', 'a', 's', 'e' };
+static const symbol s_2_618[4] = { 'v', 'a', 's', 'e' };
+static const symbol s_2_619[5] = { 'a', 'v', 'a', 's', 'e' };
+static const symbol s_2_620[5] = { 'e', 'v', 'a', 's', 'e' };
+static const symbol s_2_621[5] = { 'i', 'v', 'a', 's', 'e' };
+static const symbol s_2_622[5] = { 'o', 'v', 'a', 's', 'e' };
+static const symbol s_2_623[5] = { 'u', 'v', 'a', 's', 'e' };
+static const symbol s_2_624[3] = { 'e', 's', 'e' };
+static const symbol s_2_625[3] = { 'i', 's', 'e' };
+static const symbol s_2_626[5] = { 'a', 'c', 'i', 's', 'e' };
+static const symbol s_2_627[6] = { 'l', 'u', 'c', 'i', 's', 'e' };
+static const symbol s_2_628[6] = { 'r', 'o', 's', 'i', 's', 'e' };
+static const symbol s_2_629[6] = { 'j', 'e', 't', 'i', 's', 'e' };
+static const symbol s_2_630[3] = { 'o', 's', 'e' };
+static const symbol s_2_631[8] = { 'a', 's', 't', 'a', 'd', 'o', 's', 'e' };
+static const symbol s_2_632[8] = { 'i', 's', 't', 'a', 'd', 'o', 's', 'e' };
+static const symbol s_2_633[8] = { 'o', 's', 't', 'a', 'd', 'o', 's', 'e' };
+static const symbol s_2_634[3] = { 'a', 't', 'e' };
+static const symbol s_2_635[5] = { 'a', 'c', 'a', 't', 'e' };
+static const symbol s_2_636[5] = { 'i', 'k', 'a', 't', 'e' };
+static const symbol s_2_637[4] = { 'l', 'a', 't', 'e' };
+static const symbol s_2_638[5] = { 'i', 'r', 'a', 't', 'e' };
+static const symbol s_2_639[5] = { 'u', 'r', 'a', 't', 'e' };
+static const symbol s_2_640[4] = { 't', 'a', 't', 'e' };
+static const symbol s_2_641[5] = { 'a', 'v', 'a', 't', 'e' };
+static const symbol s_2_642[5] = { 'e', 'v', 'a', 't', 'e' };
+static const symbol s_2_643[5] = { 'i', 'v', 'a', 't', 'e' };
+static const symbol s_2_644[5] = { 'u', 'v', 'a', 't', 'e' };
+static const symbol s_2_645[6] = { 'a', 0xC4, 0x8D, 'a', 't', 'e' };
+static const symbol s_2_646[3] = { 'e', 't', 'e' };
+static const symbol s_2_647[8] = { 'a', 's', 't', 'a', 'd', 'e', 't', 'e' };
+static const symbol s_2_648[8] = { 'i', 's', 't', 'a', 'd', 'e', 't', 'e' };
+static const symbol s_2_649[8] = { 'o', 's', 't', 'a', 'd', 'e', 't', 'e' };
+static const symbol s_2_650[8] = { 'a', 's', 't', 'a', 'j', 'e', 't', 'e' };
+static const symbol s_2_651[8] = { 'i', 's', 't', 'a', 'j', 'e', 't', 'e' };
+static const symbol s_2_652[8] = { 'o', 's', 't', 'a', 'j', 'e', 't', 'e' };
+static const symbol s_2_653[5] = { 'i', 'j', 'e', 't', 'e' };
+static const symbol s_2_654[6] = { 'i', 'n', 'j', 'e', 't', 'e' };
+static const symbol s_2_655[5] = { 'u', 'j', 'e', 't', 'e' };
+static const symbol s_2_656[8] = { 'l', 'u', 'c', 'u', 'j', 'e', 't', 'e' };
+static const symbol s_2_657[7] = { 'i', 'r', 'u', 'j', 'e', 't', 'e' };
+static const symbol s_2_658[9] = { 'l', 'u', 0xC4, 0x8D, 'u', 'j', 'e', 't', 'e' };
+static const symbol s_2_659[4] = { 'n', 'e', 't', 'e' };
+static const symbol s_2_660[8] = { 'a', 's', 't', 'a', 'n', 'e', 't', 'e' };
+static const symbol s_2_661[8] = { 'i', 's', 't', 'a', 'n', 'e', 't', 'e' };
+static const symbol s_2_662[8] = { 'o', 's', 't', 'a', 'n', 'e', 't', 'e' };
+static const symbol s_2_663[6] = { 'a', 's', 't', 'e', 't', 'e' };
+static const symbol s_2_664[3] = { 'i', 't', 'e' };
+static const symbol s_2_665[5] = { 'a', 'c', 'i', 't', 'e' };
+static const symbol s_2_666[6] = { 'l', 'u', 'c', 'i', 't', 'e' };
+static const symbol s_2_667[4] = { 'n', 'i', 't', 'e' };
+static const symbol s_2_668[8] = { 'a', 's', 't', 'a', 'n', 'i', 't', 'e' };
+static const symbol s_2_669[8] = { 'i', 's', 't', 'a', 'n', 'i', 't', 'e' };
+static const symbol s_2_670[8] = { 'o', 's', 't', 'a', 'n', 'i', 't', 'e' };
+static const symbol s_2_671[6] = { 'r', 'o', 's', 'i', 't', 'e' };
+static const symbol s_2_672[6] = { 'j', 'e', 't', 'i', 't', 'e' };
+static const symbol s_2_673[6] = { 'a', 's', 't', 'i', 't', 'e' };
+static const symbol s_2_674[5] = { 'e', 'v', 'i', 't', 'e' };
+static const symbol s_2_675[5] = { 'o', 'v', 'i', 't', 'e' };
+static const symbol s_2_676[6] = { 'a', 0xC4, 0x8D, 'i', 't', 'e' };
+static const symbol s_2_677[7] = { 'l', 'u', 0xC4, 0x8D, 'i', 't', 'e' };
+static const symbol s_2_678[7] = { 'r', 'o', 0xC5, 0xA1, 'i', 't', 'e' };
+static const symbol s_2_679[4] = { 'a', 'j', 't', 'e' };
+static const symbol s_2_680[6] = { 'u', 'r', 'a', 'j', 't', 'e' };
+static const symbol s_2_681[5] = { 't', 'a', 'j', 't', 'e' };
+static const symbol s_2_682[7] = { 'a', 's', 't', 'a', 'j', 't', 'e' };
+static const symbol s_2_683[7] = { 'i', 's', 't', 'a', 'j', 't', 'e' };
+static const symbol s_2_684[7] = { 'o', 's', 't', 'a', 'j', 't', 'e' };
+static const symbol s_2_685[6] = { 'a', 'v', 'a', 'j', 't', 'e' };
+static const symbol s_2_686[6] = { 'e', 'v', 'a', 'j', 't', 'e' };
+static const symbol s_2_687[6] = { 'i', 'v', 'a', 'j', 't', 'e' };
+static const symbol s_2_688[6] = { 'u', 'v', 'a', 'j', 't', 'e' };
+static const symbol s_2_689[4] = { 'i', 'j', 't', 'e' };
+static const symbol s_2_690[7] = { 'l', 'u', 'c', 'u', 'j', 't', 'e' };
+static const symbol s_2_691[6] = { 'i', 'r', 'u', 'j', 't', 'e' };
+static const symbol s_2_692[8] = { 'l', 'u', 0xC4, 0x8D, 'u', 'j', 't', 'e' };
+static const symbol s_2_693[4] = { 'a', 's', 't', 'e' };
+static const symbol s_2_694[6] = { 'a', 'c', 'a', 's', 't', 'e' };
+static const symbol s_2_695[9] = { 'a', 's', 't', 'a', 'j', 'a', 's', 't', 'e' };
+static const symbol s_2_696[9] = { 'i', 's', 't', 'a', 'j', 'a', 's', 't', 'e' };
+static const symbol s_2_697[9] = { 'o', 's', 't', 'a', 'j', 'a', 's', 't', 'e' };
+static const symbol s_2_698[7] = { 'i', 'n', 'j', 'a', 's', 't', 'e' };
+static const symbol s_2_699[6] = { 'i', 'r', 'a', 's', 't', 'e' };
+static const symbol s_2_700[6] = { 'u', 'r', 'a', 's', 't', 'e' };
+static const symbol s_2_701[5] = { 't', 'a', 's', 't', 'e' };
+static const symbol s_2_702[6] = { 'a', 'v', 'a', 's', 't', 'e' };
+static const symbol s_2_703[6] = { 'e', 'v', 'a', 's', 't', 'e' };
+static const symbol s_2_704[6] = { 'i', 'v', 'a', 's', 't', 'e' };
+static const symbol s_2_705[6] = { 'o', 'v', 'a', 's', 't', 'e' };
+static const symbol s_2_706[6] = { 'u', 'v', 'a', 's', 't', 'e' };
+static const symbol s_2_707[7] = { 'a', 0xC4, 0x8D, 'a', 's', 't', 'e' };
+static const symbol s_2_708[4] = { 'e', 's', 't', 'e' };
+static const symbol s_2_709[4] = { 'i', 's', 't', 'e' };
+static const symbol s_2_710[6] = { 'a', 'c', 'i', 's', 't', 'e' };
+static const symbol s_2_711[7] = { 'l', 'u', 'c', 'i', 's', 't', 'e' };
+static const symbol s_2_712[5] = { 'n', 'i', 's', 't', 'e' };
+static const symbol s_2_713[7] = { 'r', 'o', 's', 'i', 's', 't', 'e' };
+static const symbol s_2_714[7] = { 'j', 'e', 't', 'i', 's', 't', 'e' };
+static const symbol s_2_715[7] = { 'a', 0xC4, 0x8D, 'i', 's', 't', 'e' };
+static const symbol s_2_716[8] = { 'l', 'u', 0xC4, 0x8D, 'i', 's', 't', 'e' };
+static const symbol s_2_717[8] = { 'r', 'o', 0xC5, 0xA1, 'i', 's', 't', 'e' };
+static const symbol s_2_718[4] = { 'k', 's', 't', 'e' };
+static const symbol s_2_719[4] = { 'o', 's', 't', 'e' };
+static const symbol s_2_720[9] = { 'a', 's', 't', 'a', 'd', 'o', 's', 't', 'e' };
+static const symbol s_2_721[9] = { 'i', 's', 't', 'a', 'd', 'o', 's', 't', 'e' };
+static const symbol s_2_722[9] = { 'o', 's', 't', 'a', 'd', 'o', 's', 't', 'e' };
+static const symbol s_2_723[5] = { 'n', 'u', 's', 't', 'e' };
+static const symbol s_2_724[5] = { 'i', 0xC5, 0xA1, 't', 'e' };
+static const symbol s_2_725[3] = { 'a', 'v', 'e' };
+static const symbol s_2_726[3] = { 'e', 'v', 'e' };
+static const symbol s_2_727[5] = { 'a', 'j', 'e', 'v', 'e' };
+static const symbol s_2_728[6] = { 'c', 'a', 'j', 'e', 'v', 'e' };
+static const symbol s_2_729[6] = { 'l', 'a', 'j', 'e', 'v', 'e' };
+static const symbol s_2_730[6] = { 'r', 'a', 'j', 'e', 'v', 'e' };
+static const symbol s_2_731[7] = { 0xC4, 0x87, 'a', 'j', 'e', 'v', 'e' };
+static const symbol s_2_732[7] = { 0xC4, 0x8D, 'a', 'j', 'e', 'v', 'e' };
+static const symbol s_2_733[7] = { 0xC4, 0x91, 'a', 'j', 'e', 'v', 'e' };
+static const symbol s_2_734[3] = { 'i', 'v', 'e' };
+static const symbol s_2_735[3] = { 'o', 'v', 'e' };
+static const symbol s_2_736[4] = { 'g', 'o', 'v', 'e' };
+static const symbol s_2_737[5] = { 'u', 'g', 'o', 'v', 'e' };
+static const symbol s_2_738[4] = { 'l', 'o', 'v', 'e' };
+static const symbol s_2_739[5] = { 'o', 'l', 'o', 'v', 'e' };
+static const symbol s_2_740[4] = { 'm', 'o', 'v', 'e' };
+static const symbol s_2_741[5] = { 'o', 'n', 'o', 'v', 'e' };
+static const symbol s_2_742[4] = { 'a', 0xC4, 0x87, 'e' };
+static const symbol s_2_743[4] = { 'e', 0xC4, 0x87, 'e' };
+static const symbol s_2_744[4] = { 'u', 0xC4, 0x87, 'e' };
+static const symbol s_2_745[4] = { 'a', 0xC4, 0x8D, 'e' };
+static const symbol s_2_746[5] = { 'l', 'u', 0xC4, 0x8D, 'e' };
+static const symbol s_2_747[4] = { 'a', 0xC5, 0xA1, 'e' };
+static const symbol s_2_748[5] = { 'b', 'a', 0xC5, 0xA1, 'e' };
+static const symbol s_2_749[5] = { 'g', 'a', 0xC5, 0xA1, 'e' };
+static const symbol s_2_750[5] = { 'j', 'a', 0xC5, 0xA1, 'e' };
+static const symbol s_2_751[9] = { 'a', 's', 't', 'a', 'j', 'a', 0xC5, 0xA1, 'e' };
+static const symbol s_2_752[9] = { 'i', 's', 't', 'a', 'j', 'a', 0xC5, 0xA1, 'e' };
+static const symbol s_2_753[9] = { 'o', 's', 't', 'a', 'j', 'a', 0xC5, 0xA1, 'e' };
+static const symbol s_2_754[7] = { 'i', 'n', 'j', 'a', 0xC5, 0xA1, 'e' };
+static const symbol s_2_755[5] = { 'k', 'a', 0xC5, 0xA1, 'e' };
+static const symbol s_2_756[5] = { 'n', 'a', 0xC5, 0xA1, 'e' };
+static const symbol s_2_757[6] = { 'i', 'r', 'a', 0xC5, 0xA1, 'e' };
+static const symbol s_2_758[6] = { 'u', 'r', 'a', 0xC5, 0xA1, 'e' };
+static const symbol s_2_759[5] = { 't', 'a', 0xC5, 0xA1, 'e' };
+static const symbol s_2_760[5] = { 'v', 'a', 0xC5, 0xA1, 'e' };
+static const symbol s_2_761[6] = { 'a', 'v', 'a', 0xC5, 0xA1, 'e' };
+static const symbol s_2_762[6] = { 'e', 'v', 'a', 0xC5, 0xA1, 'e' };
+static const symbol s_2_763[6] = { 'i', 'v', 'a', 0xC5, 0xA1, 'e' };
+static const symbol s_2_764[6] = { 'o', 'v', 'a', 0xC5, 0xA1, 'e' };
+static const symbol s_2_765[6] = { 'u', 'v', 'a', 0xC5, 0xA1, 'e' };
+static const symbol s_2_766[7] = { 'a', 0xC4, 0x8D, 'a', 0xC5, 0xA1, 'e' };
+static const symbol s_2_767[4] = { 'e', 0xC5, 0xA1, 'e' };
+static const symbol s_2_768[4] = { 'i', 0xC5, 0xA1, 'e' };
+static const symbol s_2_769[7] = { 'j', 'e', 't', 'i', 0xC5, 0xA1, 'e' };
+static const symbol s_2_770[7] = { 'a', 0xC4, 0x8D, 'i', 0xC5, 0xA1, 'e' };
+static const symbol s_2_771[8] = { 'l', 'u', 0xC4, 0x8D, 'i', 0xC5, 0xA1, 'e' };
+static const symbol s_2_772[8] = { 'r', 'o', 0xC5, 0xA1, 'i', 0xC5, 0xA1, 'e' };
+static const symbol s_2_773[4] = { 'o', 0xC5, 0xA1, 'e' };
+static const symbol s_2_774[9] = { 'a', 's', 't', 'a', 'd', 'o', 0xC5, 0xA1, 'e' };
+static const symbol s_2_775[9] = { 'i', 's', 't', 'a', 'd', 'o', 0xC5, 0xA1, 'e' };
+static const symbol s_2_776[9] = { 'o', 's', 't', 'a', 'd', 'o', 0xC5, 0xA1, 'e' };
+static const symbol s_2_777[4] = { 'a', 'c', 'e', 'g' };
+static const symbol s_2_778[4] = { 'e', 'c', 'e', 'g' };
+static const symbol s_2_779[4] = { 'u', 'c', 'e', 'g' };
+static const symbol s_2_780[7] = { 'a', 'n', 'j', 'i', 'j', 'e', 'g' };
+static const symbol s_2_781[7] = { 'e', 'n', 'j', 'i', 'j', 'e', 'g' };
+static const symbol s_2_782[7] = { 's', 'n', 'j', 'i', 'j', 'e', 'g' };
+static const symbol s_2_783[8] = { 0xC5, 0xA1, 'n', 'j', 'i', 'j', 'e', 'g' };
+static const symbol s_2_784[5] = { 'k', 'i', 'j', 'e', 'g' };
+static const symbol s_2_785[6] = { 's', 'k', 'i', 'j', 'e', 'g' };
+static const symbol s_2_786[7] = { 0xC5, 0xA1, 'k', 'i', 'j', 'e', 'g' };
+static const symbol s_2_787[6] = { 'e', 'l', 'i', 'j', 'e', 'g' };
+static const symbol s_2_788[5] = { 'n', 'i', 'j', 'e', 'g' };
+static const symbol s_2_789[6] = { 'o', 's', 'i', 'j', 'e', 'g' };
+static const symbol s_2_790[6] = { 'a', 't', 'i', 'j', 'e', 'g' };
+static const symbol s_2_791[8] = { 'e', 'v', 'i', 't', 'i', 'j', 'e', 'g' };
+static const symbol s_2_792[8] = { 'o', 'v', 'i', 't', 'i', 'j', 'e', 'g' };
+static const symbol s_2_793[7] = { 'a', 's', 't', 'i', 'j', 'e', 'g' };
+static const symbol s_2_794[6] = { 'a', 'v', 'i', 'j', 'e', 'g' };
+static const symbol s_2_795[6] = { 'e', 'v', 'i', 'j', 'e', 'g' };
+static const symbol s_2_796[6] = { 'i', 'v', 'i', 'j', 'e', 'g' };
+static const symbol s_2_797[6] = { 'o', 'v', 'i', 'j', 'e', 'g' };
+static const symbol s_2_798[7] = { 'o', 0xC5, 0xA1, 'i', 'j', 'e', 'g' };
+static const symbol s_2_799[5] = { 'a', 'n', 'j', 'e', 'g' };
+static const symbol s_2_800[5] = { 'e', 'n', 'j', 'e', 'g' };
+static const symbol s_2_801[5] = { 's', 'n', 'j', 'e', 'g' };
+static const symbol s_2_802[6] = { 0xC5, 0xA1, 'n', 'j', 'e', 'g' };
+static const symbol s_2_803[3] = { 'k', 'e', 'g' };
+static const symbol s_2_804[4] = { 'e', 'l', 'e', 'g' };
+static const symbol s_2_805[3] = { 'n', 'e', 'g' };
+static const symbol s_2_806[4] = { 'a', 'n', 'e', 'g' };
+static const symbol s_2_807[4] = { 'e', 'n', 'e', 'g' };
+static const symbol s_2_808[4] = { 's', 'n', 'e', 'g' };
+static const symbol s_2_809[5] = { 0xC5, 0xA1, 'n', 'e', 'g' };
+static const symbol s_2_810[4] = { 'o', 's', 'e', 'g' };
+static const symbol s_2_811[4] = { 'a', 't', 'e', 'g' };
+static const symbol s_2_812[4] = { 'a', 'v', 'e', 'g' };
+static const symbol s_2_813[4] = { 'e', 'v', 'e', 'g' };
+static const symbol s_2_814[4] = { 'i', 'v', 'e', 'g' };
+static const symbol s_2_815[4] = { 'o', 'v', 'e', 'g' };
+static const symbol s_2_816[5] = { 'a', 0xC4, 0x87, 'e', 'g' };
+static const symbol s_2_817[5] = { 'e', 0xC4, 0x87, 'e', 'g' };
+static const symbol s_2_818[5] = { 'u', 0xC4, 0x87, 'e', 'g' };
+static const symbol s_2_819[5] = { 'o', 0xC5, 0xA1, 'e', 'g' };
+static const symbol s_2_820[4] = { 'a', 'c', 'o', 'g' };
+static const symbol s_2_821[4] = { 'e', 'c', 'o', 'g' };
+static const symbol s_2_822[4] = { 'u', 'c', 'o', 'g' };
+static const symbol s_2_823[5] = { 'a', 'n', 'j', 'o', 'g' };
+static const symbol s_2_824[5] = { 'e', 'n', 'j', 'o', 'g' };
+static const symbol s_2_825[5] = { 's', 'n', 'j', 'o', 'g' };
+static const symbol s_2_826[6] = { 0xC5, 0xA1, 'n', 'j', 'o', 'g' };
+static const symbol s_2_827[3] = { 'k', 'o', 'g' };
+static const symbol s_2_828[4] = { 's', 'k', 'o', 'g' };
+static const symbol s_2_829[5] = { 0xC5, 0xA1, 'k', 'o', 'g' };
+static const symbol s_2_830[4] = { 'e', 'l', 'o', 'g' };
+static const symbol s_2_831[3] = { 'n', 'o', 'g' };
+static const symbol s_2_832[5] = { 'c', 'i', 'n', 'o', 'g' };
+static const symbol s_2_833[6] = { 0xC4, 0x8D, 'i', 'n', 'o', 'g' };
+static const symbol s_2_834[4] = { 'o', 's', 'o', 'g' };
+static const symbol s_2_835[4] = { 'a', 't', 'o', 'g' };
+static const symbol s_2_836[6] = { 'e', 'v', 'i', 't', 'o', 'g' };
+static const symbol s_2_837[6] = { 'o', 'v', 'i', 't', 'o', 'g' };
+static const symbol s_2_838[5] = { 'a', 's', 't', 'o', 'g' };
+static const symbol s_2_839[4] = { 'a', 'v', 'o', 'g' };
+static const symbol s_2_840[4] = { 'e', 'v', 'o', 'g' };
+static const symbol s_2_841[4] = { 'i', 'v', 'o', 'g' };
+static const symbol s_2_842[4] = { 'o', 'v', 'o', 'g' };
+static const symbol s_2_843[5] = { 'a', 0xC4, 0x87, 'o', 'g' };
+static const symbol s_2_844[5] = { 'e', 0xC4, 0x87, 'o', 'g' };
+static const symbol s_2_845[5] = { 'u', 0xC4, 0x87, 'o', 'g' };
+static const symbol s_2_846[5] = { 'o', 0xC5, 0xA1, 'o', 'g' };
+static const symbol s_2_847[2] = { 'a', 'h' };
+static const symbol s_2_848[4] = { 'a', 'c', 'a', 'h' };
+static const symbol s_2_849[7] = { 'a', 's', 't', 'a', 'j', 'a', 'h' };
+static const symbol s_2_850[7] = { 'i', 's', 't', 'a', 'j', 'a', 'h' };
+static const symbol s_2_851[7] = { 'o', 's', 't', 'a', 'j', 'a', 'h' };
+static const symbol s_2_852[5] = { 'i', 'n', 'j', 'a', 'h' };
+static const symbol s_2_853[4] = { 'i', 'r', 'a', 'h' };
+static const symbol s_2_854[4] = { 'u', 'r', 'a', 'h' };
+static const symbol s_2_855[3] = { 't', 'a', 'h' };
+static const symbol s_2_856[4] = { 'a', 'v', 'a', 'h' };
+static const symbol s_2_857[4] = { 'e', 'v', 'a', 'h' };
+static const symbol s_2_858[4] = { 'i', 'v', 'a', 'h' };
+static const symbol s_2_859[4] = { 'o', 'v', 'a', 'h' };
+static const symbol s_2_860[4] = { 'u', 'v', 'a', 'h' };
+static const symbol s_2_861[5] = { 'a', 0xC4, 0x8D, 'a', 'h' };
+static const symbol s_2_862[2] = { 'i', 'h' };
+static const symbol s_2_863[4] = { 'a', 'c', 'i', 'h' };
+static const symbol s_2_864[4] = { 'e', 'c', 'i', 'h' };
+static const symbol s_2_865[4] = { 'u', 'c', 'i', 'h' };
+static const symbol s_2_866[5] = { 'l', 'u', 'c', 'i', 'h' };
+static const symbol s_2_867[7] = { 'a', 'n', 'j', 'i', 'j', 'i', 'h' };
+static const symbol s_2_868[7] = { 'e', 'n', 'j', 'i', 'j', 'i', 'h' };
+static const symbol s_2_869[7] = { 's', 'n', 'j', 'i', 'j', 'i', 'h' };
+static const symbol s_2_870[8] = { 0xC5, 0xA1, 'n', 'j', 'i', 'j', 'i', 'h' };
+static const symbol s_2_871[5] = { 'k', 'i', 'j', 'i', 'h' };
+static const symbol s_2_872[6] = { 's', 'k', 'i', 'j', 'i', 'h' };
+static const symbol s_2_873[7] = { 0xC5, 0xA1, 'k', 'i', 'j', 'i', 'h' };
+static const symbol s_2_874[6] = { 'e', 'l', 'i', 'j', 'i', 'h' };
+static const symbol s_2_875[5] = { 'n', 'i', 'j', 'i', 'h' };
+static const symbol s_2_876[6] = { 'o', 's', 'i', 'j', 'i', 'h' };
+static const symbol s_2_877[6] = { 'a', 't', 'i', 'j', 'i', 'h' };
+static const symbol s_2_878[8] = { 'e', 'v', 'i', 't', 'i', 'j', 'i', 'h' };
+static const symbol s_2_879[8] = { 'o', 'v', 'i', 't', 'i', 'j', 'i', 'h' };
+static const symbol s_2_880[7] = { 'a', 's', 't', 'i', 'j', 'i', 'h' };
+static const symbol s_2_881[6] = { 'a', 'v', 'i', 'j', 'i', 'h' };
+static const symbol s_2_882[6] = { 'e', 'v', 'i', 'j', 'i', 'h' };
+static const symbol s_2_883[6] = { 'i', 'v', 'i', 'j', 'i', 'h' };
+static const symbol s_2_884[6] = { 'o', 'v', 'i', 'j', 'i', 'h' };
+static const symbol s_2_885[7] = { 'o', 0xC5, 0xA1, 'i', 'j', 'i', 'h' };
+static const symbol s_2_886[5] = { 'a', 'n', 'j', 'i', 'h' };
+static const symbol s_2_887[5] = { 'e', 'n', 'j', 'i', 'h' };
+static const symbol s_2_888[5] = { 's', 'n', 'j', 'i', 'h' };
+static const symbol s_2_889[6] = { 0xC5, 0xA1, 'n', 'j', 'i', 'h' };
+static const symbol s_2_890[3] = { 'k', 'i', 'h' };
+static const symbol s_2_891[4] = { 's', 'k', 'i', 'h' };
+static const symbol s_2_892[5] = { 0xC5, 0xA1, 'k', 'i', 'h' };
+static const symbol s_2_893[4] = { 'e', 'l', 'i', 'h' };
+static const symbol s_2_894[3] = { 'n', 'i', 'h' };
+static const symbol s_2_895[5] = { 'c', 'i', 'n', 'i', 'h' };
+static const symbol s_2_896[6] = { 0xC4, 0x8D, 'i', 'n', 'i', 'h' };
+static const symbol s_2_897[4] = { 'o', 's', 'i', 'h' };
+static const symbol s_2_898[5] = { 'r', 'o', 's', 'i', 'h' };
+static const symbol s_2_899[4] = { 'a', 't', 'i', 'h' };
+static const symbol s_2_900[5] = { 'j', 'e', 't', 'i', 'h' };
+static const symbol s_2_901[6] = { 'e', 'v', 'i', 't', 'i', 'h' };
+static const symbol s_2_902[6] = { 'o', 'v', 'i', 't', 'i', 'h' };
+static const symbol s_2_903[5] = { 'a', 's', 't', 'i', 'h' };
+static const symbol s_2_904[4] = { 'a', 'v', 'i', 'h' };
+static const symbol s_2_905[4] = { 'e', 'v', 'i', 'h' };
+static const symbol s_2_906[4] = { 'i', 'v', 'i', 'h' };
+static const symbol s_2_907[4] = { 'o', 'v', 'i', 'h' };
+static const symbol s_2_908[5] = { 'a', 0xC4, 0x87, 'i', 'h' };
+static const symbol s_2_909[5] = { 'e', 0xC4, 0x87, 'i', 'h' };
+static const symbol s_2_910[5] = { 'u', 0xC4, 0x87, 'i', 'h' };
+static const symbol s_2_911[5] = { 'a', 0xC4, 0x8D, 'i', 'h' };
+static const symbol s_2_912[6] = { 'l', 'u', 0xC4, 0x8D, 'i', 'h' };
+static const symbol s_2_913[5] = { 'o', 0xC5, 0xA1, 'i', 'h' };
+static const symbol s_2_914[6] = { 'r', 'o', 0xC5, 0xA1, 'i', 'h' };
+static const symbol s_2_915[7] = { 'a', 's', 't', 'a', 'd', 'o', 'h' };
+static const symbol s_2_916[7] = { 'i', 's', 't', 'a', 'd', 'o', 'h' };
+static const symbol s_2_917[7] = { 'o', 's', 't', 'a', 'd', 'o', 'h' };
+static const symbol s_2_918[4] = { 'a', 'c', 'u', 'h' };
+static const symbol s_2_919[4] = { 'e', 'c', 'u', 'h' };
+static const symbol s_2_920[4] = { 'u', 'c', 'u', 'h' };
+static const symbol s_2_921[5] = { 'a', 0xC4, 0x87, 'u', 'h' };
+static const symbol s_2_922[5] = { 'e', 0xC4, 0x87, 'u', 'h' };
+static const symbol s_2_923[5] = { 'u', 0xC4, 0x87, 'u', 'h' };
+static const symbol s_2_924[3] = { 'a', 'c', 'i' };
+static const symbol s_2_925[5] = { 'a', 'c', 'e', 'c', 'i' };
+static const symbol s_2_926[4] = { 'i', 'e', 'c', 'i' };
+static const symbol s_2_927[5] = { 'a', 'j', 'u', 'c', 'i' };
+static const symbol s_2_928[7] = { 'i', 'r', 'a', 'j', 'u', 'c', 'i' };
+static const symbol s_2_929[7] = { 'u', 'r', 'a', 'j', 'u', 'c', 'i' };
+static const symbol s_2_930[8] = { 'a', 's', 't', 'a', 'j', 'u', 'c', 'i' };
+static const symbol s_2_931[8] = { 'i', 's', 't', 'a', 'j', 'u', 'c', 'i' };
+static const symbol s_2_932[8] = { 'o', 's', 't', 'a', 'j', 'u', 'c', 'i' };
+static const symbol s_2_933[7] = { 'a', 'v', 'a', 'j', 'u', 'c', 'i' };
+static const symbol s_2_934[7] = { 'e', 'v', 'a', 'j', 'u', 'c', 'i' };
+static const symbol s_2_935[7] = { 'i', 'v', 'a', 'j', 'u', 'c', 'i' };
+static const symbol s_2_936[7] = { 'u', 'v', 'a', 'j', 'u', 'c', 'i' };
+static const symbol s_2_937[5] = { 'u', 'j', 'u', 'c', 'i' };
+static const symbol s_2_938[8] = { 'l', 'u', 'c', 'u', 'j', 'u', 'c', 'i' };
+static const symbol s_2_939[7] = { 'i', 'r', 'u', 'j', 'u', 'c', 'i' };
+static const symbol s_2_940[4] = { 'l', 'u', 'c', 'i' };
+static const symbol s_2_941[4] = { 'n', 'u', 'c', 'i' };
+static const symbol s_2_942[5] = { 'e', 't', 'u', 'c', 'i' };
+static const symbol s_2_943[6] = { 'a', 's', 't', 'u', 'c', 'i' };
+static const symbol s_2_944[2] = { 'g', 'i' };
+static const symbol s_2_945[3] = { 'u', 'g', 'i' };
+static const symbol s_2_946[3] = { 'a', 'j', 'i' };
+static const symbol s_2_947[4] = { 'c', 'a', 'j', 'i' };
+static const symbol s_2_948[4] = { 'l', 'a', 'j', 'i' };
+static const symbol s_2_949[4] = { 'r', 'a', 'j', 'i' };
+static const symbol s_2_950[5] = { 0xC4, 0x87, 'a', 'j', 'i' };
+static const symbol s_2_951[5] = { 0xC4, 0x8D, 'a', 'j', 'i' };
+static const symbol s_2_952[5] = { 0xC4, 0x91, 'a', 'j', 'i' };
+static const symbol s_2_953[4] = { 'b', 'i', 'j', 'i' };
+static const symbol s_2_954[4] = { 'c', 'i', 'j', 'i' };
+static const symbol s_2_955[4] = { 'd', 'i', 'j', 'i' };
+static const symbol s_2_956[4] = { 'f', 'i', 'j', 'i' };
+static const symbol s_2_957[4] = { 'g', 'i', 'j', 'i' };
+static const symbol s_2_958[6] = { 'a', 'n', 'j', 'i', 'j', 'i' };
+static const symbol s_2_959[6] = { 'e', 'n', 'j', 'i', 'j', 'i' };
+static const symbol s_2_960[6] = { 's', 'n', 'j', 'i', 'j', 'i' };
+static const symbol s_2_961[7] = { 0xC5, 0xA1, 'n', 'j', 'i', 'j', 'i' };
+static const symbol s_2_962[4] = { 'k', 'i', 'j', 'i' };
+static const symbol s_2_963[5] = { 's', 'k', 'i', 'j', 'i' };
+static const symbol s_2_964[6] = { 0xC5, 0xA1, 'k', 'i', 'j', 'i' };
+static const symbol s_2_965[4] = { 'l', 'i', 'j', 'i' };
+static const symbol s_2_966[5] = { 'e', 'l', 'i', 'j', 'i' };
+static const symbol s_2_967[4] = { 'm', 'i', 'j', 'i' };
+static const symbol s_2_968[4] = { 'n', 'i', 'j', 'i' };
+static const symbol s_2_969[6] = { 'g', 'a', 'n', 'i', 'j', 'i' };
+static const symbol s_2_970[6] = { 'm', 'a', 'n', 'i', 'j', 'i' };
+static const symbol s_2_971[6] = { 'p', 'a', 'n', 'i', 'j', 'i' };
+static const symbol s_2_972[6] = { 'r', 'a', 'n', 'i', 'j', 'i' };
+static const symbol s_2_973[6] = { 't', 'a', 'n', 'i', 'j', 'i' };
+static const symbol s_2_974[4] = { 'p', 'i', 'j', 'i' };
+static const symbol s_2_975[4] = { 'r', 'i', 'j', 'i' };
+static const symbol s_2_976[4] = { 's', 'i', 'j', 'i' };
+static const symbol s_2_977[5] = { 'o', 's', 'i', 'j', 'i' };
+static const symbol s_2_978[4] = { 't', 'i', 'j', 'i' };
+static const symbol s_2_979[5] = { 'a', 't', 'i', 'j', 'i' };
+static const symbol s_2_980[7] = { 'e', 'v', 'i', 't', 'i', 'j', 'i' };
+static const symbol s_2_981[7] = { 'o', 'v', 'i', 't', 'i', 'j', 'i' };
+static const symbol s_2_982[6] = { 'a', 's', 't', 'i', 'j', 'i' };
+static const symbol s_2_983[5] = { 'a', 'v', 'i', 'j', 'i' };
+static const symbol s_2_984[5] = { 'e', 'v', 'i', 'j', 'i' };
+static const symbol s_2_985[5] = { 'i', 'v', 'i', 'j', 'i' };
+static const symbol s_2_986[5] = { 'o', 'v', 'i', 'j', 'i' };
+static const symbol s_2_987[4] = { 'z', 'i', 'j', 'i' };
+static const symbol s_2_988[6] = { 'o', 0xC5, 0xA1, 'i', 'j', 'i' };
+static const symbol s_2_989[5] = { 0xC5, 0xBE, 'i', 'j', 'i' };
+static const symbol s_2_990[4] = { 'a', 'n', 'j', 'i' };
+static const symbol s_2_991[4] = { 'e', 'n', 'j', 'i' };
+static const symbol s_2_992[4] = { 's', 'n', 'j', 'i' };
+static const symbol s_2_993[5] = { 0xC5, 0xA1, 'n', 'j', 'i' };
+static const symbol s_2_994[2] = { 'k', 'i' };
+static const symbol s_2_995[3] = { 's', 'k', 'i' };
+static const symbol s_2_996[4] = { 0xC5, 0xA1, 'k', 'i' };
+static const symbol s_2_997[3] = { 'a', 'l', 'i' };
+static const symbol s_2_998[5] = { 'a', 'c', 'a', 'l', 'i' };
+static const symbol s_2_999[8] = { 'a', 's', 't', 'a', 'j', 'a', 'l', 'i' };
+static const symbol s_2_1000[8] = { 'i', 's', 't', 'a', 'j', 'a', 'l', 'i' };
+static const symbol s_2_1001[8] = { 'o', 's', 't', 'a', 'j', 'a', 'l', 'i' };
+static const symbol s_2_1002[5] = { 'i', 'j', 'a', 'l', 'i' };
+static const symbol s_2_1003[6] = { 'i', 'n', 'j', 'a', 'l', 'i' };
+static const symbol s_2_1004[4] = { 'n', 'a', 'l', 'i' };
+static const symbol s_2_1005[5] = { 'i', 'r', 'a', 'l', 'i' };
+static const symbol s_2_1006[5] = { 'u', 'r', 'a', 'l', 'i' };
+static const symbol s_2_1007[4] = { 't', 'a', 'l', 'i' };
+static const symbol s_2_1008[6] = { 'a', 's', 't', 'a', 'l', 'i' };
+static const symbol s_2_1009[6] = { 'i', 's', 't', 'a', 'l', 'i' };
+static const symbol s_2_1010[6] = { 'o', 's', 't', 'a', 'l', 'i' };
+static const symbol s_2_1011[5] = { 'a', 'v', 'a', 'l', 'i' };
+static const symbol s_2_1012[5] = { 'e', 'v', 'a', 'l', 'i' };
+static const symbol s_2_1013[5] = { 'i', 'v', 'a', 'l', 'i' };
+static const symbol s_2_1014[5] = { 'o', 'v', 'a', 'l', 'i' };
+static const symbol s_2_1015[5] = { 'u', 'v', 'a', 'l', 'i' };
+static const symbol s_2_1016[6] = { 'a', 0xC4, 0x8D, 'a', 'l', 'i' };
+static const symbol s_2_1017[3] = { 'e', 'l', 'i' };
+static const symbol s_2_1018[3] = { 'i', 'l', 'i' };
+static const symbol s_2_1019[5] = { 'a', 'c', 'i', 'l', 'i' };
+static const symbol s_2_1020[6] = { 'l', 'u', 'c', 'i', 'l', 'i' };
+static const symbol s_2_1021[4] = { 'n', 'i', 'l', 'i' };
+static const symbol s_2_1022[6] = { 'r', 'o', 's', 'i', 'l', 'i' };
+static const symbol s_2_1023[6] = { 'j', 'e', 't', 'i', 'l', 'i' };
+static const symbol s_2_1024[5] = { 'o', 'z', 'i', 'l', 'i' };
+static const symbol s_2_1025[6] = { 'a', 0xC4, 0x8D, 'i', 'l', 'i' };
+static const symbol s_2_1026[7] = { 'l', 'u', 0xC4, 0x8D, 'i', 'l', 'i' };
+static const symbol s_2_1027[7] = { 'r', 'o', 0xC5, 0xA1, 'i', 'l', 'i' };
+static const symbol s_2_1028[3] = { 'o', 'l', 'i' };
+static const symbol s_2_1029[4] = { 'a', 's', 'l', 'i' };
+static const symbol s_2_1030[4] = { 'n', 'u', 'l', 'i' };
+static const symbol s_2_1031[4] = { 'r', 'a', 'm', 'i' };
+static const symbol s_2_1032[4] = { 'l', 'e', 'm', 'i' };
+static const symbol s_2_1033[2] = { 'n', 'i' };
+static const symbol s_2_1034[3] = { 'a', 'n', 'i' };
+static const symbol s_2_1035[5] = { 'a', 'c', 'a', 'n', 'i' };
+static const symbol s_2_1036[5] = { 'u', 'r', 'a', 'n', 'i' };
+static const symbol s_2_1037[4] = { 't', 'a', 'n', 'i' };
+static const symbol s_2_1038[5] = { 'a', 'v', 'a', 'n', 'i' };
+static const symbol s_2_1039[5] = { 'e', 'v', 'a', 'n', 'i' };
+static const symbol s_2_1040[5] = { 'i', 'v', 'a', 'n', 'i' };
+static const symbol s_2_1041[5] = { 'u', 'v', 'a', 'n', 'i' };
+static const symbol s_2_1042[6] = { 'a', 0xC4, 0x8D, 'a', 'n', 'i' };
+static const symbol s_2_1043[5] = { 'a', 'c', 'e', 'n', 'i' };
+static const symbol s_2_1044[6] = { 'l', 'u', 'c', 'e', 'n', 'i' };
+static const symbol s_2_1045[6] = { 'a', 0xC4, 0x8D, 'e', 'n', 'i' };
+static const symbol s_2_1046[7] = { 'l', 'u', 0xC4, 0x8D, 'e', 'n', 'i' };
+static const symbol s_2_1047[3] = { 'i', 'n', 'i' };
+static const symbol s_2_1048[4] = { 'c', 'i', 'n', 'i' };
+static const symbol s_2_1049[5] = { 0xC4, 0x8D, 'i', 'n', 'i' };
+static const symbol s_2_1050[3] = { 'o', 'n', 'i' };
+static const symbol s_2_1051[3] = { 'a', 'r', 'i' };
+static const symbol s_2_1052[3] = { 'd', 'r', 'i' };
+static const symbol s_2_1053[3] = { 'e', 'r', 'i' };
+static const symbol s_2_1054[3] = { 'o', 'r', 'i' };
+static const symbol s_2_1055[4] = { 'b', 'a', 's', 'i' };
+static const symbol s_2_1056[4] = { 'g', 'a', 's', 'i' };
+static const symbol s_2_1057[4] = { 'j', 'a', 's', 'i' };
+static const symbol s_2_1058[4] = { 'k', 'a', 's', 'i' };
+static const symbol s_2_1059[4] = { 'n', 'a', 's', 'i' };
+static const symbol s_2_1060[4] = { 't', 'a', 's', 'i' };
+static const symbol s_2_1061[4] = { 'v', 'a', 's', 'i' };
+static const symbol s_2_1062[3] = { 'e', 's', 'i' };
+static const symbol s_2_1063[3] = { 'i', 's', 'i' };
+static const symbol s_2_1064[3] = { 'o', 's', 'i' };
+static const symbol s_2_1065[4] = { 'a', 'v', 's', 'i' };
+static const symbol s_2_1066[6] = { 'a', 'c', 'a', 'v', 's', 'i' };
+static const symbol s_2_1067[6] = { 'i', 'r', 'a', 'v', 's', 'i' };
+static const symbol s_2_1068[5] = { 't', 'a', 'v', 's', 'i' };
+static const symbol s_2_1069[6] = { 'e', 't', 'a', 'v', 's', 'i' };
+static const symbol s_2_1070[7] = { 'a', 's', 't', 'a', 'v', 's', 'i' };
+static const symbol s_2_1071[7] = { 'i', 's', 't', 'a', 'v', 's', 'i' };
+static const symbol s_2_1072[7] = { 'o', 's', 't', 'a', 'v', 's', 'i' };
+static const symbol s_2_1073[4] = { 'i', 'v', 's', 'i' };
+static const symbol s_2_1074[5] = { 'n', 'i', 'v', 's', 'i' };
+static const symbol s_2_1075[7] = { 'r', 'o', 's', 'i', 'v', 's', 'i' };
+static const symbol s_2_1076[5] = { 'n', 'u', 'v', 's', 'i' };
+static const symbol s_2_1077[3] = { 'a', 't', 'i' };
+static const symbol s_2_1078[5] = { 'a', 'c', 'a', 't', 'i' };
+static const symbol s_2_1079[8] = { 'a', 's', 't', 'a', 'j', 'a', 't', 'i' };
+static const symbol s_2_1080[8] = { 'i', 's', 't', 'a', 'j', 'a', 't', 'i' };
+static const symbol s_2_1081[8] = { 'o', 's', 't', 'a', 'j', 'a', 't', 'i' };
+static const symbol s_2_1082[6] = { 'i', 'n', 'j', 'a', 't', 'i' };
+static const symbol s_2_1083[5] = { 'i', 'k', 'a', 't', 'i' };
+static const symbol s_2_1084[4] = { 'l', 'a', 't', 'i' };
+static const symbol s_2_1085[5] = { 'i', 'r', 'a', 't', 'i' };
+static const symbol s_2_1086[5] = { 'u', 'r', 'a', 't', 'i' };
+static const symbol s_2_1087[4] = { 't', 'a', 't', 'i' };
+static const symbol s_2_1088[6] = { 'a', 's', 't', 'a', 't', 'i' };
+static const symbol s_2_1089[6] = { 'i', 's', 't', 'a', 't', 'i' };
+static const symbol s_2_1090[6] = { 'o', 's', 't', 'a', 't', 'i' };
+static const symbol s_2_1091[5] = { 'a', 'v', 'a', 't', 'i' };
+static const symbol s_2_1092[5] = { 'e', 'v', 'a', 't', 'i' };
+static const symbol s_2_1093[5] = { 'i', 'v', 'a', 't', 'i' };
+static const symbol s_2_1094[5] = { 'o', 'v', 'a', 't', 'i' };
+static const symbol s_2_1095[5] = { 'u', 'v', 'a', 't', 'i' };
+static const symbol s_2_1096[6] = { 'a', 0xC4, 0x8D, 'a', 't', 'i' };
+static const symbol s_2_1097[3] = { 'e', 't', 'i' };
+static const symbol s_2_1098[3] = { 'i', 't', 'i' };
+static const symbol s_2_1099[5] = { 'a', 'c', 'i', 't', 'i' };
+static const symbol s_2_1100[6] = { 'l', 'u', 'c', 'i', 't', 'i' };
+static const symbol s_2_1101[4] = { 'n', 'i', 't', 'i' };
+static const symbol s_2_1102[6] = { 'r', 'o', 's', 'i', 't', 'i' };
+static const symbol s_2_1103[6] = { 'j', 'e', 't', 'i', 't', 'i' };
+static const symbol s_2_1104[5] = { 'e', 'v', 'i', 't', 'i' };
+static const symbol s_2_1105[5] = { 'o', 'v', 'i', 't', 'i' };
+static const symbol s_2_1106[6] = { 'a', 0xC4, 0x8D, 'i', 't', 'i' };
+static const symbol s_2_1107[7] = { 'l', 'u', 0xC4, 0x8D, 'i', 't', 'i' };
+static const symbol s_2_1108[7] = { 'r', 'o', 0xC5, 0xA1, 'i', 't', 'i' };
+static const symbol s_2_1109[4] = { 'a', 's', 't', 'i' };
+static const symbol s_2_1110[4] = { 'e', 's', 't', 'i' };
+static const symbol s_2_1111[4] = { 'i', 's', 't', 'i' };
+static const symbol s_2_1112[4] = { 'k', 's', 't', 'i' };
+static const symbol s_2_1113[4] = { 'o', 's', 't', 'i' };
+static const symbol s_2_1114[4] = { 'n', 'u', 't', 'i' };
+static const symbol s_2_1115[3] = { 'a', 'v', 'i' };
+static const symbol s_2_1116[3] = { 'e', 'v', 'i' };
+static const symbol s_2_1117[5] = { 'a', 'j', 'e', 'v', 'i' };
+static const symbol s_2_1118[6] = { 'c', 'a', 'j', 'e', 'v', 'i' };
+static const symbol s_2_1119[6] = { 'l', 'a', 'j', 'e', 'v', 'i' };
+static const symbol s_2_1120[6] = { 'r', 'a', 'j', 'e', 'v', 'i' };
+static const symbol s_2_1121[7] = { 0xC4, 0x87, 'a', 'j', 'e', 'v', 'i' };
+static const symbol s_2_1122[7] = { 0xC4, 0x8D, 'a', 'j', 'e', 'v', 'i' };
+static const symbol s_2_1123[7] = { 0xC4, 0x91, 'a', 'j', 'e', 'v', 'i' };
+static const symbol s_2_1124[3] = { 'i', 'v', 'i' };
+static const symbol s_2_1125[3] = { 'o', 'v', 'i' };
+static const symbol s_2_1126[4] = { 'g', 'o', 'v', 'i' };
+static const symbol s_2_1127[5] = { 'u', 'g', 'o', 'v', 'i' };
+static const symbol s_2_1128[4] = { 'l', 'o', 'v', 'i' };
+static const symbol s_2_1129[5] = { 'o', 'l', 'o', 'v', 'i' };
+static const symbol s_2_1130[4] = { 'm', 'o', 'v', 'i' };
+static const symbol s_2_1131[5] = { 'o', 'n', 'o', 'v', 'i' };
+static const symbol s_2_1132[5] = { 'i', 'e', 0xC4, 0x87, 'i' };
+static const symbol s_2_1133[7] = { 'a', 0xC4, 0x8D, 'e', 0xC4, 0x87, 'i' };
+static const symbol s_2_1134[6] = { 'a', 'j', 'u', 0xC4, 0x87, 'i' };
+static const symbol s_2_1135[8] = { 'i', 'r', 'a', 'j', 'u', 0xC4, 0x87, 'i' };
+static const symbol s_2_1136[8] = { 'u', 'r', 'a', 'j', 'u', 0xC4, 0x87, 'i' };
+static const symbol s_2_1137[9] = { 'a', 's', 't', 'a', 'j', 'u', 0xC4, 0x87, 'i' };
+static const symbol s_2_1138[9] = { 'i', 's', 't', 'a', 'j', 'u', 0xC4, 0x87, 'i' };
+static const symbol s_2_1139[9] = { 'o', 's', 't', 'a', 'j', 'u', 0xC4, 0x87, 'i' };
+static const symbol s_2_1140[8] = { 'a', 'v', 'a', 'j', 'u', 0xC4, 0x87, 'i' };
+static const symbol s_2_1141[8] = { 'e', 'v', 'a', 'j', 'u', 0xC4, 0x87, 'i' };
+static const symbol s_2_1142[8] = { 'i', 'v', 'a', 'j', 'u', 0xC4, 0x87, 'i' };
+static const symbol s_2_1143[8] = { 'u', 'v', 'a', 'j', 'u', 0xC4, 0x87, 'i' };
+static const symbol s_2_1144[6] = { 'u', 'j', 'u', 0xC4, 0x87, 'i' };
+static const symbol s_2_1145[8] = { 'i', 'r', 'u', 'j', 'u', 0xC4, 0x87, 'i' };
+static const symbol s_2_1146[10] = { 'l', 'u', 0xC4, 0x8D, 'u', 'j', 'u', 0xC4, 0x87, 'i' };
+static const symbol s_2_1147[5] = { 'n', 'u', 0xC4, 0x87, 'i' };
+static const symbol s_2_1148[6] = { 'e', 't', 'u', 0xC4, 0x87, 'i' };
+static const symbol s_2_1149[7] = { 'a', 's', 't', 'u', 0xC4, 0x87, 'i' };
+static const symbol s_2_1150[4] = { 'a', 0xC4, 0x8D, 'i' };
+static const symbol s_2_1151[5] = { 'l', 'u', 0xC4, 0x8D, 'i' };
+static const symbol s_2_1152[5] = { 'b', 'a', 0xC5, 0xA1, 'i' };
+static const symbol s_2_1153[5] = { 'g', 'a', 0xC5, 0xA1, 'i' };
+static const symbol s_2_1154[5] = { 'j', 'a', 0xC5, 0xA1, 'i' };
+static const symbol s_2_1155[5] = { 'k', 'a', 0xC5, 0xA1, 'i' };
+static const symbol s_2_1156[5] = { 'n', 'a', 0xC5, 0xA1, 'i' };
+static const symbol s_2_1157[5] = { 't', 'a', 0xC5, 0xA1, 'i' };
+static const symbol s_2_1158[5] = { 'v', 'a', 0xC5, 0xA1, 'i' };
+static const symbol s_2_1159[4] = { 'e', 0xC5, 0xA1, 'i' };
+static const symbol s_2_1160[4] = { 'i', 0xC5, 0xA1, 'i' };
+static const symbol s_2_1161[4] = { 'o', 0xC5, 0xA1, 'i' };
+static const symbol s_2_1162[5] = { 'a', 'v', 0xC5, 0xA1, 'i' };
+static const symbol s_2_1163[7] = { 'i', 'r', 'a', 'v', 0xC5, 0xA1, 'i' };
+static const symbol s_2_1164[6] = { 't', 'a', 'v', 0xC5, 0xA1, 'i' };
+static const symbol s_2_1165[7] = { 'e', 't', 'a', 'v', 0xC5, 0xA1, 'i' };
+static const symbol s_2_1166[8] = { 'a', 's', 't', 'a', 'v', 0xC5, 0xA1, 'i' };
+static const symbol s_2_1167[8] = { 'i', 's', 't', 'a', 'v', 0xC5, 0xA1, 'i' };
+static const symbol s_2_1168[8] = { 'o', 's', 't', 'a', 'v', 0xC5, 0xA1, 'i' };
+static const symbol s_2_1169[8] = { 'a', 0xC4, 0x8D, 'a', 'v', 0xC5, 0xA1, 'i' };
+static const symbol s_2_1170[5] = { 'i', 'v', 0xC5, 0xA1, 'i' };
+static const symbol s_2_1171[6] = { 'n', 'i', 'v', 0xC5, 0xA1, 'i' };
+static const symbol s_2_1172[9] = { 'r', 'o', 0xC5, 0xA1, 'i', 'v', 0xC5, 0xA1, 'i' };
+static const symbol s_2_1173[6] = { 'n', 'u', 'v', 0xC5, 0xA1, 'i' };
+static const symbol s_2_1174[2] = { 'a', 'j' };
+static const symbol s_2_1175[4] = { 'u', 'r', 'a', 'j' };
+static const symbol s_2_1176[3] = { 't', 'a', 'j' };
+static const symbol s_2_1177[4] = { 'a', 'v', 'a', 'j' };
+static const symbol s_2_1178[4] = { 'e', 'v', 'a', 'j' };
+static const symbol s_2_1179[4] = { 'i', 'v', 'a', 'j' };
+static const symbol s_2_1180[4] = { 'u', 'v', 'a', 'j' };
+static const symbol s_2_1181[2] = { 'i', 'j' };
+static const symbol s_2_1182[4] = { 'a', 'c', 'o', 'j' };
+static const symbol s_2_1183[4] = { 'e', 'c', 'o', 'j' };
+static const symbol s_2_1184[4] = { 'u', 'c', 'o', 'j' };
+static const symbol s_2_1185[7] = { 'a', 'n', 'j', 'i', 'j', 'o', 'j' };
+static const symbol s_2_1186[7] = { 'e', 'n', 'j', 'i', 'j', 'o', 'j' };
+static const symbol s_2_1187[7] = { 's', 'n', 'j', 'i', 'j', 'o', 'j' };
+static const symbol s_2_1188[8] = { 0xC5, 0xA1, 'n', 'j', 'i', 'j', 'o', 'j' };
+static const symbol s_2_1189[5] = { 'k', 'i', 'j', 'o', 'j' };
+static const symbol s_2_1190[6] = { 's', 'k', 'i', 'j', 'o', 'j' };
+static const symbol s_2_1191[7] = { 0xC5, 0xA1, 'k', 'i', 'j', 'o', 'j' };
+static const symbol s_2_1192[6] = { 'e', 'l', 'i', 'j', 'o', 'j' };
+static const symbol s_2_1193[5] = { 'n', 'i', 'j', 'o', 'j' };
+static const symbol s_2_1194[6] = { 'o', 's', 'i', 'j', 'o', 'j' };
+static const symbol s_2_1195[8] = { 'e', 'v', 'i', 't', 'i', 'j', 'o', 'j' };
+static const symbol s_2_1196[8] = { 'o', 'v', 'i', 't', 'i', 'j', 'o', 'j' };
+static const symbol s_2_1197[7] = { 'a', 's', 't', 'i', 'j', 'o', 'j' };
+static const symbol s_2_1198[6] = { 'a', 'v', 'i', 'j', 'o', 'j' };
+static const symbol s_2_1199[6] = { 'e', 'v', 'i', 'j', 'o', 'j' };
+static const symbol s_2_1200[6] = { 'i', 'v', 'i', 'j', 'o', 'j' };
+static const symbol s_2_1201[6] = { 'o', 'v', 'i', 'j', 'o', 'j' };
+static const symbol s_2_1202[7] = { 'o', 0xC5, 0xA1, 'i', 'j', 'o', 'j' };
+static const symbol s_2_1203[5] = { 'a', 'n', 'j', 'o', 'j' };
+static const symbol s_2_1204[5] = { 'e', 'n', 'j', 'o', 'j' };
+static const symbol s_2_1205[5] = { 's', 'n', 'j', 'o', 'j' };
+static const symbol s_2_1206[6] = { 0xC5, 0xA1, 'n', 'j', 'o', 'j' };
+static const symbol s_2_1207[3] = { 'k', 'o', 'j' };
+static const symbol s_2_1208[4] = { 's', 'k', 'o', 'j' };
+static const symbol s_2_1209[5] = { 0xC5, 0xA1, 'k', 'o', 'j' };
+static const symbol s_2_1210[4] = { 'a', 'l', 'o', 'j' };
+static const symbol s_2_1211[4] = { 'e', 'l', 'o', 'j' };
+static const symbol s_2_1212[3] = { 'n', 'o', 'j' };
+static const symbol s_2_1213[5] = { 'c', 'i', 'n', 'o', 'j' };
+static const symbol s_2_1214[6] = { 0xC4, 0x8D, 'i', 'n', 'o', 'j' };
+static const symbol s_2_1215[4] = { 'o', 's', 'o', 'j' };
+static const symbol s_2_1216[4] = { 'a', 't', 'o', 'j' };
+static const symbol s_2_1217[6] = { 'e', 'v', 'i', 't', 'o', 'j' };
+static const symbol s_2_1218[6] = { 'o', 'v', 'i', 't', 'o', 'j' };
+static const symbol s_2_1219[5] = { 'a', 's', 't', 'o', 'j' };
+static const symbol s_2_1220[4] = { 'a', 'v', 'o', 'j' };
+static const symbol s_2_1221[4] = { 'e', 'v', 'o', 'j' };
+static const symbol s_2_1222[4] = { 'i', 'v', 'o', 'j' };
+static const symbol s_2_1223[4] = { 'o', 'v', 'o', 'j' };
+static const symbol s_2_1224[5] = { 'a', 0xC4, 0x87, 'o', 'j' };
+static const symbol s_2_1225[5] = { 'e', 0xC4, 0x87, 'o', 'j' };
+static const symbol s_2_1226[5] = { 'u', 0xC4, 0x87, 'o', 'j' };
+static const symbol s_2_1227[5] = { 'o', 0xC5, 0xA1, 'o', 'j' };
+static const symbol s_2_1228[5] = { 'l', 'u', 'c', 'u', 'j' };
+static const symbol s_2_1229[4] = { 'i', 'r', 'u', 'j' };
+static const symbol s_2_1230[6] = { 'l', 'u', 0xC4, 0x8D, 'u', 'j' };
+static const symbol s_2_1231[2] = { 'a', 'l' };
+static const symbol s_2_1232[4] = { 'i', 'r', 'a', 'l' };
+static const symbol s_2_1233[4] = { 'u', 'r', 'a', 'l' };
+static const symbol s_2_1234[2] = { 'e', 'l' };
+static const symbol s_2_1235[2] = { 'i', 'l' };
+static const symbol s_2_1236[2] = { 'a', 'm' };
+static const symbol s_2_1237[4] = { 'a', 'c', 'a', 'm' };
+static const symbol s_2_1238[4] = { 'i', 'r', 'a', 'm' };
+static const symbol s_2_1239[4] = { 'u', 'r', 'a', 'm' };
+static const symbol s_2_1240[3] = { 't', 'a', 'm' };
+static const symbol s_2_1241[4] = { 'a', 'v', 'a', 'm' };
+static const symbol s_2_1242[4] = { 'e', 'v', 'a', 'm' };
+static const symbol s_2_1243[4] = { 'i', 'v', 'a', 'm' };
+static const symbol s_2_1244[4] = { 'u', 'v', 'a', 'm' };
+static const symbol s_2_1245[5] = { 'a', 0xC4, 0x8D, 'a', 'm' };
+static const symbol s_2_1246[2] = { 'e', 'm' };
+static const symbol s_2_1247[4] = { 'a', 'c', 'e', 'm' };
+static const symbol s_2_1248[4] = { 'e', 'c', 'e', 'm' };
+static const symbol s_2_1249[4] = { 'u', 'c', 'e', 'm' };
+static const symbol s_2_1250[7] = { 'a', 's', 't', 'a', 'd', 'e', 'm' };
+static const symbol s_2_1251[7] = { 'i', 's', 't', 'a', 'd', 'e', 'm' };
+static const symbol s_2_1252[7] = { 'o', 's', 't', 'a', 'd', 'e', 'm' };
+static const symbol s_2_1253[4] = { 'a', 'j', 'e', 'm' };
+static const symbol s_2_1254[5] = { 'c', 'a', 'j', 'e', 'm' };
+static const symbol s_2_1255[5] = { 'l', 'a', 'j', 'e', 'm' };
+static const symbol s_2_1256[5] = { 'r', 'a', 'j', 'e', 'm' };
+static const symbol s_2_1257[7] = { 'a', 's', 't', 'a', 'j', 'e', 'm' };
+static const symbol s_2_1258[7] = { 'i', 's', 't', 'a', 'j', 'e', 'm' };
+static const symbol s_2_1259[7] = { 'o', 's', 't', 'a', 'j', 'e', 'm' };
+static const symbol s_2_1260[6] = { 0xC4, 0x87, 'a', 'j', 'e', 'm' };
+static const symbol s_2_1261[6] = { 0xC4, 0x8D, 'a', 'j', 'e', 'm' };
+static const symbol s_2_1262[6] = { 0xC4, 0x91, 'a', 'j', 'e', 'm' };
+static const symbol s_2_1263[4] = { 'i', 'j', 'e', 'm' };
+static const symbol s_2_1264[7] = { 'a', 'n', 'j', 'i', 'j', 'e', 'm' };
+static const symbol s_2_1265[7] = { 'e', 'n', 'j', 'i', 'j', 'e', 'm' };
+static const symbol s_2_1266[7] = { 's', 'n', 'j', 'i', 'j', 'e', 'm' };
+static const symbol s_2_1267[8] = { 0xC5, 0xA1, 'n', 'j', 'i', 'j', 'e', 'm' };
+static const symbol s_2_1268[5] = { 'k', 'i', 'j', 'e', 'm' };
+static const symbol s_2_1269[6] = { 's', 'k', 'i', 'j', 'e', 'm' };
+static const symbol s_2_1270[7] = { 0xC5, 0xA1, 'k', 'i', 'j', 'e', 'm' };
+static const symbol s_2_1271[5] = { 'l', 'i', 'j', 'e', 'm' };
+static const symbol s_2_1272[6] = { 'e', 'l', 'i', 'j', 'e', 'm' };
+static const symbol s_2_1273[5] = { 'n', 'i', 'j', 'e', 'm' };
+static const symbol s_2_1274[7] = { 'r', 'a', 'r', 'i', 'j', 'e', 'm' };
+static const symbol s_2_1275[5] = { 's', 'i', 'j', 'e', 'm' };
+static const symbol s_2_1276[6] = { 'o', 's', 'i', 'j', 'e', 'm' };
+static const symbol s_2_1277[6] = { 'a', 't', 'i', 'j', 'e', 'm' };
+static const symbol s_2_1278[8] = { 'e', 'v', 'i', 't', 'i', 'j', 'e', 'm' };
+static const symbol s_2_1279[8] = { 'o', 'v', 'i', 't', 'i', 'j', 'e', 'm' };
+static const symbol s_2_1280[6] = { 'o', 't', 'i', 'j', 'e', 'm' };
+static const symbol s_2_1281[7] = { 'a', 's', 't', 'i', 'j', 'e', 'm' };
+static const symbol s_2_1282[6] = { 'a', 'v', 'i', 'j', 'e', 'm' };
+static const symbol s_2_1283[6] = { 'e', 'v', 'i', 'j', 'e', 'm' };
+static const symbol s_2_1284[6] = { 'i', 'v', 'i', 'j', 'e', 'm' };
+static const symbol s_2_1285[6] = { 'o', 'v', 'i', 'j', 'e', 'm' };
+static const symbol s_2_1286[7] = { 'o', 0xC5, 0xA1, 'i', 'j', 'e', 'm' };
+static const symbol s_2_1287[5] = { 'a', 'n', 'j', 'e', 'm' };
+static const symbol s_2_1288[5] = { 'e', 'n', 'j', 'e', 'm' };
+static const symbol s_2_1289[5] = { 'i', 'n', 'j', 'e', 'm' };
+static const symbol s_2_1290[5] = { 's', 'n', 'j', 'e', 'm' };
+static const symbol s_2_1291[6] = { 0xC5, 0xA1, 'n', 'j', 'e', 'm' };
+static const symbol s_2_1292[4] = { 'u', 'j', 'e', 'm' };
+static const symbol s_2_1293[7] = { 'l', 'u', 'c', 'u', 'j', 'e', 'm' };
+static const symbol s_2_1294[6] = { 'i', 'r', 'u', 'j', 'e', 'm' };
+static const symbol s_2_1295[8] = { 'l', 'u', 0xC4, 0x8D, 'u', 'j', 'e', 'm' };
+static const symbol s_2_1296[3] = { 'k', 'e', 'm' };
+static const symbol s_2_1297[4] = { 's', 'k', 'e', 'm' };
+static const symbol s_2_1298[5] = { 0xC5, 0xA1, 'k', 'e', 'm' };
+static const symbol s_2_1299[4] = { 'e', 'l', 'e', 'm' };
+static const symbol s_2_1300[3] = { 'n', 'e', 'm' };
+static const symbol s_2_1301[4] = { 'a', 'n', 'e', 'm' };
+static const symbol s_2_1302[7] = { 'a', 's', 't', 'a', 'n', 'e', 'm' };
+static const symbol s_2_1303[7] = { 'i', 's', 't', 'a', 'n', 'e', 'm' };
+static const symbol s_2_1304[7] = { 'o', 's', 't', 'a', 'n', 'e', 'm' };
+static const symbol s_2_1305[4] = { 'e', 'n', 'e', 'm' };
+static const symbol s_2_1306[4] = { 's', 'n', 'e', 'm' };
+static const symbol s_2_1307[5] = { 0xC5, 0xA1, 'n', 'e', 'm' };
+static const symbol s_2_1308[5] = { 'b', 'a', 's', 'e', 'm' };
+static const symbol s_2_1309[5] = { 'g', 'a', 's', 'e', 'm' };
+static const symbol s_2_1310[5] = { 'j', 'a', 's', 'e', 'm' };
+static const symbol s_2_1311[5] = { 'k', 'a', 's', 'e', 'm' };
+static const symbol s_2_1312[5] = { 'n', 'a', 's', 'e', 'm' };
+static const symbol s_2_1313[5] = { 't', 'a', 's', 'e', 'm' };
+static const symbol s_2_1314[5] = { 'v', 'a', 's', 'e', 'm' };
+static const symbol s_2_1315[4] = { 'e', 's', 'e', 'm' };
+static const symbol s_2_1316[4] = { 'i', 's', 'e', 'm' };
+static const symbol s_2_1317[4] = { 'o', 's', 'e', 'm' };
+static const symbol s_2_1318[4] = { 'a', 't', 'e', 'm' };
+static const symbol s_2_1319[4] = { 'e', 't', 'e', 'm' };
+static const symbol s_2_1320[6] = { 'e', 'v', 'i', 't', 'e', 'm' };
+static const symbol s_2_1321[6] = { 'o', 'v', 'i', 't', 'e', 'm' };
+static const symbol s_2_1322[5] = { 'a', 's', 't', 'e', 'm' };
+static const symbol s_2_1323[5] = { 'i', 's', 't', 'e', 'm' };
+static const symbol s_2_1324[6] = { 'i', 0xC5, 0xA1, 't', 'e', 'm' };
+static const symbol s_2_1325[4] = { 'a', 'v', 'e', 'm' };
+static const symbol s_2_1326[4] = { 'e', 'v', 'e', 'm' };
+static const symbol s_2_1327[4] = { 'i', 'v', 'e', 'm' };
+static const symbol s_2_1328[5] = { 'a', 0xC4, 0x87, 'e', 'm' };
+static const symbol s_2_1329[5] = { 'e', 0xC4, 0x87, 'e', 'm' };
+static const symbol s_2_1330[5] = { 'u', 0xC4, 0x87, 'e', 'm' };
+static const symbol s_2_1331[6] = { 'b', 'a', 0xC5, 0xA1, 'e', 'm' };
+static const symbol s_2_1332[6] = { 'g', 'a', 0xC5, 0xA1, 'e', 'm' };
+static const symbol s_2_1333[6] = { 'j', 'a', 0xC5, 0xA1, 'e', 'm' };
+static const symbol s_2_1334[6] = { 'k', 'a', 0xC5, 0xA1, 'e', 'm' };
+static const symbol s_2_1335[6] = { 'n', 'a', 0xC5, 0xA1, 'e', 'm' };
+static const symbol s_2_1336[6] = { 't', 'a', 0xC5, 0xA1, 'e', 'm' };
+static const symbol s_2_1337[6] = { 'v', 'a', 0xC5, 0xA1, 'e', 'm' };
+static const symbol s_2_1338[5] = { 'e', 0xC5, 0xA1, 'e', 'm' };
+static const symbol s_2_1339[5] = { 'i', 0xC5, 0xA1, 'e', 'm' };
+static const symbol s_2_1340[5] = { 'o', 0xC5, 0xA1, 'e', 'm' };
+static const symbol s_2_1341[2] = { 'i', 'm' };
+static const symbol s_2_1342[4] = { 'a', 'c', 'i', 'm' };
+static const symbol s_2_1343[4] = { 'e', 'c', 'i', 'm' };
+static const symbol s_2_1344[4] = { 'u', 'c', 'i', 'm' };
+static const symbol s_2_1345[5] = { 'l', 'u', 'c', 'i', 'm' };
+static const symbol s_2_1346[7] = { 'a', 'n', 'j', 'i', 'j', 'i', 'm' };
+static const symbol s_2_1347[7] = { 'e', 'n', 'j', 'i', 'j', 'i', 'm' };
+static const symbol s_2_1348[7] = { 's', 'n', 'j', 'i', 'j', 'i', 'm' };
+static const symbol s_2_1349[8] = { 0xC5, 0xA1, 'n', 'j', 'i', 'j', 'i', 'm' };
+static const symbol s_2_1350[5] = { 'k', 'i', 'j', 'i', 'm' };
+static const symbol s_2_1351[6] = { 's', 'k', 'i', 'j', 'i', 'm' };
+static const symbol s_2_1352[7] = { 0xC5, 0xA1, 'k', 'i', 'j', 'i', 'm' };
+static const symbol s_2_1353[6] = { 'e', 'l', 'i', 'j', 'i', 'm' };
+static const symbol s_2_1354[5] = { 'n', 'i', 'j', 'i', 'm' };
+static const symbol s_2_1355[6] = { 'o', 's', 'i', 'j', 'i', 'm' };
+static const symbol s_2_1356[6] = { 'a', 't', 'i', 'j', 'i', 'm' };
+static const symbol s_2_1357[8] = { 'e', 'v', 'i', 't', 'i', 'j', 'i', 'm' };
+static const symbol s_2_1358[8] = { 'o', 'v', 'i', 't', 'i', 'j', 'i', 'm' };
+static const symbol s_2_1359[7] = { 'a', 's', 't', 'i', 'j', 'i', 'm' };
+static const symbol s_2_1360[6] = { 'a', 'v', 'i', 'j', 'i', 'm' };
+static const symbol s_2_1361[6] = { 'e', 'v', 'i', 'j', 'i', 'm' };
+static const symbol s_2_1362[6] = { 'i', 'v', 'i', 'j', 'i', 'm' };
+static const symbol s_2_1363[6] = { 'o', 'v', 'i', 'j', 'i', 'm' };
+static const symbol s_2_1364[7] = { 'o', 0xC5, 0xA1, 'i', 'j', 'i', 'm' };
+static const symbol s_2_1365[5] = { 'a', 'n', 'j', 'i', 'm' };
+static const symbol s_2_1366[5] = { 'e', 'n', 'j', 'i', 'm' };
+static const symbol s_2_1367[5] = { 's', 'n', 'j', 'i', 'm' };
+static const symbol s_2_1368[6] = { 0xC5, 0xA1, 'n', 'j', 'i', 'm' };
+static const symbol s_2_1369[3] = { 'k', 'i', 'm' };
+static const symbol s_2_1370[4] = { 's', 'k', 'i', 'm' };
+static const symbol s_2_1371[5] = { 0xC5, 0xA1, 'k', 'i', 'm' };
+static const symbol s_2_1372[4] = { 'e', 'l', 'i', 'm' };
+static const symbol s_2_1373[3] = { 'n', 'i', 'm' };
+static const symbol s_2_1374[5] = { 'c', 'i', 'n', 'i', 'm' };
+static const symbol s_2_1375[6] = { 0xC4, 0x8D, 'i', 'n', 'i', 'm' };
+static const symbol s_2_1376[4] = { 'o', 's', 'i', 'm' };
+static const symbol s_2_1377[5] = { 'r', 'o', 's', 'i', 'm' };
+static const symbol s_2_1378[4] = { 'a', 't', 'i', 'm' };
+static const symbol s_2_1379[5] = { 'j', 'e', 't', 'i', 'm' };
+static const symbol s_2_1380[6] = { 'e', 'v', 'i', 't', 'i', 'm' };
+static const symbol s_2_1381[6] = { 'o', 'v', 'i', 't', 'i', 'm' };
+static const symbol s_2_1382[5] = { 'a', 's', 't', 'i', 'm' };
+static const symbol s_2_1383[4] = { 'a', 'v', 'i', 'm' };
+static const symbol s_2_1384[4] = { 'e', 'v', 'i', 'm' };
+static const symbol s_2_1385[4] = { 'i', 'v', 'i', 'm' };
+static const symbol s_2_1386[4] = { 'o', 'v', 'i', 'm' };
+static const symbol s_2_1387[5] = { 'a', 0xC4, 0x87, 'i', 'm' };
+static const symbol s_2_1388[5] = { 'e', 0xC4, 0x87, 'i', 'm' };
+static const symbol s_2_1389[5] = { 'u', 0xC4, 0x87, 'i', 'm' };
+static const symbol s_2_1390[5] = { 'a', 0xC4, 0x8D, 'i', 'm' };
+static const symbol s_2_1391[6] = { 'l', 'u', 0xC4, 0x8D, 'i', 'm' };
+static const symbol s_2_1392[5] = { 'o', 0xC5, 0xA1, 'i', 'm' };
+static const symbol s_2_1393[6] = { 'r', 'o', 0xC5, 0xA1, 'i', 'm' };
+static const symbol s_2_1394[4] = { 'a', 'c', 'o', 'm' };
+static const symbol s_2_1395[4] = { 'e', 'c', 'o', 'm' };
+static const symbol s_2_1396[4] = { 'u', 'c', 'o', 'm' };
+static const symbol s_2_1397[3] = { 'g', 'o', 'm' };
+static const symbol s_2_1398[5] = { 'l', 'o', 'g', 'o', 'm' };
+static const symbol s_2_1399[4] = { 'u', 'g', 'o', 'm' };
+static const symbol s_2_1400[5] = { 'b', 'i', 'j', 'o', 'm' };
+static const symbol s_2_1401[5] = { 'c', 'i', 'j', 'o', 'm' };
+static const symbol s_2_1402[5] = { 'd', 'i', 'j', 'o', 'm' };
+static const symbol s_2_1403[5] = { 'f', 'i', 'j', 'o', 'm' };
+static const symbol s_2_1404[5] = { 'g', 'i', 'j', 'o', 'm' };
+static const symbol s_2_1405[5] = { 'l', 'i', 'j', 'o', 'm' };
+static const symbol s_2_1406[5] = { 'm', 'i', 'j', 'o', 'm' };
+static const symbol s_2_1407[5] = { 'n', 'i', 'j', 'o', 'm' };
+static const symbol s_2_1408[7] = { 'g', 'a', 'n', 'i', 'j', 'o', 'm' };
+static const symbol s_2_1409[7] = { 'm', 'a', 'n', 'i', 'j', 'o', 'm' };
+static const symbol s_2_1410[7] = { 'p', 'a', 'n', 'i', 'j', 'o', 'm' };
+static const symbol s_2_1411[7] = { 'r', 'a', 'n', 'i', 'j', 'o', 'm' };
+static const symbol s_2_1412[7] = { 't', 'a', 'n', 'i', 'j', 'o', 'm' };
+static const symbol s_2_1413[5] = { 'p', 'i', 'j', 'o', 'm' };
+static const symbol s_2_1414[5] = { 'r', 'i', 'j', 'o', 'm' };
+static const symbol s_2_1415[5] = { 's', 'i', 'j', 'o', 'm' };
+static const symbol s_2_1416[5] = { 't', 'i', 'j', 'o', 'm' };
+static const symbol s_2_1417[5] = { 'z', 'i', 'j', 'o', 'm' };
+static const symbol s_2_1418[6] = { 0xC5, 0xBE, 'i', 'j', 'o', 'm' };
+static const symbol s_2_1419[5] = { 'a', 'n', 'j', 'o', 'm' };
+static const symbol s_2_1420[5] = { 'e', 'n', 'j', 'o', 'm' };
+static const symbol s_2_1421[5] = { 's', 'n', 'j', 'o', 'm' };
+static const symbol s_2_1422[6] = { 0xC5, 0xA1, 'n', 'j', 'o', 'm' };
+static const symbol s_2_1423[3] = { 'k', 'o', 'm' };
+static const symbol s_2_1424[4] = { 's', 'k', 'o', 'm' };
+static const symbol s_2_1425[5] = { 0xC5, 0xA1, 'k', 'o', 'm' };
+static const symbol s_2_1426[4] = { 'a', 'l', 'o', 'm' };
+static const symbol s_2_1427[6] = { 'i', 'j', 'a', 'l', 'o', 'm' };
+static const symbol s_2_1428[5] = { 'n', 'a', 'l', 'o', 'm' };
+static const symbol s_2_1429[4] = { 'e', 'l', 'o', 'm' };
+static const symbol s_2_1430[4] = { 'i', 'l', 'o', 'm' };
+static const symbol s_2_1431[6] = { 'o', 'z', 'i', 'l', 'o', 'm' };
+static const symbol s_2_1432[4] = { 'o', 'l', 'o', 'm' };
+static const symbol s_2_1433[5] = { 'r', 'a', 'm', 'o', 'm' };
+static const symbol s_2_1434[5] = { 'l', 'e', 'm', 'o', 'm' };
+static const symbol s_2_1435[3] = { 'n', 'o', 'm' };
+static const symbol s_2_1436[4] = { 'a', 'n', 'o', 'm' };
+static const symbol s_2_1437[4] = { 'i', 'n', 'o', 'm' };
+static const symbol s_2_1438[5] = { 'c', 'i', 'n', 'o', 'm' };
+static const symbol s_2_1439[6] = { 'a', 'n', 'i', 'n', 'o', 'm' };
+static const symbol s_2_1440[6] = { 0xC4, 0x8D, 'i', 'n', 'o', 'm' };
+static const symbol s_2_1441[4] = { 'o', 'n', 'o', 'm' };
+static const symbol s_2_1442[4] = { 'a', 'r', 'o', 'm' };
+static const symbol s_2_1443[4] = { 'd', 'r', 'o', 'm' };
+static const symbol s_2_1444[4] = { 'e', 'r', 'o', 'm' };
+static const symbol s_2_1445[4] = { 'o', 'r', 'o', 'm' };
+static const symbol s_2_1446[5] = { 'b', 'a', 's', 'o', 'm' };
+static const symbol s_2_1447[5] = { 'g', 'a', 's', 'o', 'm' };
+static const symbol s_2_1448[5] = { 'j', 'a', 's', 'o', 'm' };
+static const symbol s_2_1449[5] = { 'k', 'a', 's', 'o', 'm' };
+static const symbol s_2_1450[5] = { 'n', 'a', 's', 'o', 'm' };
+static const symbol s_2_1451[5] = { 't', 'a', 's', 'o', 'm' };
+static const symbol s_2_1452[5] = { 'v', 'a', 's', 'o', 'm' };
+static const symbol s_2_1453[4] = { 'e', 's', 'o', 'm' };
+static const symbol s_2_1454[4] = { 'i', 's', 'o', 'm' };
+static const symbol s_2_1455[4] = { 'o', 's', 'o', 'm' };
+static const symbol s_2_1456[4] = { 'a', 't', 'o', 'm' };
+static const symbol s_2_1457[6] = { 'i', 'k', 'a', 't', 'o', 'm' };
+static const symbol s_2_1458[5] = { 'l', 'a', 't', 'o', 'm' };
+static const symbol s_2_1459[4] = { 'e', 't', 'o', 'm' };
+static const symbol s_2_1460[6] = { 'e', 'v', 'i', 't', 'o', 'm' };
+static const symbol s_2_1461[6] = { 'o', 'v', 'i', 't', 'o', 'm' };
+static const symbol s_2_1462[5] = { 'a', 's', 't', 'o', 'm' };
+static const symbol s_2_1463[5] = { 'e', 's', 't', 'o', 'm' };
+static const symbol s_2_1464[5] = { 'i', 's', 't', 'o', 'm' };
+static const symbol s_2_1465[5] = { 'k', 's', 't', 'o', 'm' };
+static const symbol s_2_1466[5] = { 'o', 's', 't', 'o', 'm' };
+static const symbol s_2_1467[4] = { 'a', 'v', 'o', 'm' };
+static const symbol s_2_1468[4] = { 'e', 'v', 'o', 'm' };
+static const symbol s_2_1469[4] = { 'i', 'v', 'o', 'm' };
+static const symbol s_2_1470[4] = { 'o', 'v', 'o', 'm' };
+static const symbol s_2_1471[5] = { 'l', 'o', 'v', 'o', 'm' };
+static const symbol s_2_1472[5] = { 'm', 'o', 'v', 'o', 'm' };
+static const symbol s_2_1473[5] = { 's', 't', 'v', 'o', 'm' };
+static const symbol s_2_1474[6] = { 0xC5, 0xA1, 't', 'v', 'o', 'm' };
+static const symbol s_2_1475[5] = { 'a', 0xC4, 0x87, 'o', 'm' };
+static const symbol s_2_1476[5] = { 'e', 0xC4, 0x87, 'o', 'm' };
+static const symbol s_2_1477[5] = { 'u', 0xC4, 0x87, 'o', 'm' };
+static const symbol s_2_1478[6] = { 'b', 'a', 0xC5, 0xA1, 'o', 'm' };
+static const symbol s_2_1479[6] = { 'g', 'a', 0xC5, 0xA1, 'o', 'm' };
+static const symbol s_2_1480[6] = { 'j', 'a', 0xC5, 0xA1, 'o', 'm' };
+static const symbol s_2_1481[6] = { 'k', 'a', 0xC5, 0xA1, 'o', 'm' };
+static const symbol s_2_1482[6] = { 'n', 'a', 0xC5, 0xA1, 'o', 'm' };
+static const symbol s_2_1483[6] = { 't', 'a', 0xC5, 0xA1, 'o', 'm' };
+static const symbol s_2_1484[6] = { 'v', 'a', 0xC5, 0xA1, 'o', 'm' };
+static const symbol s_2_1485[5] = { 'e', 0xC5, 0xA1, 'o', 'm' };
+static const symbol s_2_1486[5] = { 'i', 0xC5, 0xA1, 'o', 'm' };
+static const symbol s_2_1487[5] = { 'o', 0xC5, 0xA1, 'o', 'm' };
+static const symbol s_2_1488[2] = { 'a', 'n' };
+static const symbol s_2_1489[4] = { 'a', 'c', 'a', 'n' };
+static const symbol s_2_1490[4] = { 'i', 'r', 'a', 'n' };
+static const symbol s_2_1491[4] = { 'u', 'r', 'a', 'n' };
+static const symbol s_2_1492[3] = { 't', 'a', 'n' };
+static const symbol s_2_1493[4] = { 'a', 'v', 'a', 'n' };
+static const symbol s_2_1494[4] = { 'e', 'v', 'a', 'n' };
+static const symbol s_2_1495[4] = { 'i', 'v', 'a', 'n' };
+static const symbol s_2_1496[4] = { 'u', 'v', 'a', 'n' };
+static const symbol s_2_1497[5] = { 'a', 0xC4, 0x8D, 'a', 'n' };
+static const symbol s_2_1498[4] = { 'a', 'c', 'e', 'n' };
+static const symbol s_2_1499[5] = { 'l', 'u', 'c', 'e', 'n' };
+static const symbol s_2_1500[5] = { 'a', 0xC4, 0x8D, 'e', 'n' };
+static const symbol s_2_1501[6] = { 'l', 'u', 0xC4, 0x8D, 'e', 'n' };
+static const symbol s_2_1502[4] = { 'a', 'n', 'i', 'n' };
+static const symbol s_2_1503[2] = { 'a', 'o' };
+static const symbol s_2_1504[4] = { 'a', 'c', 'a', 'o' };
+static const symbol s_2_1505[7] = { 'a', 's', 't', 'a', 'j', 'a', 'o' };
+static const symbol s_2_1506[7] = { 'i', 's', 't', 'a', 'j', 'a', 'o' };
+static const symbol s_2_1507[7] = { 'o', 's', 't', 'a', 'j', 'a', 'o' };
+static const symbol s_2_1508[5] = { 'i', 'n', 'j', 'a', 'o' };
+static const symbol s_2_1509[4] = { 'i', 'r', 'a', 'o' };
+static const symbol s_2_1510[4] = { 'u', 'r', 'a', 'o' };
+static const symbol s_2_1511[3] = { 't', 'a', 'o' };
+static const symbol s_2_1512[5] = { 'a', 's', 't', 'a', 'o' };
+static const symbol s_2_1513[5] = { 'i', 's', 't', 'a', 'o' };
+static const symbol s_2_1514[5] = { 'o', 's', 't', 'a', 'o' };
+static const symbol s_2_1515[4] = { 'a', 'v', 'a', 'o' };
+static const symbol s_2_1516[4] = { 'e', 'v', 'a', 'o' };
+static const symbol s_2_1517[4] = { 'i', 'v', 'a', 'o' };
+static const symbol s_2_1518[4] = { 'o', 'v', 'a', 'o' };
+static const symbol s_2_1519[4] = { 'u', 'v', 'a', 'o' };
+static const symbol s_2_1520[5] = { 'a', 0xC4, 0x8D, 'a', 'o' };
+static const symbol s_2_1521[2] = { 'g', 'o' };
+static const symbol s_2_1522[3] = { 'u', 'g', 'o' };
+static const symbol s_2_1523[2] = { 'i', 'o' };
+static const symbol s_2_1524[4] = { 'a', 'c', 'i', 'o' };
+static const symbol s_2_1525[5] = { 'l', 'u', 'c', 'i', 'o' };
+static const symbol s_2_1526[3] = { 'l', 'i', 'o' };
+static const symbol s_2_1527[3] = { 'n', 'i', 'o' };
+static const symbol s_2_1528[5] = { 'r', 'a', 'r', 'i', 'o' };
+static const symbol s_2_1529[3] = { 's', 'i', 'o' };
+static const symbol s_2_1530[5] = { 'r', 'o', 's', 'i', 'o' };
+static const symbol s_2_1531[5] = { 'j', 'e', 't', 'i', 'o' };
+static const symbol s_2_1532[4] = { 'o', 't', 'i', 'o' };
+static const symbol s_2_1533[5] = { 'a', 0xC4, 0x8D, 'i', 'o' };
+static const symbol s_2_1534[6] = { 'l', 'u', 0xC4, 0x8D, 'i', 'o' };
+static const symbol s_2_1535[6] = { 'r', 'o', 0xC5, 0xA1, 'i', 'o' };
+static const symbol s_2_1536[4] = { 'b', 'i', 'j', 'o' };
+static const symbol s_2_1537[4] = { 'c', 'i', 'j', 'o' };
+static const symbol s_2_1538[4] = { 'd', 'i', 'j', 'o' };
+static const symbol s_2_1539[4] = { 'f', 'i', 'j', 'o' };
+static const symbol s_2_1540[4] = { 'g', 'i', 'j', 'o' };
+static const symbol s_2_1541[4] = { 'l', 'i', 'j', 'o' };
+static const symbol s_2_1542[4] = { 'm', 'i', 'j', 'o' };
+static const symbol s_2_1543[4] = { 'n', 'i', 'j', 'o' };
+static const symbol s_2_1544[4] = { 'p', 'i', 'j', 'o' };
+static const symbol s_2_1545[4] = { 'r', 'i', 'j', 'o' };
+static const symbol s_2_1546[4] = { 's', 'i', 'j', 'o' };
+static const symbol s_2_1547[4] = { 't', 'i', 'j', 'o' };
+static const symbol s_2_1548[4] = { 'z', 'i', 'j', 'o' };
+static const symbol s_2_1549[5] = { 0xC5, 0xBE, 'i', 'j', 'o' };
+static const symbol s_2_1550[4] = { 'a', 'n', 'j', 'o' };
+static const symbol s_2_1551[4] = { 'e', 'n', 'j', 'o' };
+static const symbol s_2_1552[4] = { 's', 'n', 'j', 'o' };
+static const symbol s_2_1553[5] = { 0xC5, 0xA1, 'n', 'j', 'o' };
+static const symbol s_2_1554[2] = { 'k', 'o' };
+static const symbol s_2_1555[3] = { 's', 'k', 'o' };
+static const symbol s_2_1556[4] = { 0xC5, 0xA1, 'k', 'o' };
+static const symbol s_2_1557[3] = { 'a', 'l', 'o' };
+static const symbol s_2_1558[5] = { 'a', 'c', 'a', 'l', 'o' };
+static const symbol s_2_1559[8] = { 'a', 's', 't', 'a', 'j', 'a', 'l', 'o' };
+static const symbol s_2_1560[8] = { 'i', 's', 't', 'a', 'j', 'a', 'l', 'o' };
+static const symbol s_2_1561[8] = { 'o', 's', 't', 'a', 'j', 'a', 'l', 'o' };
+static const symbol s_2_1562[5] = { 'i', 'j', 'a', 'l', 'o' };
+static const symbol s_2_1563[6] = { 'i', 'n', 'j', 'a', 'l', 'o' };
+static const symbol s_2_1564[4] = { 'n', 'a', 'l', 'o' };
+static const symbol s_2_1565[5] = { 'i', 'r', 'a', 'l', 'o' };
+static const symbol s_2_1566[5] = { 'u', 'r', 'a', 'l', 'o' };
+static const symbol s_2_1567[4] = { 't', 'a', 'l', 'o' };
+static const symbol s_2_1568[6] = { 'a', 's', 't', 'a', 'l', 'o' };
+static const symbol s_2_1569[6] = { 'i', 's', 't', 'a', 'l', 'o' };
+static const symbol s_2_1570[6] = { 'o', 's', 't', 'a', 'l', 'o' };
+static const symbol s_2_1571[5] = { 'a', 'v', 'a', 'l', 'o' };
+static const symbol s_2_1572[5] = { 'e', 'v', 'a', 'l', 'o' };
+static const symbol s_2_1573[5] = { 'i', 'v', 'a', 'l', 'o' };
+static const symbol s_2_1574[5] = { 'o', 'v', 'a', 'l', 'o' };
+static const symbol s_2_1575[5] = { 'u', 'v', 'a', 'l', 'o' };
+static const symbol s_2_1576[6] = { 'a', 0xC4, 0x8D, 'a', 'l', 'o' };
+static const symbol s_2_1577[3] = { 'e', 'l', 'o' };
+static const symbol s_2_1578[3] = { 'i', 'l', 'o' };
+static const symbol s_2_1579[5] = { 'a', 'c', 'i', 'l', 'o' };
+static const symbol s_2_1580[6] = { 'l', 'u', 'c', 'i', 'l', 'o' };
+static const symbol s_2_1581[4] = { 'n', 'i', 'l', 'o' };
+static const symbol s_2_1582[6] = { 'r', 'o', 's', 'i', 'l', 'o' };
+static const symbol s_2_1583[6] = { 'j', 'e', 't', 'i', 'l', 'o' };
+static const symbol s_2_1584[6] = { 'a', 0xC4, 0x8D, 'i', 'l', 'o' };
+static const symbol s_2_1585[7] = { 'l', 'u', 0xC4, 0x8D, 'i', 'l', 'o' };
+static const symbol s_2_1586[7] = { 'r', 'o', 0xC5, 0xA1, 'i', 'l', 'o' };
+static const symbol s_2_1587[4] = { 'a', 's', 'l', 'o' };
+static const symbol s_2_1588[4] = { 'n', 'u', 'l', 'o' };
+static const symbol s_2_1589[3] = { 'a', 'm', 'o' };
+static const symbol s_2_1590[5] = { 'a', 'c', 'a', 'm', 'o' };
+static const symbol s_2_1591[4] = { 'r', 'a', 'm', 'o' };
+static const symbol s_2_1592[5] = { 'i', 'r', 'a', 'm', 'o' };
+static const symbol s_2_1593[5] = { 'u', 'r', 'a', 'm', 'o' };
+static const symbol s_2_1594[4] = { 't', 'a', 'm', 'o' };
+static const symbol s_2_1595[5] = { 'a', 'v', 'a', 'm', 'o' };
+static const symbol s_2_1596[5] = { 'e', 'v', 'a', 'm', 'o' };
+static const symbol s_2_1597[5] = { 'i', 'v', 'a', 'm', 'o' };
+static const symbol s_2_1598[5] = { 'u', 'v', 'a', 'm', 'o' };
+static const symbol s_2_1599[6] = { 'a', 0xC4, 0x8D, 'a', 'm', 'o' };
+static const symbol s_2_1600[3] = { 'e', 'm', 'o' };
+static const symbol s_2_1601[8] = { 'a', 's', 't', 'a', 'd', 'e', 'm', 'o' };
+static const symbol s_2_1602[8] = { 'i', 's', 't', 'a', 'd', 'e', 'm', 'o' };
+static const symbol s_2_1603[8] = { 'o', 's', 't', 'a', 'd', 'e', 'm', 'o' };
+static const symbol s_2_1604[8] = { 'a', 's', 't', 'a', 'j', 'e', 'm', 'o' };
+static const symbol s_2_1605[8] = { 'i', 's', 't', 'a', 'j', 'e', 'm', 'o' };
+static const symbol s_2_1606[8] = { 'o', 's', 't', 'a', 'j', 'e', 'm', 'o' };
+static const symbol s_2_1607[5] = { 'i', 'j', 'e', 'm', 'o' };
+static const symbol s_2_1608[6] = { 'i', 'n', 'j', 'e', 'm', 'o' };
+static const symbol s_2_1609[5] = { 'u', 'j', 'e', 'm', 'o' };
+static const symbol s_2_1610[8] = { 'l', 'u', 'c', 'u', 'j', 'e', 'm', 'o' };
+static const symbol s_2_1611[7] = { 'i', 'r', 'u', 'j', 'e', 'm', 'o' };
+static const symbol s_2_1612[9] = { 'l', 'u', 0xC4, 0x8D, 'u', 'j', 'e', 'm', 'o' };
+static const symbol s_2_1613[4] = { 'l', 'e', 'm', 'o' };
+static const symbol s_2_1614[4] = { 'n', 'e', 'm', 'o' };
+static const symbol s_2_1615[8] = { 'a', 's', 't', 'a', 'n', 'e', 'm', 'o' };
+static const symbol s_2_1616[8] = { 'i', 's', 't', 'a', 'n', 'e', 'm', 'o' };
+static const symbol s_2_1617[8] = { 'o', 's', 't', 'a', 'n', 'e', 'm', 'o' };
+static const symbol s_2_1618[5] = { 'e', 't', 'e', 'm', 'o' };
+static const symbol s_2_1619[6] = { 'a', 's', 't', 'e', 'm', 'o' };
+static const symbol s_2_1620[3] = { 'i', 'm', 'o' };
+static const symbol s_2_1621[5] = { 'a', 'c', 'i', 'm', 'o' };
+static const symbol s_2_1622[6] = { 'l', 'u', 'c', 'i', 'm', 'o' };
+static const symbol s_2_1623[4] = { 'n', 'i', 'm', 'o' };
+static const symbol s_2_1624[8] = { 'a', 's', 't', 'a', 'n', 'i', 'm', 'o' };
+static const symbol s_2_1625[8] = { 'i', 's', 't', 'a', 'n', 'i', 'm', 'o' };
+static const symbol s_2_1626[8] = { 'o', 's', 't', 'a', 'n', 'i', 'm', 'o' };
+static const symbol s_2_1627[6] = { 'r', 'o', 's', 'i', 'm', 'o' };
+static const symbol s_2_1628[5] = { 'e', 't', 'i', 'm', 'o' };
+static const symbol s_2_1629[6] = { 'j', 'e', 't', 'i', 'm', 'o' };
+static const symbol s_2_1630[6] = { 'a', 's', 't', 'i', 'm', 'o' };
+static const symbol s_2_1631[6] = { 'a', 0xC4, 0x8D, 'i', 'm', 'o' };
+static const symbol s_2_1632[7] = { 'l', 'u', 0xC4, 0x8D, 'i', 'm', 'o' };
+static const symbol s_2_1633[7] = { 'r', 'o', 0xC5, 0xA1, 'i', 'm', 'o' };
+static const symbol s_2_1634[4] = { 'a', 'j', 'm', 'o' };
+static const symbol s_2_1635[6] = { 'u', 'r', 'a', 'j', 'm', 'o' };
+static const symbol s_2_1636[5] = { 't', 'a', 'j', 'm', 'o' };
+static const symbol s_2_1637[7] = { 'a', 's', 't', 'a', 'j', 'm', 'o' };
+static const symbol s_2_1638[7] = { 'i', 's', 't', 'a', 'j', 'm', 'o' };
+static const symbol s_2_1639[7] = { 'o', 's', 't', 'a', 'j', 'm', 'o' };
+static const symbol s_2_1640[6] = { 'a', 'v', 'a', 'j', 'm', 'o' };
+static const symbol s_2_1641[6] = { 'e', 'v', 'a', 'j', 'm', 'o' };
+static const symbol s_2_1642[6] = { 'i', 'v', 'a', 'j', 'm', 'o' };
+static const symbol s_2_1643[6] = { 'u', 'v', 'a', 'j', 'm', 'o' };
+static const symbol s_2_1644[4] = { 'i', 'j', 'm', 'o' };
+static const symbol s_2_1645[4] = { 'u', 'j', 'm', 'o' };
+static const symbol s_2_1646[7] = { 'l', 'u', 'c', 'u', 'j', 'm', 'o' };
+static const symbol s_2_1647[6] = { 'i', 'r', 'u', 'j', 'm', 'o' };
+static const symbol s_2_1648[8] = { 'l', 'u', 0xC4, 0x8D, 'u', 'j', 'm', 'o' };
+static const symbol s_2_1649[4] = { 'a', 's', 'm', 'o' };
+static const symbol s_2_1650[6] = { 'a', 'c', 'a', 's', 'm', 'o' };
+static const symbol s_2_1651[9] = { 'a', 's', 't', 'a', 'j', 'a', 's', 'm', 'o' };
+static const symbol s_2_1652[9] = { 'i', 's', 't', 'a', 'j', 'a', 's', 'm', 'o' };
+static const symbol s_2_1653[9] = { 'o', 's', 't', 'a', 'j', 'a', 's', 'm', 'o' };
+static const symbol s_2_1654[7] = { 'i', 'n', 'j', 'a', 's', 'm', 'o' };
+static const symbol s_2_1655[6] = { 'i', 'r', 'a', 's', 'm', 'o' };
+static const symbol s_2_1656[6] = { 'u', 'r', 'a', 's', 'm', 'o' };
+static const symbol s_2_1657[5] = { 't', 'a', 's', 'm', 'o' };
+static const symbol s_2_1658[6] = { 'a', 'v', 'a', 's', 'm', 'o' };
+static const symbol s_2_1659[6] = { 'e', 'v', 'a', 's', 'm', 'o' };
+static const symbol s_2_1660[6] = { 'i', 'v', 'a', 's', 'm', 'o' };
+static const symbol s_2_1661[6] = { 'o', 'v', 'a', 's', 'm', 'o' };
+static const symbol s_2_1662[6] = { 'u', 'v', 'a', 's', 'm', 'o' };
+static const symbol s_2_1663[7] = { 'a', 0xC4, 0x8D, 'a', 's', 'm', 'o' };
+static const symbol s_2_1664[4] = { 'i', 's', 'm', 'o' };
+static const symbol s_2_1665[6] = { 'a', 'c', 'i', 's', 'm', 'o' };
+static const symbol s_2_1666[7] = { 'l', 'u', 'c', 'i', 's', 'm', 'o' };
+static const symbol s_2_1667[5] = { 'n', 'i', 's', 'm', 'o' };
+static const symbol s_2_1668[7] = { 'r', 'o', 's', 'i', 's', 'm', 'o' };
+static const symbol s_2_1669[7] = { 'j', 'e', 't', 'i', 's', 'm', 'o' };
+static const symbol s_2_1670[7] = { 'a', 0xC4, 0x8D, 'i', 's', 'm', 'o' };
+static const symbol s_2_1671[8] = { 'l', 'u', 0xC4, 0x8D, 'i', 's', 'm', 'o' };
+static const symbol s_2_1672[8] = { 'r', 'o', 0xC5, 0xA1, 'i', 's', 'm', 'o' };
+static const symbol s_2_1673[9] = { 'a', 's', 't', 'a', 'd', 'o', 's', 'm', 'o' };
+static const symbol s_2_1674[9] = { 'i', 's', 't', 'a', 'd', 'o', 's', 'm', 'o' };
+static const symbol s_2_1675[9] = { 'o', 's', 't', 'a', 'd', 'o', 's', 'm', 'o' };
+static const symbol s_2_1676[5] = { 'n', 'u', 's', 'm', 'o' };
+static const symbol s_2_1677[2] = { 'n', 'o' };
+static const symbol s_2_1678[3] = { 'a', 'n', 'o' };
+static const symbol s_2_1679[5] = { 'a', 'c', 'a', 'n', 'o' };
+static const symbol s_2_1680[5] = { 'u', 'r', 'a', 'n', 'o' };
+static const symbol s_2_1681[4] = { 't', 'a', 'n', 'o' };
+static const symbol s_2_1682[5] = { 'a', 'v', 'a', 'n', 'o' };
+static const symbol s_2_1683[5] = { 'e', 'v', 'a', 'n', 'o' };
+static const symbol s_2_1684[5] = { 'i', 'v', 'a', 'n', 'o' };
+static const symbol s_2_1685[5] = { 'u', 'v', 'a', 'n', 'o' };
+static const symbol s_2_1686[6] = { 'a', 0xC4, 0x8D, 'a', 'n', 'o' };
+static const symbol s_2_1687[5] = { 'a', 'c', 'e', 'n', 'o' };
+static const symbol s_2_1688[6] = { 'l', 'u', 'c', 'e', 'n', 'o' };
+static const symbol s_2_1689[6] = { 'a', 0xC4, 0x8D, 'e', 'n', 'o' };
+static const symbol s_2_1690[7] = { 'l', 'u', 0xC4, 0x8D, 'e', 'n', 'o' };
+static const symbol s_2_1691[3] = { 'i', 'n', 'o' };
+static const symbol s_2_1692[4] = { 'c', 'i', 'n', 'o' };
+static const symbol s_2_1693[5] = { 0xC4, 0x8D, 'i', 'n', 'o' };
+static const symbol s_2_1694[3] = { 'a', 't', 'o' };
+static const symbol s_2_1695[5] = { 'i', 'k', 'a', 't', 'o' };
+static const symbol s_2_1696[4] = { 'l', 'a', 't', 'o' };
+static const symbol s_2_1697[3] = { 'e', 't', 'o' };
+static const symbol s_2_1698[5] = { 'e', 'v', 'i', 't', 'o' };
+static const symbol s_2_1699[5] = { 'o', 'v', 'i', 't', 'o' };
+static const symbol s_2_1700[4] = { 'a', 's', 't', 'o' };
+static const symbol s_2_1701[4] = { 'e', 's', 't', 'o' };
+static const symbol s_2_1702[4] = { 'i', 's', 't', 'o' };
+static const symbol s_2_1703[4] = { 'k', 's', 't', 'o' };
+static const symbol s_2_1704[4] = { 'o', 's', 't', 'o' };
+static const symbol s_2_1705[4] = { 'n', 'u', 't', 'o' };
+static const symbol s_2_1706[3] = { 'n', 'u', 'o' };
+static const symbol s_2_1707[3] = { 'a', 'v', 'o' };
+static const symbol s_2_1708[3] = { 'e', 'v', 'o' };
+static const symbol s_2_1709[3] = { 'i', 'v', 'o' };
+static const symbol s_2_1710[3] = { 'o', 'v', 'o' };
+static const symbol s_2_1711[4] = { 's', 't', 'v', 'o' };
+static const symbol s_2_1712[5] = { 0xC5, 0xA1, 't', 'v', 'o' };
+static const symbol s_2_1713[2] = { 'a', 's' };
+static const symbol s_2_1714[4] = { 'a', 'c', 'a', 's' };
+static const symbol s_2_1715[4] = { 'i', 'r', 'a', 's' };
+static const symbol s_2_1716[4] = { 'u', 'r', 'a', 's' };
+static const symbol s_2_1717[3] = { 't', 'a', 's' };
+static const symbol s_2_1718[4] = { 'a', 'v', 'a', 's' };
+static const symbol s_2_1719[4] = { 'e', 'v', 'a', 's' };
+static const symbol s_2_1720[4] = { 'i', 'v', 'a', 's' };
+static const symbol s_2_1721[4] = { 'u', 'v', 'a', 's' };
+static const symbol s_2_1722[2] = { 'e', 's' };
+static const symbol s_2_1723[7] = { 'a', 's', 't', 'a', 'd', 'e', 's' };
+static const symbol s_2_1724[7] = { 'i', 's', 't', 'a', 'd', 'e', 's' };
+static const symbol s_2_1725[7] = { 'o', 's', 't', 'a', 'd', 'e', 's' };
+static const symbol s_2_1726[7] = { 'a', 's', 't', 'a', 'j', 'e', 's' };
+static const symbol s_2_1727[7] = { 'i', 's', 't', 'a', 'j', 'e', 's' };
+static const symbol s_2_1728[7] = { 'o', 's', 't', 'a', 'j', 'e', 's' };
+static const symbol s_2_1729[4] = { 'i', 'j', 'e', 's' };
+static const symbol s_2_1730[5] = { 'i', 'n', 'j', 'e', 's' };
+static const symbol s_2_1731[4] = { 'u', 'j', 'e', 's' };
+static const symbol s_2_1732[7] = { 'l', 'u', 'c', 'u', 'j', 'e', 's' };
+static const symbol s_2_1733[6] = { 'i', 'r', 'u', 'j', 'e', 's' };
+static const symbol s_2_1734[3] = { 'n', 'e', 's' };
+static const symbol s_2_1735[7] = { 'a', 's', 't', 'a', 'n', 'e', 's' };
+static const symbol s_2_1736[7] = { 'i', 's', 't', 'a', 'n', 'e', 's' };
+static const symbol s_2_1737[7] = { 'o', 's', 't', 'a', 'n', 'e', 's' };
+static const symbol s_2_1738[4] = { 'e', 't', 'e', 's' };
+static const symbol s_2_1739[5] = { 'a', 's', 't', 'e', 's' };
+static const symbol s_2_1740[2] = { 'i', 's' };
+static const symbol s_2_1741[4] = { 'a', 'c', 'i', 's' };
+static const symbol s_2_1742[5] = { 'l', 'u', 'c', 'i', 's' };
+static const symbol s_2_1743[3] = { 'n', 'i', 's' };
+static const symbol s_2_1744[5] = { 'r', 'o', 's', 'i', 's' };
+static const symbol s_2_1745[5] = { 'j', 'e', 't', 'i', 's' };
+static const symbol s_2_1746[2] = { 'a', 't' };
+static const symbol s_2_1747[4] = { 'a', 'c', 'a', 't' };
+static const symbol s_2_1748[7] = { 'a', 's', 't', 'a', 'j', 'a', 't' };
+static const symbol s_2_1749[7] = { 'i', 's', 't', 'a', 'j', 'a', 't' };
+static const symbol s_2_1750[7] = { 'o', 's', 't', 'a', 'j', 'a', 't' };
+static const symbol s_2_1751[5] = { 'i', 'n', 'j', 'a', 't' };
+static const symbol s_2_1752[4] = { 'i', 'r', 'a', 't' };
+static const symbol s_2_1753[4] = { 'u', 'r', 'a', 't' };
+static const symbol s_2_1754[3] = { 't', 'a', 't' };
+static const symbol s_2_1755[5] = { 'a', 's', 't', 'a', 't' };
+static const symbol s_2_1756[5] = { 'i', 's', 't', 'a', 't' };
+static const symbol s_2_1757[5] = { 'o', 's', 't', 'a', 't' };
+static const symbol s_2_1758[4] = { 'a', 'v', 'a', 't' };
+static const symbol s_2_1759[4] = { 'e', 'v', 'a', 't' };
+static const symbol s_2_1760[4] = { 'i', 'v', 'a', 't' };
+static const symbol s_2_1761[6] = { 'i', 'r', 'i', 'v', 'a', 't' };
+static const symbol s_2_1762[4] = { 'o', 'v', 'a', 't' };
+static const symbol s_2_1763[4] = { 'u', 'v', 'a', 't' };
+static const symbol s_2_1764[5] = { 'a', 0xC4, 0x8D, 'a', 't' };
+static const symbol s_2_1765[2] = { 'i', 't' };
+static const symbol s_2_1766[4] = { 'a', 'c', 'i', 't' };
+static const symbol s_2_1767[5] = { 'l', 'u', 'c', 'i', 't' };
+static const symbol s_2_1768[5] = { 'r', 'o', 's', 'i', 't' };
+static const symbol s_2_1769[5] = { 'j', 'e', 't', 'i', 't' };
+static const symbol s_2_1770[5] = { 'a', 0xC4, 0x8D, 'i', 't' };
+static const symbol s_2_1771[6] = { 'l', 'u', 0xC4, 0x8D, 'i', 't' };
+static const symbol s_2_1772[6] = { 'r', 'o', 0xC5, 0xA1, 'i', 't' };
+static const symbol s_2_1773[3] = { 'n', 'u', 't' };
+static const symbol s_2_1774[6] = { 'a', 's', 't', 'a', 'd', 'u' };
+static const symbol s_2_1775[6] = { 'i', 's', 't', 'a', 'd', 'u' };
+static const symbol s_2_1776[6] = { 'o', 's', 't', 'a', 'd', 'u' };
+static const symbol s_2_1777[2] = { 'g', 'u' };
+static const symbol s_2_1778[4] = { 'l', 'o', 'g', 'u' };
+static const symbol s_2_1779[3] = { 'u', 'g', 'u' };
+static const symbol s_2_1780[3] = { 'a', 'h', 'u' };
+static const symbol s_2_1781[5] = { 'a', 'c', 'a', 'h', 'u' };
+static const symbol s_2_1782[8] = { 'a', 's', 't', 'a', 'j', 'a', 'h', 'u' };
+static const symbol s_2_1783[8] = { 'i', 's', 't', 'a', 'j', 'a', 'h', 'u' };
+static const symbol s_2_1784[8] = { 'o', 's', 't', 'a', 'j', 'a', 'h', 'u' };
+static const symbol s_2_1785[6] = { 'i', 'n', 'j', 'a', 'h', 'u' };
+static const symbol s_2_1786[5] = { 'i', 'r', 'a', 'h', 'u' };
+static const symbol s_2_1787[5] = { 'u', 'r', 'a', 'h', 'u' };
+static const symbol s_2_1788[5] = { 'a', 'v', 'a', 'h', 'u' };
+static const symbol s_2_1789[5] = { 'e', 'v', 'a', 'h', 'u' };
+static const symbol s_2_1790[5] = { 'i', 'v', 'a', 'h', 'u' };
+static const symbol s_2_1791[5] = { 'o', 'v', 'a', 'h', 'u' };
+static const symbol s_2_1792[5] = { 'u', 'v', 'a', 'h', 'u' };
+static const symbol s_2_1793[6] = { 'a', 0xC4, 0x8D, 'a', 'h', 'u' };
+static const symbol s_2_1794[3] = { 'a', 'j', 'u' };
+static const symbol s_2_1795[4] = { 'c', 'a', 'j', 'u' };
+static const symbol s_2_1796[5] = { 'a', 'c', 'a', 'j', 'u' };
+static const symbol s_2_1797[4] = { 'l', 'a', 'j', 'u' };
+static const symbol s_2_1798[4] = { 'r', 'a', 'j', 'u' };
+static const symbol s_2_1799[5] = { 'i', 'r', 'a', 'j', 'u' };
+static const symbol s_2_1800[5] = { 'u', 'r', 'a', 'j', 'u' };
+static const symbol s_2_1801[4] = { 't', 'a', 'j', 'u' };
+static const symbol s_2_1802[6] = { 'a', 's', 't', 'a', 'j', 'u' };
+static const symbol s_2_1803[6] = { 'i', 's', 't', 'a', 'j', 'u' };
+static const symbol s_2_1804[6] = { 'o', 's', 't', 'a', 'j', 'u' };
+static const symbol s_2_1805[5] = { 'a', 'v', 'a', 'j', 'u' };
+static const symbol s_2_1806[5] = { 'e', 'v', 'a', 'j', 'u' };
+static const symbol s_2_1807[5] = { 'i', 'v', 'a', 'j', 'u' };
+static const symbol s_2_1808[5] = { 'u', 'v', 'a', 'j', 'u' };
+static const symbol s_2_1809[5] = { 0xC4, 0x87, 'a', 'j', 'u' };
+static const symbol s_2_1810[5] = { 0xC4, 0x8D, 'a', 'j', 'u' };
+static const symbol s_2_1811[6] = { 'a', 0xC4, 0x8D, 'a', 'j', 'u' };
+static const symbol s_2_1812[5] = { 0xC4, 0x91, 'a', 'j', 'u' };
+static const symbol s_2_1813[3] = { 'i', 'j', 'u' };
+static const symbol s_2_1814[4] = { 'b', 'i', 'j', 'u' };
+static const symbol s_2_1815[4] = { 'c', 'i', 'j', 'u' };
+static const symbol s_2_1816[4] = { 'd', 'i', 'j', 'u' };
+static const symbol s_2_1817[4] = { 'f', 'i', 'j', 'u' };
+static const symbol s_2_1818[4] = { 'g', 'i', 'j', 'u' };
+static const symbol s_2_1819[6] = { 'a', 'n', 'j', 'i', 'j', 'u' };
+static const symbol s_2_1820[6] = { 'e', 'n', 'j', 'i', 'j', 'u' };
+static const symbol s_2_1821[6] = { 's', 'n', 'j', 'i', 'j', 'u' };
+static const symbol s_2_1822[7] = { 0xC5, 0xA1, 'n', 'j', 'i', 'j', 'u' };
+static const symbol s_2_1823[4] = { 'k', 'i', 'j', 'u' };
+static const symbol s_2_1824[4] = { 'l', 'i', 'j', 'u' };
+static const symbol s_2_1825[5] = { 'e', 'l', 'i', 'j', 'u' };
+static const symbol s_2_1826[4] = { 'm', 'i', 'j', 'u' };
+static const symbol s_2_1827[4] = { 'n', 'i', 'j', 'u' };
+static const symbol s_2_1828[6] = { 'g', 'a', 'n', 'i', 'j', 'u' };
+static const symbol s_2_1829[6] = { 'm', 'a', 'n', 'i', 'j', 'u' };
+static const symbol s_2_1830[6] = { 'p', 'a', 'n', 'i', 'j', 'u' };
+static const symbol s_2_1831[6] = { 'r', 'a', 'n', 'i', 'j', 'u' };
+static const symbol s_2_1832[6] = { 't', 'a', 'n', 'i', 'j', 'u' };
+static const symbol s_2_1833[4] = { 'p', 'i', 'j', 'u' };
+static const symbol s_2_1834[4] = { 'r', 'i', 'j', 'u' };
+static const symbol s_2_1835[6] = { 'r', 'a', 'r', 'i', 'j', 'u' };
+static const symbol s_2_1836[4] = { 's', 'i', 'j', 'u' };
+static const symbol s_2_1837[5] = { 'o', 's', 'i', 'j', 'u' };
+static const symbol s_2_1838[4] = { 't', 'i', 'j', 'u' };
+static const symbol s_2_1839[5] = { 'a', 't', 'i', 'j', 'u' };
+static const symbol s_2_1840[5] = { 'o', 't', 'i', 'j', 'u' };
+static const symbol s_2_1841[5] = { 'a', 'v', 'i', 'j', 'u' };
+static const symbol s_2_1842[5] = { 'e', 'v', 'i', 'j', 'u' };
+static const symbol s_2_1843[5] = { 'i', 'v', 'i', 'j', 'u' };
+static const symbol s_2_1844[5] = { 'o', 'v', 'i', 'j', 'u' };
+static const symbol s_2_1845[4] = { 'z', 'i', 'j', 'u' };
+static const symbol s_2_1846[6] = { 'o', 0xC5, 0xA1, 'i', 'j', 'u' };
+static const symbol s_2_1847[5] = { 0xC5, 0xBE, 'i', 'j', 'u' };
+static const symbol s_2_1848[4] = { 'a', 'n', 'j', 'u' };
+static const symbol s_2_1849[4] = { 'e', 'n', 'j', 'u' };
+static const symbol s_2_1850[4] = { 's', 'n', 'j', 'u' };
+static const symbol s_2_1851[5] = { 0xC5, 0xA1, 'n', 'j', 'u' };
+static const symbol s_2_1852[3] = { 'u', 'j', 'u' };
+static const symbol s_2_1853[6] = { 'l', 'u', 'c', 'u', 'j', 'u' };
+static const symbol s_2_1854[5] = { 'i', 'r', 'u', 'j', 'u' };
+static const symbol s_2_1855[7] = { 'l', 'u', 0xC4, 0x8D, 'u', 'j', 'u' };
+static const symbol s_2_1856[2] = { 'k', 'u' };
+static const symbol s_2_1857[3] = { 's', 'k', 'u' };
+static const symbol s_2_1858[4] = { 0xC5, 0xA1, 'k', 'u' };
+static const symbol s_2_1859[3] = { 'a', 'l', 'u' };
+static const symbol s_2_1860[5] = { 'i', 'j', 'a', 'l', 'u' };
+static const symbol s_2_1861[4] = { 'n', 'a', 'l', 'u' };
+static const symbol s_2_1862[3] = { 'e', 'l', 'u' };
+static const symbol s_2_1863[3] = { 'i', 'l', 'u' };
+static const symbol s_2_1864[5] = { 'o', 'z', 'i', 'l', 'u' };
+static const symbol s_2_1865[3] = { 'o', 'l', 'u' };
+static const symbol s_2_1866[4] = { 'r', 'a', 'm', 'u' };
+static const symbol s_2_1867[5] = { 'a', 'c', 'e', 'm', 'u' };
+static const symbol s_2_1868[5] = { 'e', 'c', 'e', 'm', 'u' };
+static const symbol s_2_1869[5] = { 'u', 'c', 'e', 'm', 'u' };
+static const symbol s_2_1870[8] = { 'a', 'n', 'j', 'i', 'j', 'e', 'm', 'u' };
+static const symbol s_2_1871[8] = { 'e', 'n', 'j', 'i', 'j', 'e', 'm', 'u' };
+static const symbol s_2_1872[8] = { 's', 'n', 'j', 'i', 'j', 'e', 'm', 'u' };
+static const symbol s_2_1873[9] = { 0xC5, 0xA1, 'n', 'j', 'i', 'j', 'e', 'm', 'u' };
+static const symbol s_2_1874[6] = { 'k', 'i', 'j', 'e', 'm', 'u' };
+static const symbol s_2_1875[7] = { 's', 'k', 'i', 'j', 'e', 'm', 'u' };
+static const symbol s_2_1876[8] = { 0xC5, 0xA1, 'k', 'i', 'j', 'e', 'm', 'u' };
+static const symbol s_2_1877[7] = { 'e', 'l', 'i', 'j', 'e', 'm', 'u' };
+static const symbol s_2_1878[6] = { 'n', 'i', 'j', 'e', 'm', 'u' };
+static const symbol s_2_1879[7] = { 'o', 's', 'i', 'j', 'e', 'm', 'u' };
+static const symbol s_2_1880[7] = { 'a', 't', 'i', 'j', 'e', 'm', 'u' };
+static const symbol s_2_1881[9] = { 'e', 'v', 'i', 't', 'i', 'j', 'e', 'm', 'u' };
+static const symbol s_2_1882[9] = { 'o', 'v', 'i', 't', 'i', 'j', 'e', 'm', 'u' };
+static const symbol s_2_1883[8] = { 'a', 's', 't', 'i', 'j', 'e', 'm', 'u' };
+static const symbol s_2_1884[7] = { 'a', 'v', 'i', 'j', 'e', 'm', 'u' };
+static const symbol s_2_1885[7] = { 'e', 'v', 'i', 'j', 'e', 'm', 'u' };
+static const symbol s_2_1886[7] = { 'i', 'v', 'i', 'j', 'e', 'm', 'u' };
+static const symbol s_2_1887[7] = { 'o', 'v', 'i', 'j', 'e', 'm', 'u' };
+static const symbol s_2_1888[8] = { 'o', 0xC5, 0xA1, 'i', 'j', 'e', 'm', 'u' };
+static const symbol s_2_1889[6] = { 'a', 'n', 'j', 'e', 'm', 'u' };
+static const symbol s_2_1890[6] = { 'e', 'n', 'j', 'e', 'm', 'u' };
+static const symbol s_2_1891[6] = { 's', 'n', 'j', 'e', 'm', 'u' };
+static const symbol s_2_1892[7] = { 0xC5, 0xA1, 'n', 'j', 'e', 'm', 'u' };
+static const symbol s_2_1893[4] = { 'k', 'e', 'm', 'u' };
+static const symbol s_2_1894[5] = { 's', 'k', 'e', 'm', 'u' };
+static const symbol s_2_1895[6] = { 0xC5, 0xA1, 'k', 'e', 'm', 'u' };
+static const symbol s_2_1896[4] = { 'l', 'e', 'm', 'u' };
+static const symbol s_2_1897[5] = { 'e', 'l', 'e', 'm', 'u' };
+static const symbol s_2_1898[4] = { 'n', 'e', 'm', 'u' };
+static const symbol s_2_1899[5] = { 'a', 'n', 'e', 'm', 'u' };
+static const symbol s_2_1900[5] = { 'e', 'n', 'e', 'm', 'u' };
+static const symbol s_2_1901[5] = { 's', 'n', 'e', 'm', 'u' };
+static const symbol s_2_1902[6] = { 0xC5, 0xA1, 'n', 'e', 'm', 'u' };
+static const symbol s_2_1903[5] = { 'o', 's', 'e', 'm', 'u' };
+static const symbol s_2_1904[5] = { 'a', 't', 'e', 'm', 'u' };
+static const symbol s_2_1905[7] = { 'e', 'v', 'i', 't', 'e', 'm', 'u' };
+static const symbol s_2_1906[7] = { 'o', 'v', 'i', 't', 'e', 'm', 'u' };
+static const symbol s_2_1907[6] = { 'a', 's', 't', 'e', 'm', 'u' };
+static const symbol s_2_1908[5] = { 'a', 'v', 'e', 'm', 'u' };
+static const symbol s_2_1909[5] = { 'e', 'v', 'e', 'm', 'u' };
+static const symbol s_2_1910[5] = { 'i', 'v', 'e', 'm', 'u' };
+static const symbol s_2_1911[5] = { 'o', 'v', 'e', 'm', 'u' };
+static const symbol s_2_1912[6] = { 'a', 0xC4, 0x87, 'e', 'm', 'u' };
+static const symbol s_2_1913[6] = { 'e', 0xC4, 0x87, 'e', 'm', 'u' };
+static const symbol s_2_1914[6] = { 'u', 0xC4, 0x87, 'e', 'm', 'u' };
+static const symbol s_2_1915[6] = { 'o', 0xC5, 0xA1, 'e', 'm', 'u' };
+static const symbol s_2_1916[5] = { 'a', 'c', 'o', 'm', 'u' };
+static const symbol s_2_1917[5] = { 'e', 'c', 'o', 'm', 'u' };
+static const symbol s_2_1918[5] = { 'u', 'c', 'o', 'm', 'u' };
+static const symbol s_2_1919[6] = { 'a', 'n', 'j', 'o', 'm', 'u' };
+static const symbol s_2_1920[6] = { 'e', 'n', 'j', 'o', 'm', 'u' };
+static const symbol s_2_1921[6] = { 's', 'n', 'j', 'o', 'm', 'u' };
+static const symbol s_2_1922[7] = { 0xC5, 0xA1, 'n', 'j', 'o', 'm', 'u' };
+static const symbol s_2_1923[4] = { 'k', 'o', 'm', 'u' };
+static const symbol s_2_1924[5] = { 's', 'k', 'o', 'm', 'u' };
+static const symbol s_2_1925[6] = { 0xC5, 0xA1, 'k', 'o', 'm', 'u' };
+static const symbol s_2_1926[5] = { 'e', 'l', 'o', 'm', 'u' };
+static const symbol s_2_1927[4] = { 'n', 'o', 'm', 'u' };
+static const symbol s_2_1928[6] = { 'c', 'i', 'n', 'o', 'm', 'u' };
+static const symbol s_2_1929[7] = { 0xC4, 0x8D, 'i', 'n', 'o', 'm', 'u' };
+static const symbol s_2_1930[5] = { 'o', 's', 'o', 'm', 'u' };
+static const symbol s_2_1931[5] = { 'a', 't', 'o', 'm', 'u' };
+static const symbol s_2_1932[7] = { 'e', 'v', 'i', 't', 'o', 'm', 'u' };
+static const symbol s_2_1933[7] = { 'o', 'v', 'i', 't', 'o', 'm', 'u' };
+static const symbol s_2_1934[6] = { 'a', 's', 't', 'o', 'm', 'u' };
+static const symbol s_2_1935[5] = { 'a', 'v', 'o', 'm', 'u' };
+static const symbol s_2_1936[5] = { 'e', 'v', 'o', 'm', 'u' };
+static const symbol s_2_1937[5] = { 'i', 'v', 'o', 'm', 'u' };
+static const symbol s_2_1938[5] = { 'o', 'v', 'o', 'm', 'u' };
+static const symbol s_2_1939[6] = { 'a', 0xC4, 0x87, 'o', 'm', 'u' };
+static const symbol s_2_1940[6] = { 'e', 0xC4, 0x87, 'o', 'm', 'u' };
+static const symbol s_2_1941[6] = { 'u', 0xC4, 0x87, 'o', 'm', 'u' };
+static const symbol s_2_1942[6] = { 'o', 0xC5, 0xA1, 'o', 'm', 'u' };
+static const symbol s_2_1943[2] = { 'n', 'u' };
+static const symbol s_2_1944[3] = { 'a', 'n', 'u' };
+static const symbol s_2_1945[6] = { 'a', 's', 't', 'a', 'n', 'u' };
+static const symbol s_2_1946[6] = { 'i', 's', 't', 'a', 'n', 'u' };
+static const symbol s_2_1947[6] = { 'o', 's', 't', 'a', 'n', 'u' };
+static const symbol s_2_1948[3] = { 'i', 'n', 'u' };
+static const symbol s_2_1949[4] = { 'c', 'i', 'n', 'u' };
+static const symbol s_2_1950[5] = { 'a', 'n', 'i', 'n', 'u' };
+static const symbol s_2_1951[5] = { 0xC4, 0x8D, 'i', 'n', 'u' };
+static const symbol s_2_1952[3] = { 'o', 'n', 'u' };
+static const symbol s_2_1953[3] = { 'a', 'r', 'u' };
+static const symbol s_2_1954[3] = { 'd', 'r', 'u' };
+static const symbol s_2_1955[3] = { 'e', 'r', 'u' };
+static const symbol s_2_1956[3] = { 'o', 'r', 'u' };
+static const symbol s_2_1957[4] = { 'b', 'a', 's', 'u' };
+static const symbol s_2_1958[4] = { 'g', 'a', 's', 'u' };
+static const symbol s_2_1959[4] = { 'j', 'a', 's', 'u' };
+static const symbol s_2_1960[4] = { 'k', 'a', 's', 'u' };
+static const symbol s_2_1961[4] = { 'n', 'a', 's', 'u' };
+static const symbol s_2_1962[4] = { 't', 'a', 's', 'u' };
+static const symbol s_2_1963[4] = { 'v', 'a', 's', 'u' };
+static const symbol s_2_1964[3] = { 'e', 's', 'u' };
+static const symbol s_2_1965[3] = { 'i', 's', 'u' };
+static const symbol s_2_1966[3] = { 'o', 's', 'u' };
+static const symbol s_2_1967[3] = { 'a', 't', 'u' };
+static const symbol s_2_1968[5] = { 'i', 'k', 'a', 't', 'u' };
+static const symbol s_2_1969[4] = { 'l', 'a', 't', 'u' };
+static const symbol s_2_1970[3] = { 'e', 't', 'u' };
+static const symbol s_2_1971[5] = { 'e', 'v', 'i', 't', 'u' };
+static const symbol s_2_1972[5] = { 'o', 'v', 'i', 't', 'u' };
+static const symbol s_2_1973[4] = { 'a', 's', 't', 'u' };
+static const symbol s_2_1974[4] = { 'e', 's', 't', 'u' };
+static const symbol s_2_1975[4] = { 'i', 's', 't', 'u' };
+static const symbol s_2_1976[4] = { 'k', 's', 't', 'u' };
+static const symbol s_2_1977[4] = { 'o', 's', 't', 'u' };
+static const symbol s_2_1978[5] = { 'i', 0xC5, 0xA1, 't', 'u' };
+static const symbol s_2_1979[3] = { 'a', 'v', 'u' };
+static const symbol s_2_1980[3] = { 'e', 'v', 'u' };
+static const symbol s_2_1981[3] = { 'i', 'v', 'u' };
+static const symbol s_2_1982[3] = { 'o', 'v', 'u' };
+static const symbol s_2_1983[4] = { 'l', 'o', 'v', 'u' };
+static const symbol s_2_1984[4] = { 'm', 'o', 'v', 'u' };
+static const symbol s_2_1985[4] = { 's', 't', 'v', 'u' };
+static const symbol s_2_1986[5] = { 0xC5, 0xA1, 't', 'v', 'u' };
+static const symbol s_2_1987[5] = { 'b', 'a', 0xC5, 0xA1, 'u' };
+static const symbol s_2_1988[5] = { 'g', 'a', 0xC5, 0xA1, 'u' };
+static const symbol s_2_1989[5] = { 'j', 'a', 0xC5, 0xA1, 'u' };
+static const symbol s_2_1990[5] = { 'k', 'a', 0xC5, 0xA1, 'u' };
+static const symbol s_2_1991[5] = { 'n', 'a', 0xC5, 0xA1, 'u' };
+static const symbol s_2_1992[5] = { 't', 'a', 0xC5, 0xA1, 'u' };
+static const symbol s_2_1993[5] = { 'v', 'a', 0xC5, 0xA1, 'u' };
+static const symbol s_2_1994[4] = { 'e', 0xC5, 0xA1, 'u' };
+static const symbol s_2_1995[4] = { 'i', 0xC5, 0xA1, 'u' };
+static const symbol s_2_1996[4] = { 'o', 0xC5, 0xA1, 'u' };
+static const symbol s_2_1997[4] = { 'a', 'v', 'a', 'v' };
+static const symbol s_2_1998[4] = { 'e', 'v', 'a', 'v' };
+static const symbol s_2_1999[4] = { 'i', 'v', 'a', 'v' };
+static const symbol s_2_2000[4] = { 'u', 'v', 'a', 'v' };
+static const symbol s_2_2001[3] = { 'k', 'o', 'v' };
+static const symbol s_2_2002[3] = { 'a', 0xC5, 0xA1 };
+static const symbol s_2_2003[5] = { 'i', 'r', 'a', 0xC5, 0xA1 };
+static const symbol s_2_2004[5] = { 'u', 'r', 'a', 0xC5, 0xA1 };
+static const symbol s_2_2005[4] = { 't', 'a', 0xC5, 0xA1 };
+static const symbol s_2_2006[5] = { 'a', 'v', 'a', 0xC5, 0xA1 };
+static const symbol s_2_2007[5] = { 'e', 'v', 'a', 0xC5, 0xA1 };
+static const symbol s_2_2008[5] = { 'i', 'v', 'a', 0xC5, 0xA1 };
+static const symbol s_2_2009[5] = { 'u', 'v', 'a', 0xC5, 0xA1 };
+static const symbol s_2_2010[6] = { 'a', 0xC4, 0x8D, 'a', 0xC5, 0xA1 };
+static const symbol s_2_2011[3] = { 'e', 0xC5, 0xA1 };
+static const symbol s_2_2012[8] = { 'a', 's', 't', 'a', 'd', 'e', 0xC5, 0xA1 };
+static const symbol s_2_2013[8] = { 'i', 's', 't', 'a', 'd', 'e', 0xC5, 0xA1 };
+static const symbol s_2_2014[8] = { 'o', 's', 't', 'a', 'd', 'e', 0xC5, 0xA1 };
+static const symbol s_2_2015[8] = { 'a', 's', 't', 'a', 'j', 'e', 0xC5, 0xA1 };
+static const symbol s_2_2016[8] = { 'i', 's', 't', 'a', 'j', 'e', 0xC5, 0xA1 };
+static const symbol s_2_2017[8] = { 'o', 's', 't', 'a', 'j', 'e', 0xC5, 0xA1 };
+static const symbol s_2_2018[5] = { 'i', 'j', 'e', 0xC5, 0xA1 };
+static const symbol s_2_2019[6] = { 'i', 'n', 'j', 'e', 0xC5, 0xA1 };
+static const symbol s_2_2020[5] = { 'u', 'j', 'e', 0xC5, 0xA1 };
+static const symbol s_2_2021[7] = { 'i', 'r', 'u', 'j', 'e', 0xC5, 0xA1 };
+static const symbol s_2_2022[9] = { 'l', 'u', 0xC4, 0x8D, 'u', 'j', 'e', 0xC5, 0xA1 };
+static const symbol s_2_2023[4] = { 'n', 'e', 0xC5, 0xA1 };
+static const symbol s_2_2024[8] = { 'a', 's', 't', 'a', 'n', 'e', 0xC5, 0xA1 };
+static const symbol s_2_2025[8] = { 'i', 's', 't', 'a', 'n', 'e', 0xC5, 0xA1 };
+static const symbol s_2_2026[8] = { 'o', 's', 't', 'a', 'n', 'e', 0xC5, 0xA1 };
+static const symbol s_2_2027[5] = { 'e', 't', 'e', 0xC5, 0xA1 };
+static const symbol s_2_2028[6] = { 'a', 's', 't', 'e', 0xC5, 0xA1 };
+static const symbol s_2_2029[3] = { 'i', 0xC5, 0xA1 };
+static const symbol s_2_2030[4] = { 'n', 'i', 0xC5, 0xA1 };
+static const symbol s_2_2031[6] = { 'j', 'e', 't', 'i', 0xC5, 0xA1 };
+static const symbol s_2_2032[6] = { 'a', 0xC4, 0x8D, 'i', 0xC5, 0xA1 };
+static const symbol s_2_2033[7] = { 'l', 'u', 0xC4, 0x8D, 'i', 0xC5, 0xA1 };
+static const symbol s_2_2034[7] = { 'r', 'o', 0xC5, 0xA1, 'i', 0xC5, 0xA1 };
+
+static const struct among a_2[2035] =
+{
+{ 3, s_2_0, -1, 124, 0},
+{ 3, s_2_1, -1, 125, 0},
+{ 3, s_2_2, -1, 126, 0},
+{ 2, s_2_3, -1, 20, 0},
+{ 5, s_2_4, 3, 124, 0},
+{ 5, s_2_5, 3, 125, 0},
+{ 5, s_2_6, 3, 126, 0},
+{ 8, s_2_7, 3, 84, 0},
+{ 8, s_2_8, 3, 85, 0},
+{ 8, s_2_9, 3, 122, 0},
+{ 9, s_2_10, 3, 86, 0},
+{ 6, s_2_11, 3, 95, 0},
+{ 7, s_2_12, 11, 1, 0},
+{ 8, s_2_13, 11, 2, 0},
+{ 7, s_2_14, 3, 83, 0},
+{ 6, s_2_15, 3, 13, 0},
+{ 7, s_2_16, 3, 123, 0},
+{ 7, s_2_17, 3, 120, 0},
+{ 9, s_2_18, 3, 92, 0},
+{ 9, s_2_19, 3, 93, 0},
+{ 8, s_2_20, 3, 94, 0},
+{ 7, s_2_21, 3, 77, 0},
+{ 7, s_2_22, 3, 78, 0},
+{ 7, s_2_23, 3, 79, 0},
+{ 7, s_2_24, 3, 80, 0},
+{ 8, s_2_25, 3, 91, 0},
+{ 6, s_2_26, 3, 84, 0},
+{ 6, s_2_27, 3, 85, 0},
+{ 6, s_2_28, 3, 122, 0},
+{ 7, s_2_29, 3, 86, 0},
+{ 4, s_2_30, 3, 95, 0},
+{ 5, s_2_31, 30, 1, 0},
+{ 6, s_2_32, 30, 2, 0},
+{ 5, s_2_33, 3, 83, 0},
+{ 4, s_2_34, 3, 13, 0},
+{ 5, s_2_35, 34, 10, 0},
+{ 5, s_2_36, 34, 87, 0},
+{ 5, s_2_37, 34, 159, 0},
+{ 6, s_2_38, 34, 88, 0},
+{ 5, s_2_39, 3, 123, 0},
+{ 5, s_2_40, 3, 120, 0},
+{ 7, s_2_41, 3, 92, 0},
+{ 7, s_2_42, 3, 93, 0},
+{ 6, s_2_43, 3, 94, 0},
+{ 5, s_2_44, 3, 77, 0},
+{ 5, s_2_45, 3, 78, 0},
+{ 5, s_2_46, 3, 79, 0},
+{ 5, s_2_47, 3, 80, 0},
+{ 6, s_2_48, 3, 14, 0},
+{ 6, s_2_49, 3, 15, 0},
+{ 6, s_2_50, 3, 16, 0},
+{ 6, s_2_51, 3, 91, 0},
+{ 5, s_2_52, 3, 124, 0},
+{ 5, s_2_53, 3, 125, 0},
+{ 5, s_2_54, 3, 126, 0},
+{ 6, s_2_55, 3, 84, 0},
+{ 6, s_2_56, 3, 85, 0},
+{ 6, s_2_57, 3, 122, 0},
+{ 7, s_2_58, 3, 86, 0},
+{ 4, s_2_59, 3, 95, 0},
+{ 5, s_2_60, 59, 1, 0},
+{ 6, s_2_61, 59, 2, 0},
+{ 4, s_2_62, 3, 19, 0},
+{ 5, s_2_63, 62, 83, 0},
+{ 4, s_2_64, 3, 13, 0},
+{ 6, s_2_65, 64, 137, 0},
+{ 7, s_2_66, 64, 89, 0},
+{ 5, s_2_67, 3, 123, 0},
+{ 5, s_2_68, 3, 120, 0},
+{ 7, s_2_69, 3, 92, 0},
+{ 7, s_2_70, 3, 93, 0},
+{ 6, s_2_71, 3, 94, 0},
+{ 5, s_2_72, 3, 77, 0},
+{ 5, s_2_73, 3, 78, 0},
+{ 5, s_2_74, 3, 79, 0},
+{ 5, s_2_75, 3, 80, 0},
+{ 6, s_2_76, 3, 14, 0},
+{ 6, s_2_77, 3, 15, 0},
+{ 6, s_2_78, 3, 16, 0},
+{ 6, s_2_79, 3, 91, 0},
+{ 3, s_2_80, 3, 18, 0},
+{ 3, s_2_81, -1, 109, 0},
+{ 4, s_2_82, 81, 26, 0},
+{ 4, s_2_83, 81, 30, 0},
+{ 4, s_2_84, 81, 31, 0},
+{ 5, s_2_85, 81, 28, 0},
+{ 5, s_2_86, 81, 27, 0},
+{ 5, s_2_87, 81, 29, 0},
+{ 4, s_2_88, -1, 32, 0},
+{ 4, s_2_89, -1, 33, 0},
+{ 4, s_2_90, -1, 34, 0},
+{ 4, s_2_91, -1, 40, 0},
+{ 4, s_2_92, -1, 39, 0},
+{ 6, s_2_93, -1, 84, 0},
+{ 6, s_2_94, -1, 85, 0},
+{ 6, s_2_95, -1, 122, 0},
+{ 7, s_2_96, -1, 86, 0},
+{ 4, s_2_97, -1, 95, 0},
+{ 5, s_2_98, 97, 1, 0},
+{ 6, s_2_99, 97, 2, 0},
+{ 4, s_2_100, -1, 24, 0},
+{ 5, s_2_101, 100, 83, 0},
+{ 4, s_2_102, -1, 37, 0},
+{ 4, s_2_103, -1, 13, 0},
+{ 6, s_2_104, 103, 9, 0},
+{ 6, s_2_105, 103, 6, 0},
+{ 6, s_2_106, 103, 7, 0},
+{ 6, s_2_107, 103, 8, 0},
+{ 6, s_2_108, 103, 5, 0},
+{ 4, s_2_109, -1, 41, 0},
+{ 4, s_2_110, -1, 42, 0},
+{ 6, s_2_111, 110, 21, 0},
+{ 4, s_2_112, -1, 23, 0},
+{ 5, s_2_113, 112, 123, 0},
+{ 4, s_2_114, -1, 44, 0},
+{ 5, s_2_115, 114, 120, 0},
+{ 7, s_2_116, 114, 92, 0},
+{ 7, s_2_117, 114, 93, 0},
+{ 5, s_2_118, 114, 22, 0},
+{ 6, s_2_119, 114, 94, 0},
+{ 5, s_2_120, -1, 77, 0},
+{ 5, s_2_121, -1, 78, 0},
+{ 5, s_2_122, -1, 79, 0},
+{ 5, s_2_123, -1, 80, 0},
+{ 4, s_2_124, -1, 45, 0},
+{ 6, s_2_125, -1, 91, 0},
+{ 5, s_2_126, -1, 38, 0},
+{ 4, s_2_127, -1, 84, 0},
+{ 4, s_2_128, -1, 85, 0},
+{ 4, s_2_129, -1, 122, 0},
+{ 5, s_2_130, -1, 86, 0},
+{ 2, s_2_131, -1, 95, 0},
+{ 3, s_2_132, 131, 1, 0},
+{ 4, s_2_133, 131, 2, 0},
+{ 3, s_2_134, -1, 104, 0},
+{ 5, s_2_135, 134, 128, 0},
+{ 8, s_2_136, 134, 106, 0},
+{ 8, s_2_137, 134, 107, 0},
+{ 8, s_2_138, 134, 108, 0},
+{ 5, s_2_139, 134, 47, 0},
+{ 6, s_2_140, 134, 114, 0},
+{ 4, s_2_141, 134, 46, 0},
+{ 5, s_2_142, 134, 100, 0},
+{ 5, s_2_143, 134, 105, 0},
+{ 4, s_2_144, 134, 113, 0},
+{ 6, s_2_145, 144, 110, 0},
+{ 6, s_2_146, 144, 111, 0},
+{ 6, s_2_147, 144, 112, 0},
+{ 5, s_2_148, 134, 97, 0},
+{ 5, s_2_149, 134, 96, 0},
+{ 5, s_2_150, 134, 98, 0},
+{ 5, s_2_151, 134, 76, 0},
+{ 5, s_2_152, 134, 99, 0},
+{ 6, s_2_153, 134, 102, 0},
+{ 3, s_2_154, -1, 83, 0},
+{ 3, s_2_155, -1, 116, 0},
+{ 5, s_2_156, 155, 124, 0},
+{ 6, s_2_157, 155, 121, 0},
+{ 4, s_2_158, 155, 103, 0},
+{ 8, s_2_159, 158, 110, 0},
+{ 8, s_2_160, 158, 111, 0},
+{ 8, s_2_161, 158, 112, 0},
+{ 6, s_2_162, 155, 127, 0},
+{ 6, s_2_163, 155, 118, 0},
+{ 5, s_2_164, 155, 48, 0},
+{ 6, s_2_165, 155, 101, 0},
+{ 7, s_2_166, 155, 117, 0},
+{ 7, s_2_167, 155, 90, 0},
+{ 3, s_2_168, -1, 50, 0},
+{ 4, s_2_169, -1, 115, 0},
+{ 4, s_2_170, -1, 13, 0},
+{ 4, s_2_171, -1, 20, 0},
+{ 6, s_2_172, 171, 19, 0},
+{ 5, s_2_173, 171, 18, 0},
+{ 5, s_2_174, -1, 109, 0},
+{ 6, s_2_175, 174, 26, 0},
+{ 6, s_2_176, 174, 30, 0},
+{ 6, s_2_177, 174, 31, 0},
+{ 7, s_2_178, 174, 28, 0},
+{ 7, s_2_179, 174, 27, 0},
+{ 7, s_2_180, 174, 29, 0},
+{ 6, s_2_181, -1, 32, 0},
+{ 6, s_2_182, -1, 33, 0},
+{ 6, s_2_183, -1, 34, 0},
+{ 6, s_2_184, -1, 40, 0},
+{ 6, s_2_185, -1, 39, 0},
+{ 6, s_2_186, -1, 35, 0},
+{ 6, s_2_187, -1, 37, 0},
+{ 6, s_2_188, -1, 36, 0},
+{ 8, s_2_189, 188, 9, 0},
+{ 8, s_2_190, 188, 6, 0},
+{ 8, s_2_191, 188, 7, 0},
+{ 8, s_2_192, 188, 8, 0},
+{ 8, s_2_193, 188, 5, 0},
+{ 6, s_2_194, -1, 41, 0},
+{ 6, s_2_195, -1, 42, 0},
+{ 6, s_2_196, -1, 43, 0},
+{ 6, s_2_197, -1, 44, 0},
+{ 6, s_2_198, -1, 45, 0},
+{ 7, s_2_199, -1, 38, 0},
+{ 5, s_2_200, -1, 104, 0},
+{ 7, s_2_201, 200, 47, 0},
+{ 6, s_2_202, 200, 46, 0},
+{ 5, s_2_203, -1, 119, 0},
+{ 5, s_2_204, -1, 116, 0},
+{ 6, s_2_205, -1, 52, 0},
+{ 6, s_2_206, -1, 51, 0},
+{ 5, s_2_207, -1, 11, 0},
+{ 6, s_2_208, 207, 137, 0},
+{ 7, s_2_209, 207, 89, 0},
+{ 4, s_2_210, -1, 52, 0},
+{ 5, s_2_211, 210, 53, 0},
+{ 5, s_2_212, 210, 54, 0},
+{ 5, s_2_213, 210, 55, 0},
+{ 5, s_2_214, 210, 56, 0},
+{ 6, s_2_215, -1, 135, 0},
+{ 6, s_2_216, -1, 131, 0},
+{ 6, s_2_217, -1, 129, 0},
+{ 6, s_2_218, -1, 133, 0},
+{ 6, s_2_219, -1, 132, 0},
+{ 6, s_2_220, -1, 130, 0},
+{ 6, s_2_221, -1, 134, 0},
+{ 5, s_2_222, -1, 152, 0},
+{ 5, s_2_223, -1, 154, 0},
+{ 5, s_2_224, -1, 70, 0},
+{ 6, s_2_225, -1, 71, 0},
+{ 6, s_2_226, -1, 72, 0},
+{ 6, s_2_227, -1, 73, 0},
+{ 6, s_2_228, -1, 74, 0},
+{ 5, s_2_229, -1, 77, 0},
+{ 5, s_2_230, -1, 78, 0},
+{ 5, s_2_231, -1, 79, 0},
+{ 7, s_2_232, -1, 63, 0},
+{ 7, s_2_233, -1, 64, 0},
+{ 7, s_2_234, -1, 61, 0},
+{ 7, s_2_235, -1, 62, 0},
+{ 7, s_2_236, -1, 60, 0},
+{ 7, s_2_237, -1, 59, 0},
+{ 7, s_2_238, -1, 65, 0},
+{ 6, s_2_239, -1, 66, 0},
+{ 6, s_2_240, -1, 67, 0},
+{ 4, s_2_241, -1, 51, 0},
+{ 5, s_2_242, -1, 124, 0},
+{ 5, s_2_243, -1, 125, 0},
+{ 5, s_2_244, -1, 126, 0},
+{ 5, s_2_245, -1, 109, 0},
+{ 6, s_2_246, 245, 26, 0},
+{ 6, s_2_247, 245, 30, 0},
+{ 6, s_2_248, 245, 31, 0},
+{ 7, s_2_249, 245, 28, 0},
+{ 7, s_2_250, 245, 27, 0},
+{ 7, s_2_251, 245, 29, 0},
+{ 6, s_2_252, -1, 32, 0},
+{ 6, s_2_253, -1, 33, 0},
+{ 6, s_2_254, -1, 34, 0},
+{ 6, s_2_255, -1, 40, 0},
+{ 6, s_2_256, -1, 39, 0},
+{ 8, s_2_257, -1, 84, 0},
+{ 8, s_2_258, -1, 85, 0},
+{ 8, s_2_259, -1, 122, 0},
+{ 9, s_2_260, -1, 86, 0},
+{ 6, s_2_261, -1, 95, 0},
+{ 7, s_2_262, 261, 1, 0},
+{ 8, s_2_263, 261, 2, 0},
+{ 6, s_2_264, -1, 35, 0},
+{ 7, s_2_265, 264, 83, 0},
+{ 6, s_2_266, -1, 37, 0},
+{ 6, s_2_267, -1, 13, 0},
+{ 8, s_2_268, 267, 9, 0},
+{ 8, s_2_269, 267, 6, 0},
+{ 8, s_2_270, 267, 7, 0},
+{ 8, s_2_271, 267, 8, 0},
+{ 8, s_2_272, 267, 5, 0},
+{ 6, s_2_273, -1, 41, 0},
+{ 6, s_2_274, -1, 42, 0},
+{ 6, s_2_275, -1, 43, 0},
+{ 7, s_2_276, 275, 123, 0},
+{ 6, s_2_277, -1, 44, 0},
+{ 7, s_2_278, 277, 120, 0},
+{ 9, s_2_279, 277, 92, 0},
+{ 9, s_2_280, 277, 93, 0},
+{ 8, s_2_281, 277, 94, 0},
+{ 7, s_2_282, -1, 77, 0},
+{ 7, s_2_283, -1, 78, 0},
+{ 7, s_2_284, -1, 79, 0},
+{ 7, s_2_285, -1, 80, 0},
+{ 6, s_2_286, -1, 45, 0},
+{ 8, s_2_287, -1, 91, 0},
+{ 7, s_2_288, -1, 38, 0},
+{ 6, s_2_289, -1, 84, 0},
+{ 6, s_2_290, -1, 85, 0},
+{ 6, s_2_291, -1, 122, 0},
+{ 7, s_2_292, -1, 86, 0},
+{ 4, s_2_293, -1, 95, 0},
+{ 5, s_2_294, 293, 1, 0},
+{ 6, s_2_295, 293, 2, 0},
+{ 5, s_2_296, -1, 104, 0},
+{ 7, s_2_297, 296, 47, 0},
+{ 6, s_2_298, 296, 46, 0},
+{ 5, s_2_299, -1, 83, 0},
+{ 5, s_2_300, -1, 116, 0},
+{ 7, s_2_301, 300, 48, 0},
+{ 5, s_2_302, -1, 50, 0},
+{ 6, s_2_303, -1, 51, 0},
+{ 4, s_2_304, -1, 13, 0},
+{ 5, s_2_305, 304, 10, 0},
+{ 5, s_2_306, 304, 11, 0},
+{ 6, s_2_307, 306, 137, 0},
+{ 7, s_2_308, 306, 89, 0},
+{ 5, s_2_309, 304, 12, 0},
+{ 5, s_2_310, -1, 53, 0},
+{ 5, s_2_311, -1, 54, 0},
+{ 5, s_2_312, -1, 55, 0},
+{ 5, s_2_313, -1, 56, 0},
+{ 6, s_2_314, -1, 135, 0},
+{ 6, s_2_315, -1, 131, 0},
+{ 6, s_2_316, -1, 129, 0},
+{ 6, s_2_317, -1, 133, 0},
+{ 6, s_2_318, -1, 132, 0},
+{ 6, s_2_319, -1, 130, 0},
+{ 6, s_2_320, -1, 134, 0},
+{ 5, s_2_321, -1, 57, 0},
+{ 5, s_2_322, -1, 58, 0},
+{ 5, s_2_323, -1, 123, 0},
+{ 5, s_2_324, -1, 120, 0},
+{ 7, s_2_325, 324, 68, 0},
+{ 6, s_2_326, 324, 69, 0},
+{ 5, s_2_327, -1, 70, 0},
+{ 7, s_2_328, -1, 92, 0},
+{ 7, s_2_329, -1, 93, 0},
+{ 6, s_2_330, -1, 94, 0},
+{ 6, s_2_331, -1, 71, 0},
+{ 6, s_2_332, -1, 72, 0},
+{ 6, s_2_333, -1, 73, 0},
+{ 6, s_2_334, -1, 74, 0},
+{ 7, s_2_335, -1, 75, 0},
+{ 5, s_2_336, -1, 77, 0},
+{ 5, s_2_337, -1, 78, 0},
+{ 7, s_2_338, 337, 109, 0},
+{ 8, s_2_339, 338, 26, 0},
+{ 8, s_2_340, 338, 30, 0},
+{ 8, s_2_341, 338, 31, 0},
+{ 9, s_2_342, 338, 28, 0},
+{ 9, s_2_343, 338, 27, 0},
+{ 9, s_2_344, 338, 29, 0},
+{ 5, s_2_345, -1, 79, 0},
+{ 5, s_2_346, -1, 80, 0},
+{ 6, s_2_347, 346, 20, 0},
+{ 7, s_2_348, 347, 17, 0},
+{ 6, s_2_349, 346, 82, 0},
+{ 7, s_2_350, 349, 49, 0},
+{ 6, s_2_351, 346, 81, 0},
+{ 7, s_2_352, 346, 12, 0},
+{ 6, s_2_353, -1, 3, 0},
+{ 7, s_2_354, -1, 4, 0},
+{ 6, s_2_355, -1, 14, 0},
+{ 6, s_2_356, -1, 15, 0},
+{ 6, s_2_357, -1, 16, 0},
+{ 7, s_2_358, -1, 63, 0},
+{ 7, s_2_359, -1, 64, 0},
+{ 7, s_2_360, -1, 61, 0},
+{ 7, s_2_361, -1, 62, 0},
+{ 7, s_2_362, -1, 60, 0},
+{ 7, s_2_363, -1, 59, 0},
+{ 7, s_2_364, -1, 65, 0},
+{ 6, s_2_365, -1, 66, 0},
+{ 6, s_2_366, -1, 67, 0},
+{ 6, s_2_367, -1, 91, 0},
+{ 2, s_2_368, -1, 13, 0},
+{ 3, s_2_369, 368, 10, 0},
+{ 5, s_2_370, 369, 128, 0},
+{ 5, s_2_371, 369, 105, 0},
+{ 4, s_2_372, 369, 113, 0},
+{ 5, s_2_373, 369, 97, 0},
+{ 5, s_2_374, 369, 96, 0},
+{ 5, s_2_375, 369, 98, 0},
+{ 5, s_2_376, 369, 99, 0},
+{ 6, s_2_377, 369, 102, 0},
+{ 5, s_2_378, 368, 124, 0},
+{ 6, s_2_379, 368, 121, 0},
+{ 6, s_2_380, 368, 101, 0},
+{ 7, s_2_381, 368, 117, 0},
+{ 3, s_2_382, 368, 11, 0},
+{ 4, s_2_383, 382, 137, 0},
+{ 5, s_2_384, 382, 10, 0},
+{ 5, s_2_385, 382, 89, 0},
+{ 3, s_2_386, 368, 12, 0},
+{ 3, s_2_387, -1, 53, 0},
+{ 3, s_2_388, -1, 54, 0},
+{ 3, s_2_389, -1, 55, 0},
+{ 3, s_2_390, -1, 56, 0},
+{ 4, s_2_391, -1, 135, 0},
+{ 4, s_2_392, -1, 131, 0},
+{ 4, s_2_393, -1, 129, 0},
+{ 4, s_2_394, -1, 133, 0},
+{ 4, s_2_395, -1, 132, 0},
+{ 4, s_2_396, -1, 130, 0},
+{ 4, s_2_397, -1, 134, 0},
+{ 3, s_2_398, -1, 57, 0},
+{ 3, s_2_399, -1, 58, 0},
+{ 3, s_2_400, -1, 123, 0},
+{ 3, s_2_401, -1, 120, 0},
+{ 5, s_2_402, 401, 68, 0},
+{ 4, s_2_403, 401, 69, 0},
+{ 3, s_2_404, -1, 70, 0},
+{ 5, s_2_405, -1, 92, 0},
+{ 5, s_2_406, -1, 93, 0},
+{ 4, s_2_407, -1, 94, 0},
+{ 4, s_2_408, -1, 71, 0},
+{ 4, s_2_409, -1, 72, 0},
+{ 4, s_2_410, -1, 73, 0},
+{ 4, s_2_411, -1, 74, 0},
+{ 4, s_2_412, -1, 13, 0},
+{ 5, s_2_413, -1, 75, 0},
+{ 3, s_2_414, -1, 77, 0},
+{ 3, s_2_415, -1, 78, 0},
+{ 5, s_2_416, 415, 109, 0},
+{ 6, s_2_417, 416, 26, 0},
+{ 6, s_2_418, 416, 30, 0},
+{ 6, s_2_419, 416, 31, 0},
+{ 7, s_2_420, 416, 28, 0},
+{ 7, s_2_421, 416, 27, 0},
+{ 7, s_2_422, 416, 29, 0},
+{ 3, s_2_423, -1, 79, 0},
+{ 3, s_2_424, -1, 80, 0},
+{ 4, s_2_425, 424, 20, 0},
+{ 5, s_2_426, 425, 17, 0},
+{ 4, s_2_427, 424, 82, 0},
+{ 5, s_2_428, 427, 49, 0},
+{ 4, s_2_429, 424, 81, 0},
+{ 5, s_2_430, 424, 12, 0},
+{ 4, s_2_431, -1, 3, 0},
+{ 5, s_2_432, -1, 4, 0},
+{ 4, s_2_433, -1, 14, 0},
+{ 4, s_2_434, -1, 15, 0},
+{ 4, s_2_435, -1, 16, 0},
+{ 5, s_2_436, -1, 63, 0},
+{ 5, s_2_437, -1, 64, 0},
+{ 5, s_2_438, -1, 61, 0},
+{ 5, s_2_439, -1, 62, 0},
+{ 5, s_2_440, -1, 60, 0},
+{ 5, s_2_441, -1, 59, 0},
+{ 5, s_2_442, -1, 65, 0},
+{ 4, s_2_443, -1, 66, 0},
+{ 4, s_2_444, -1, 67, 0},
+{ 4, s_2_445, -1, 91, 0},
+{ 3, s_2_446, -1, 124, 0},
+{ 3, s_2_447, -1, 125, 0},
+{ 3, s_2_448, -1, 126, 0},
+{ 4, s_2_449, 448, 121, 0},
+{ 6, s_2_450, -1, 110, 0},
+{ 6, s_2_451, -1, 111, 0},
+{ 6, s_2_452, -1, 112, 0},
+{ 2, s_2_453, -1, 20, 0},
+{ 4, s_2_454, 453, 19, 0},
+{ 3, s_2_455, 453, 18, 0},
+{ 3, s_2_456, -1, 104, 0},
+{ 4, s_2_457, 456, 26, 0},
+{ 4, s_2_458, 456, 30, 0},
+{ 4, s_2_459, 456, 31, 0},
+{ 6, s_2_460, 456, 106, 0},
+{ 6, s_2_461, 456, 107, 0},
+{ 6, s_2_462, 456, 108, 0},
+{ 5, s_2_463, 456, 28, 0},
+{ 5, s_2_464, 456, 27, 0},
+{ 5, s_2_465, 456, 29, 0},
+{ 3, s_2_466, -1, 116, 0},
+{ 4, s_2_467, 466, 32, 0},
+{ 4, s_2_468, 466, 33, 0},
+{ 4, s_2_469, 466, 34, 0},
+{ 4, s_2_470, 466, 40, 0},
+{ 4, s_2_471, 466, 39, 0},
+{ 6, s_2_472, 466, 84, 0},
+{ 6, s_2_473, 466, 85, 0},
+{ 6, s_2_474, 466, 122, 0},
+{ 7, s_2_475, 466, 86, 0},
+{ 4, s_2_476, 466, 95, 0},
+{ 5, s_2_477, 476, 1, 0},
+{ 6, s_2_478, 476, 2, 0},
+{ 4, s_2_479, 466, 35, 0},
+{ 5, s_2_480, 479, 83, 0},
+{ 4, s_2_481, 466, 37, 0},
+{ 4, s_2_482, 466, 13, 0},
+{ 6, s_2_483, 482, 9, 0},
+{ 6, s_2_484, 482, 6, 0},
+{ 6, s_2_485, 482, 7, 0},
+{ 6, s_2_486, 482, 8, 0},
+{ 6, s_2_487, 482, 5, 0},
+{ 4, s_2_488, 466, 41, 0},
+{ 4, s_2_489, 466, 42, 0},
+{ 4, s_2_490, 466, 43, 0},
+{ 5, s_2_491, 490, 123, 0},
+{ 4, s_2_492, 466, 44, 0},
+{ 5, s_2_493, 492, 120, 0},
+{ 7, s_2_494, 492, 92, 0},
+{ 7, s_2_495, 492, 93, 0},
+{ 6, s_2_496, 492, 94, 0},
+{ 5, s_2_497, 466, 77, 0},
+{ 5, s_2_498, 466, 78, 0},
+{ 5, s_2_499, 466, 79, 0},
+{ 5, s_2_500, 466, 80, 0},
+{ 4, s_2_501, 466, 45, 0},
+{ 6, s_2_502, 466, 91, 0},
+{ 5, s_2_503, 466, 38, 0},
+{ 4, s_2_504, -1, 84, 0},
+{ 4, s_2_505, -1, 85, 0},
+{ 4, s_2_506, -1, 122, 0},
+{ 5, s_2_507, -1, 86, 0},
+{ 3, s_2_508, -1, 25, 0},
+{ 6, s_2_509, 508, 121, 0},
+{ 5, s_2_510, 508, 100, 0},
+{ 7, s_2_511, 508, 117, 0},
+{ 2, s_2_512, -1, 95, 0},
+{ 3, s_2_513, 512, 1, 0},
+{ 4, s_2_514, 512, 2, 0},
+{ 3, s_2_515, -1, 104, 0},
+{ 5, s_2_516, 515, 128, 0},
+{ 8, s_2_517, 515, 106, 0},
+{ 8, s_2_518, 515, 107, 0},
+{ 8, s_2_519, 515, 108, 0},
+{ 5, s_2_520, 515, 47, 0},
+{ 6, s_2_521, 515, 114, 0},
+{ 4, s_2_522, 515, 46, 0},
+{ 5, s_2_523, 515, 100, 0},
+{ 5, s_2_524, 515, 105, 0},
+{ 4, s_2_525, 515, 113, 0},
+{ 6, s_2_526, 525, 110, 0},
+{ 6, s_2_527, 525, 111, 0},
+{ 6, s_2_528, 525, 112, 0},
+{ 5, s_2_529, 515, 97, 0},
+{ 5, s_2_530, 515, 96, 0},
+{ 5, s_2_531, 515, 98, 0},
+{ 5, s_2_532, 515, 76, 0},
+{ 5, s_2_533, 515, 99, 0},
+{ 6, s_2_534, 515, 102, 0},
+{ 3, s_2_535, -1, 83, 0},
+{ 3, s_2_536, -1, 116, 0},
+{ 5, s_2_537, 536, 124, 0},
+{ 6, s_2_538, 536, 121, 0},
+{ 4, s_2_539, 536, 103, 0},
+{ 6, s_2_540, 536, 127, 0},
+{ 6, s_2_541, 536, 118, 0},
+{ 5, s_2_542, 536, 48, 0},
+{ 6, s_2_543, 536, 101, 0},
+{ 7, s_2_544, 536, 117, 0},
+{ 7, s_2_545, 536, 90, 0},
+{ 3, s_2_546, -1, 50, 0},
+{ 4, s_2_547, -1, 115, 0},
+{ 4, s_2_548, -1, 13, 0},
+{ 4, s_2_549, -1, 52, 0},
+{ 4, s_2_550, -1, 51, 0},
+{ 5, s_2_551, -1, 124, 0},
+{ 5, s_2_552, -1, 125, 0},
+{ 5, s_2_553, -1, 126, 0},
+{ 6, s_2_554, -1, 84, 0},
+{ 6, s_2_555, -1, 85, 0},
+{ 6, s_2_556, -1, 122, 0},
+{ 7, s_2_557, -1, 86, 0},
+{ 4, s_2_558, -1, 95, 0},
+{ 5, s_2_559, 558, 1, 0},
+{ 6, s_2_560, 558, 2, 0},
+{ 5, s_2_561, -1, 83, 0},
+{ 4, s_2_562, -1, 13, 0},
+{ 6, s_2_563, 562, 137, 0},
+{ 7, s_2_564, 562, 89, 0},
+{ 5, s_2_565, -1, 123, 0},
+{ 5, s_2_566, -1, 120, 0},
+{ 7, s_2_567, -1, 92, 0},
+{ 7, s_2_568, -1, 93, 0},
+{ 6, s_2_569, -1, 94, 0},
+{ 5, s_2_570, -1, 77, 0},
+{ 5, s_2_571, -1, 78, 0},
+{ 5, s_2_572, -1, 79, 0},
+{ 5, s_2_573, -1, 80, 0},
+{ 6, s_2_574, -1, 14, 0},
+{ 6, s_2_575, -1, 15, 0},
+{ 6, s_2_576, -1, 16, 0},
+{ 6, s_2_577, -1, 91, 0},
+{ 2, s_2_578, -1, 13, 0},
+{ 3, s_2_579, 578, 10, 0},
+{ 5, s_2_580, 579, 128, 0},
+{ 5, s_2_581, 579, 105, 0},
+{ 4, s_2_582, 579, 113, 0},
+{ 6, s_2_583, 582, 110, 0},
+{ 6, s_2_584, 582, 111, 0},
+{ 6, s_2_585, 582, 112, 0},
+{ 5, s_2_586, 579, 97, 0},
+{ 5, s_2_587, 579, 96, 0},
+{ 5, s_2_588, 579, 98, 0},
+{ 5, s_2_589, 579, 99, 0},
+{ 6, s_2_590, 579, 102, 0},
+{ 5, s_2_591, 578, 124, 0},
+{ 6, s_2_592, 578, 121, 0},
+{ 6, s_2_593, 578, 101, 0},
+{ 7, s_2_594, 578, 117, 0},
+{ 3, s_2_595, 578, 11, 0},
+{ 4, s_2_596, 595, 137, 0},
+{ 5, s_2_597, 595, 10, 0},
+{ 5, s_2_598, 595, 89, 0},
+{ 3, s_2_599, 578, 12, 0},
+{ 3, s_2_600, -1, 53, 0},
+{ 3, s_2_601, -1, 54, 0},
+{ 3, s_2_602, -1, 55, 0},
+{ 3, s_2_603, -1, 56, 0},
+{ 3, s_2_604, -1, 161, 0},
+{ 4, s_2_605, 604, 135, 0},
+{ 5, s_2_606, 604, 128, 0},
+{ 4, s_2_607, 604, 131, 0},
+{ 4, s_2_608, 604, 129, 0},
+{ 8, s_2_609, 608, 138, 0},
+{ 8, s_2_610, 608, 139, 0},
+{ 8, s_2_611, 608, 140, 0},
+{ 6, s_2_612, 608, 150, 0},
+{ 4, s_2_613, 604, 133, 0},
+{ 4, s_2_614, 604, 132, 0},
+{ 5, s_2_615, 604, 155, 0},
+{ 5, s_2_616, 604, 156, 0},
+{ 4, s_2_617, 604, 130, 0},
+{ 4, s_2_618, 604, 134, 0},
+{ 5, s_2_619, 618, 144, 0},
+{ 5, s_2_620, 618, 145, 0},
+{ 5, s_2_621, 618, 146, 0},
+{ 5, s_2_622, 618, 148, 0},
+{ 5, s_2_623, 618, 147, 0},
+{ 3, s_2_624, -1, 57, 0},
+{ 3, s_2_625, -1, 58, 0},
+{ 5, s_2_626, 625, 124, 0},
+{ 6, s_2_627, 625, 121, 0},
+{ 6, s_2_628, 625, 127, 0},
+{ 6, s_2_629, 625, 149, 0},
+{ 3, s_2_630, -1, 123, 0},
+{ 8, s_2_631, 630, 141, 0},
+{ 8, s_2_632, 630, 142, 0},
+{ 8, s_2_633, 630, 143, 0},
+{ 3, s_2_634, -1, 104, 0},
+{ 5, s_2_635, 634, 128, 0},
+{ 5, s_2_636, 634, 68, 0},
+{ 4, s_2_637, 634, 69, 0},
+{ 5, s_2_638, 634, 100, 0},
+{ 5, s_2_639, 634, 105, 0},
+{ 4, s_2_640, 634, 113, 0},
+{ 5, s_2_641, 634, 97, 0},
+{ 5, s_2_642, 634, 96, 0},
+{ 5, s_2_643, 634, 98, 0},
+{ 5, s_2_644, 634, 99, 0},
+{ 6, s_2_645, 634, 102, 0},
+{ 3, s_2_646, -1, 70, 0},
+{ 8, s_2_647, 646, 110, 0},
+{ 8, s_2_648, 646, 111, 0},
+{ 8, s_2_649, 646, 112, 0},
+{ 8, s_2_650, 646, 106, 0},
+{ 8, s_2_651, 646, 107, 0},
+{ 8, s_2_652, 646, 108, 0},
+{ 5, s_2_653, 646, 116, 0},
+{ 6, s_2_654, 646, 114, 0},
+{ 5, s_2_655, 646, 25, 0},
+{ 8, s_2_656, 655, 121, 0},
+{ 7, s_2_657, 655, 100, 0},
+{ 9, s_2_658, 655, 117, 0},
+{ 4, s_2_659, 646, 13, 0},
+{ 8, s_2_660, 659, 110, 0},
+{ 8, s_2_661, 659, 111, 0},
+{ 8, s_2_662, 659, 112, 0},
+{ 6, s_2_663, 646, 115, 0},
+{ 3, s_2_664, -1, 116, 0},
+{ 5, s_2_665, 664, 124, 0},
+{ 6, s_2_666, 664, 121, 0},
+{ 4, s_2_667, 664, 13, 0},
+{ 8, s_2_668, 667, 110, 0},
+{ 8, s_2_669, 667, 111, 0},
+{ 8, s_2_670, 667, 112, 0},
+{ 6, s_2_671, 664, 127, 0},
+{ 6, s_2_672, 664, 118, 0},
+{ 6, s_2_673, 664, 115, 0},
+{ 5, s_2_674, 664, 92, 0},
+{ 5, s_2_675, 664, 93, 0},
+{ 6, s_2_676, 664, 101, 0},
+{ 7, s_2_677, 664, 117, 0},
+{ 7, s_2_678, 664, 90, 0},
+{ 4, s_2_679, -1, 104, 0},
+{ 6, s_2_680, 679, 105, 0},
+{ 5, s_2_681, 679, 113, 0},
+{ 7, s_2_682, 681, 106, 0},
+{ 7, s_2_683, 681, 107, 0},
+{ 7, s_2_684, 681, 108, 0},
+{ 6, s_2_685, 679, 97, 0},
+{ 6, s_2_686, 679, 96, 0},
+{ 6, s_2_687, 679, 98, 0},
+{ 6, s_2_688, 679, 99, 0},
+{ 4, s_2_689, -1, 116, 0},
+{ 7, s_2_690, -1, 121, 0},
+{ 6, s_2_691, -1, 100, 0},
+{ 8, s_2_692, -1, 117, 0},
+{ 4, s_2_693, -1, 94, 0},
+{ 6, s_2_694, 693, 128, 0},
+{ 9, s_2_695, 693, 106, 0},
+{ 9, s_2_696, 693, 107, 0},
+{ 9, s_2_697, 693, 108, 0},
+{ 7, s_2_698, 693, 114, 0},
+{ 6, s_2_699, 693, 100, 0},
+{ 6, s_2_700, 693, 105, 0},
+{ 5, s_2_701, 693, 113, 0},
+{ 6, s_2_702, 693, 97, 0},
+{ 6, s_2_703, 693, 96, 0},
+{ 6, s_2_704, 693, 98, 0},
+{ 6, s_2_705, 693, 76, 0},
+{ 6, s_2_706, 693, 99, 0},
+{ 7, s_2_707, 693, 102, 0},
+{ 4, s_2_708, -1, 71, 0},
+{ 4, s_2_709, -1, 72, 0},
+{ 6, s_2_710, 709, 124, 0},
+{ 7, s_2_711, 709, 121, 0},
+{ 5, s_2_712, 709, 103, 0},
+{ 7, s_2_713, 709, 127, 0},
+{ 7, s_2_714, 709, 118, 0},
+{ 7, s_2_715, 709, 101, 0},
+{ 8, s_2_716, 709, 117, 0},
+{ 8, s_2_717, 709, 90, 0},
+{ 4, s_2_718, -1, 73, 0},
+{ 4, s_2_719, -1, 74, 0},
+{ 9, s_2_720, 719, 110, 0},
+{ 9, s_2_721, 719, 111, 0},
+{ 9, s_2_722, 719, 112, 0},
+{ 5, s_2_723, -1, 13, 0},
+{ 5, s_2_724, -1, 75, 0},
+{ 3, s_2_725, -1, 77, 0},
+{ 3, s_2_726, -1, 78, 0},
+{ 5, s_2_727, 726, 109, 0},
+{ 6, s_2_728, 727, 26, 0},
+{ 6, s_2_729, 727, 30, 0},
+{ 6, s_2_730, 727, 31, 0},
+{ 7, s_2_731, 727, 28, 0},
+{ 7, s_2_732, 727, 27, 0},
+{ 7, s_2_733, 727, 29, 0},
+{ 3, s_2_734, -1, 79, 0},
+{ 3, s_2_735, -1, 80, 0},
+{ 4, s_2_736, 735, 20, 0},
+{ 5, s_2_737, 736, 17, 0},
+{ 4, s_2_738, 735, 82, 0},
+{ 5, s_2_739, 738, 49, 0},
+{ 4, s_2_740, 735, 81, 0},
+{ 5, s_2_741, 735, 12, 0},
+{ 4, s_2_742, -1, 14, 0},
+{ 4, s_2_743, -1, 15, 0},
+{ 4, s_2_744, -1, 16, 0},
+{ 4, s_2_745, -1, 101, 0},
+{ 5, s_2_746, -1, 117, 0},
+{ 4, s_2_747, -1, 104, 0},
+{ 5, s_2_748, 747, 63, 0},
+{ 5, s_2_749, 747, 64, 0},
+{ 5, s_2_750, 747, 61, 0},
+{ 9, s_2_751, 750, 106, 0},
+{ 9, s_2_752, 750, 107, 0},
+{ 9, s_2_753, 750, 108, 0},
+{ 7, s_2_754, 750, 114, 0},
+{ 5, s_2_755, 747, 62, 0},
+{ 5, s_2_756, 747, 60, 0},
+{ 6, s_2_757, 747, 100, 0},
+{ 6, s_2_758, 747, 105, 0},
+{ 5, s_2_759, 747, 59, 0},
+{ 5, s_2_760, 747, 65, 0},
+{ 6, s_2_761, 760, 97, 0},
+{ 6, s_2_762, 760, 96, 0},
+{ 6, s_2_763, 760, 98, 0},
+{ 6, s_2_764, 760, 76, 0},
+{ 6, s_2_765, 760, 99, 0},
+{ 7, s_2_766, 747, 102, 0},
+{ 4, s_2_767, -1, 66, 0},
+{ 4, s_2_768, -1, 67, 0},
+{ 7, s_2_769, 768, 118, 0},
+{ 7, s_2_770, 768, 101, 0},
+{ 8, s_2_771, 768, 117, 0},
+{ 8, s_2_772, 768, 90, 0},
+{ 4, s_2_773, -1, 91, 0},
+{ 9, s_2_774, 773, 110, 0},
+{ 9, s_2_775, 773, 111, 0},
+{ 9, s_2_776, 773, 112, 0},
+{ 4, s_2_777, -1, 124, 0},
+{ 4, s_2_778, -1, 125, 0},
+{ 4, s_2_779, -1, 126, 0},
+{ 7, s_2_780, -1, 84, 0},
+{ 7, s_2_781, -1, 85, 0},
+{ 7, s_2_782, -1, 122, 0},
+{ 8, s_2_783, -1, 86, 0},
+{ 5, s_2_784, -1, 95, 0},
+{ 6, s_2_785, 784, 1, 0},
+{ 7, s_2_786, 784, 2, 0},
+{ 6, s_2_787, -1, 83, 0},
+{ 5, s_2_788, -1, 13, 0},
+{ 6, s_2_789, -1, 123, 0},
+{ 6, s_2_790, -1, 120, 0},
+{ 8, s_2_791, -1, 92, 0},
+{ 8, s_2_792, -1, 93, 0},
+{ 7, s_2_793, -1, 94, 0},
+{ 6, s_2_794, -1, 77, 0},
+{ 6, s_2_795, -1, 78, 0},
+{ 6, s_2_796, -1, 79, 0},
+{ 6, s_2_797, -1, 80, 0},
+{ 7, s_2_798, -1, 91, 0},
+{ 5, s_2_799, -1, 84, 0},
+{ 5, s_2_800, -1, 85, 0},
+{ 5, s_2_801, -1, 122, 0},
+{ 6, s_2_802, -1, 86, 0},
+{ 3, s_2_803, -1, 95, 0},
+{ 4, s_2_804, -1, 83, 0},
+{ 3, s_2_805, -1, 13, 0},
+{ 4, s_2_806, 805, 10, 0},
+{ 4, s_2_807, 805, 87, 0},
+{ 4, s_2_808, 805, 159, 0},
+{ 5, s_2_809, 805, 88, 0},
+{ 4, s_2_810, -1, 123, 0},
+{ 4, s_2_811, -1, 120, 0},
+{ 4, s_2_812, -1, 77, 0},
+{ 4, s_2_813, -1, 78, 0},
+{ 4, s_2_814, -1, 79, 0},
+{ 4, s_2_815, -1, 80, 0},
+{ 5, s_2_816, -1, 14, 0},
+{ 5, s_2_817, -1, 15, 0},
+{ 5, s_2_818, -1, 16, 0},
+{ 5, s_2_819, -1, 91, 0},
+{ 4, s_2_820, -1, 124, 0},
+{ 4, s_2_821, -1, 125, 0},
+{ 4, s_2_822, -1, 126, 0},
+{ 5, s_2_823, -1, 84, 0},
+{ 5, s_2_824, -1, 85, 0},
+{ 5, s_2_825, -1, 122, 0},
+{ 6, s_2_826, -1, 86, 0},
+{ 3, s_2_827, -1, 95, 0},
+{ 4, s_2_828, 827, 1, 0},
+{ 5, s_2_829, 827, 2, 0},
+{ 4, s_2_830, -1, 83, 0},
+{ 3, s_2_831, -1, 13, 0},
+{ 5, s_2_832, 831, 137, 0},
+{ 6, s_2_833, 831, 89, 0},
+{ 4, s_2_834, -1, 123, 0},
+{ 4, s_2_835, -1, 120, 0},
+{ 6, s_2_836, -1, 92, 0},
+{ 6, s_2_837, -1, 93, 0},
+{ 5, s_2_838, -1, 94, 0},
+{ 4, s_2_839, -1, 77, 0},
+{ 4, s_2_840, -1, 78, 0},
+{ 4, s_2_841, -1, 79, 0},
+{ 4, s_2_842, -1, 80, 0},
+{ 5, s_2_843, -1, 14, 0},
+{ 5, s_2_844, -1, 15, 0},
+{ 5, s_2_845, -1, 16, 0},
+{ 5, s_2_846, -1, 91, 0},
+{ 2, s_2_847, -1, 104, 0},
+{ 4, s_2_848, 847, 128, 0},
+{ 7, s_2_849, 847, 106, 0},
+{ 7, s_2_850, 847, 107, 0},
+{ 7, s_2_851, 847, 108, 0},
+{ 5, s_2_852, 847, 114, 0},
+{ 4, s_2_853, 847, 100, 0},
+{ 4, s_2_854, 847, 105, 0},
+{ 3, s_2_855, 847, 113, 0},
+{ 4, s_2_856, 847, 97, 0},
+{ 4, s_2_857, 847, 96, 0},
+{ 4, s_2_858, 847, 98, 0},
+{ 4, s_2_859, 847, 76, 0},
+{ 4, s_2_860, 847, 99, 0},
+{ 5, s_2_861, 847, 102, 0},
+{ 2, s_2_862, -1, 116, 0},
+{ 4, s_2_863, 862, 124, 0},
+{ 4, s_2_864, 862, 125, 0},
+{ 4, s_2_865, 862, 126, 0},
+{ 5, s_2_866, 865, 121, 0},
+{ 7, s_2_867, 862, 84, 0},
+{ 7, s_2_868, 862, 85, 0},
+{ 7, s_2_869, 862, 122, 0},
+{ 8, s_2_870, 862, 86, 0},
+{ 5, s_2_871, 862, 95, 0},
+{ 6, s_2_872, 871, 1, 0},
+{ 7, s_2_873, 871, 2, 0},
+{ 6, s_2_874, 862, 83, 0},
+{ 5, s_2_875, 862, 13, 0},
+{ 6, s_2_876, 862, 123, 0},
+{ 6, s_2_877, 862, 120, 0},
+{ 8, s_2_878, 862, 92, 0},
+{ 8, s_2_879, 862, 93, 0},
+{ 7, s_2_880, 862, 94, 0},
+{ 6, s_2_881, 862, 77, 0},
+{ 6, s_2_882, 862, 78, 0},
+{ 6, s_2_883, 862, 79, 0},
+{ 6, s_2_884, 862, 80, 0},
+{ 7, s_2_885, 862, 91, 0},
+{ 5, s_2_886, 862, 84, 0},
+{ 5, s_2_887, 862, 85, 0},
+{ 5, s_2_888, 862, 122, 0},
+{ 6, s_2_889, 862, 86, 0},
+{ 3, s_2_890, 862, 95, 0},
+{ 4, s_2_891, 890, 1, 0},
+{ 5, s_2_892, 890, 2, 0},
+{ 4, s_2_893, 862, 83, 0},
+{ 3, s_2_894, 862, 13, 0},
+{ 5, s_2_895, 894, 137, 0},
+{ 6, s_2_896, 894, 89, 0},
+{ 4, s_2_897, 862, 123, 0},
+{ 5, s_2_898, 897, 127, 0},
+{ 4, s_2_899, 862, 120, 0},
+{ 5, s_2_900, 862, 118, 0},
+{ 6, s_2_901, 862, 92, 0},
+{ 6, s_2_902, 862, 93, 0},
+{ 5, s_2_903, 862, 94, 0},
+{ 4, s_2_904, 862, 77, 0},
+{ 4, s_2_905, 862, 78, 0},
+{ 4, s_2_906, 862, 79, 0},
+{ 4, s_2_907, 862, 80, 0},
+{ 5, s_2_908, 862, 14, 0},
+{ 5, s_2_909, 862, 15, 0},
+{ 5, s_2_910, 862, 16, 0},
+{ 5, s_2_911, 862, 101, 0},
+{ 6, s_2_912, 862, 117, 0},
+{ 5, s_2_913, 862, 91, 0},
+{ 6, s_2_914, 913, 90, 0},
+{ 7, s_2_915, -1, 110, 0},
+{ 7, s_2_916, -1, 111, 0},
+{ 7, s_2_917, -1, 112, 0},
+{ 4, s_2_918, -1, 124, 0},
+{ 4, s_2_919, -1, 125, 0},
+{ 4, s_2_920, -1, 126, 0},
+{ 5, s_2_921, -1, 14, 0},
+{ 5, s_2_922, -1, 15, 0},
+{ 5, s_2_923, -1, 16, 0},
+{ 3, s_2_924, -1, 124, 0},
+{ 5, s_2_925, -1, 124, 0},
+{ 4, s_2_926, -1, 162, 0},
+{ 5, s_2_927, -1, 161, 0},
+{ 7, s_2_928, 927, 155, 0},
+{ 7, s_2_929, 927, 156, 0},
+{ 8, s_2_930, 927, 138, 0},
+{ 8, s_2_931, 927, 139, 0},
+{ 8, s_2_932, 927, 140, 0},
+{ 7, s_2_933, 927, 144, 0},
+{ 7, s_2_934, 927, 145, 0},
+{ 7, s_2_935, 927, 146, 0},
+{ 7, s_2_936, 927, 147, 0},
+{ 5, s_2_937, -1, 157, 0},
+{ 8, s_2_938, 937, 121, 0},
+{ 7, s_2_939, 937, 155, 0},
+{ 4, s_2_940, -1, 121, 0},
+{ 4, s_2_941, -1, 164, 0},
+{ 5, s_2_942, -1, 153, 0},
+{ 6, s_2_943, -1, 136, 0},
+{ 2, s_2_944, -1, 20, 0},
+{ 3, s_2_945, 944, 18, 0},
+{ 3, s_2_946, -1, 109, 0},
+{ 4, s_2_947, 946, 26, 0},
+{ 4, s_2_948, 946, 30, 0},
+{ 4, s_2_949, 946, 31, 0},
+{ 5, s_2_950, 946, 28, 0},
+{ 5, s_2_951, 946, 27, 0},
+{ 5, s_2_952, 946, 29, 0},
+{ 4, s_2_953, -1, 32, 0},
+{ 4, s_2_954, -1, 33, 0},
+{ 4, s_2_955, -1, 34, 0},
+{ 4, s_2_956, -1, 40, 0},
+{ 4, s_2_957, -1, 39, 0},
+{ 6, s_2_958, -1, 84, 0},
+{ 6, s_2_959, -1, 85, 0},
+{ 6, s_2_960, -1, 122, 0},
+{ 7, s_2_961, -1, 86, 0},
+{ 4, s_2_962, -1, 95, 0},
+{ 5, s_2_963, 962, 1, 0},
+{ 6, s_2_964, 962, 2, 0},
+{ 4, s_2_965, -1, 35, 0},
+{ 5, s_2_966, 965, 83, 0},
+{ 4, s_2_967, -1, 37, 0},
+{ 4, s_2_968, -1, 13, 0},
+{ 6, s_2_969, 968, 9, 0},
+{ 6, s_2_970, 968, 6, 0},
+{ 6, s_2_971, 968, 7, 0},
+{ 6, s_2_972, 968, 8, 0},
+{ 6, s_2_973, 968, 5, 0},
+{ 4, s_2_974, -1, 41, 0},
+{ 4, s_2_975, -1, 42, 0},
+{ 4, s_2_976, -1, 43, 0},
+{ 5, s_2_977, 976, 123, 0},
+{ 4, s_2_978, -1, 44, 0},
+{ 5, s_2_979, 978, 120, 0},
+{ 7, s_2_980, 978, 92, 0},
+{ 7, s_2_981, 978, 93, 0},
+{ 6, s_2_982, 978, 94, 0},
+{ 5, s_2_983, -1, 77, 0},
+{ 5, s_2_984, -1, 78, 0},
+{ 5, s_2_985, -1, 79, 0},
+{ 5, s_2_986, -1, 80, 0},
+{ 4, s_2_987, -1, 45, 0},
+{ 6, s_2_988, -1, 91, 0},
+{ 5, s_2_989, -1, 38, 0},
+{ 4, s_2_990, -1, 84, 0},
+{ 4, s_2_991, -1, 85, 0},
+{ 4, s_2_992, -1, 122, 0},
+{ 5, s_2_993, -1, 86, 0},
+{ 2, s_2_994, -1, 95, 0},
+{ 3, s_2_995, 994, 1, 0},
+{ 4, s_2_996, 994, 2, 0},
+{ 3, s_2_997, -1, 104, 0},
+{ 5, s_2_998, 997, 128, 0},
+{ 8, s_2_999, 997, 106, 0},
+{ 8, s_2_1000, 997, 107, 0},
+{ 8, s_2_1001, 997, 108, 0},
+{ 5, s_2_1002, 997, 47, 0},
+{ 6, s_2_1003, 997, 114, 0},
+{ 4, s_2_1004, 997, 46, 0},
+{ 5, s_2_1005, 997, 100, 0},
+{ 5, s_2_1006, 997, 105, 0},
+{ 4, s_2_1007, 997, 113, 0},
+{ 6, s_2_1008, 1007, 110, 0},
+{ 6, s_2_1009, 1007, 111, 0},
+{ 6, s_2_1010, 1007, 112, 0},
+{ 5, s_2_1011, 997, 97, 0},
+{ 5, s_2_1012, 997, 96, 0},
+{ 5, s_2_1013, 997, 98, 0},
+{ 5, s_2_1014, 997, 76, 0},
+{ 5, s_2_1015, 997, 99, 0},
+{ 6, s_2_1016, 997, 102, 0},
+{ 3, s_2_1017, -1, 83, 0},
+{ 3, s_2_1018, -1, 116, 0},
+{ 5, s_2_1019, 1018, 124, 0},
+{ 6, s_2_1020, 1018, 121, 0},
+{ 4, s_2_1021, 1018, 103, 0},
+{ 6, s_2_1022, 1018, 127, 0},
+{ 6, s_2_1023, 1018, 118, 0},
+{ 5, s_2_1024, 1018, 48, 0},
+{ 6, s_2_1025, 1018, 101, 0},
+{ 7, s_2_1026, 1018, 117, 0},
+{ 7, s_2_1027, 1018, 90, 0},
+{ 3, s_2_1028, -1, 50, 0},
+{ 4, s_2_1029, -1, 115, 0},
+{ 4, s_2_1030, -1, 13, 0},
+{ 4, s_2_1031, -1, 52, 0},
+{ 4, s_2_1032, -1, 51, 0},
+{ 2, s_2_1033, -1, 13, 0},
+{ 3, s_2_1034, 1033, 10, 0},
+{ 5, s_2_1035, 1034, 128, 0},
+{ 5, s_2_1036, 1034, 105, 0},
+{ 4, s_2_1037, 1034, 113, 0},
+{ 5, s_2_1038, 1034, 97, 0},
+{ 5, s_2_1039, 1034, 96, 0},
+{ 5, s_2_1040, 1034, 98, 0},
+{ 5, s_2_1041, 1034, 99, 0},
+{ 6, s_2_1042, 1034, 102, 0},
+{ 5, s_2_1043, 1033, 124, 0},
+{ 6, s_2_1044, 1033, 121, 0},
+{ 6, s_2_1045, 1033, 101, 0},
+{ 7, s_2_1046, 1033, 117, 0},
+{ 3, s_2_1047, 1033, 11, 0},
+{ 4, s_2_1048, 1047, 137, 0},
+{ 5, s_2_1049, 1047, 89, 0},
+{ 3, s_2_1050, 1033, 12, 0},
+{ 3, s_2_1051, -1, 53, 0},
+{ 3, s_2_1052, -1, 54, 0},
+{ 3, s_2_1053, -1, 55, 0},
+{ 3, s_2_1054, -1, 56, 0},
+{ 4, s_2_1055, -1, 135, 0},
+{ 4, s_2_1056, -1, 131, 0},
+{ 4, s_2_1057, -1, 129, 0},
+{ 4, s_2_1058, -1, 133, 0},
+{ 4, s_2_1059, -1, 132, 0},
+{ 4, s_2_1060, -1, 130, 0},
+{ 4, s_2_1061, -1, 134, 0},
+{ 3, s_2_1062, -1, 152, 0},
+{ 3, s_2_1063, -1, 154, 0},
+{ 3, s_2_1064, -1, 123, 0},
+{ 4, s_2_1065, -1, 161, 0},
+{ 6, s_2_1066, 1065, 128, 0},
+{ 6, s_2_1067, 1065, 155, 0},
+{ 5, s_2_1068, 1065, 160, 0},
+{ 6, s_2_1069, 1068, 153, 0},
+{ 7, s_2_1070, 1068, 141, 0},
+{ 7, s_2_1071, 1068, 142, 0},
+{ 7, s_2_1072, 1068, 143, 0},
+{ 4, s_2_1073, -1, 162, 0},
+{ 5, s_2_1074, 1073, 158, 0},
+{ 7, s_2_1075, 1073, 127, 0},
+{ 5, s_2_1076, -1, 164, 0},
+{ 3, s_2_1077, -1, 104, 0},
+{ 5, s_2_1078, 1077, 128, 0},
+{ 8, s_2_1079, 1077, 106, 0},
+{ 8, s_2_1080, 1077, 107, 0},
+{ 8, s_2_1081, 1077, 108, 0},
+{ 6, s_2_1082, 1077, 114, 0},
+{ 5, s_2_1083, 1077, 68, 0},
+{ 4, s_2_1084, 1077, 69, 0},
+{ 5, s_2_1085, 1077, 100, 0},
+{ 5, s_2_1086, 1077, 105, 0},
+{ 4, s_2_1087, 1077, 113, 0},
+{ 6, s_2_1088, 1087, 110, 0},
+{ 6, s_2_1089, 1087, 111, 0},
+{ 6, s_2_1090, 1087, 112, 0},
+{ 5, s_2_1091, 1077, 97, 0},
+{ 5, s_2_1092, 1077, 96, 0},
+{ 5, s_2_1093, 1077, 98, 0},
+{ 5, s_2_1094, 1077, 76, 0},
+{ 5, s_2_1095, 1077, 99, 0},
+{ 6, s_2_1096, 1077, 102, 0},
+{ 3, s_2_1097, -1, 70, 0},
+{ 3, s_2_1098, -1, 116, 0},
+{ 5, s_2_1099, 1098, 124, 0},
+{ 6, s_2_1100, 1098, 121, 0},
+{ 4, s_2_1101, 1098, 103, 0},
+{ 6, s_2_1102, 1098, 127, 0},
+{ 6, s_2_1103, 1098, 118, 0},
+{ 5, s_2_1104, 1098, 92, 0},
+{ 5, s_2_1105, 1098, 93, 0},
+{ 6, s_2_1106, 1098, 101, 0},
+{ 7, s_2_1107, 1098, 117, 0},
+{ 7, s_2_1108, 1098, 90, 0},
+{ 4, s_2_1109, -1, 94, 0},
+{ 4, s_2_1110, -1, 71, 0},
+{ 4, s_2_1111, -1, 72, 0},
+{ 4, s_2_1112, -1, 73, 0},
+{ 4, s_2_1113, -1, 74, 0},
+{ 4, s_2_1114, -1, 13, 0},
+{ 3, s_2_1115, -1, 77, 0},
+{ 3, s_2_1116, -1, 78, 0},
+{ 5, s_2_1117, 1116, 109, 0},
+{ 6, s_2_1118, 1117, 26, 0},
+{ 6, s_2_1119, 1117, 30, 0},
+{ 6, s_2_1120, 1117, 31, 0},
+{ 7, s_2_1121, 1117, 28, 0},
+{ 7, s_2_1122, 1117, 27, 0},
+{ 7, s_2_1123, 1117, 29, 0},
+{ 3, s_2_1124, -1, 79, 0},
+{ 3, s_2_1125, -1, 80, 0},
+{ 4, s_2_1126, 1125, 20, 0},
+{ 5, s_2_1127, 1126, 17, 0},
+{ 4, s_2_1128, 1125, 82, 0},
+{ 5, s_2_1129, 1128, 49, 0},
+{ 4, s_2_1130, 1125, 81, 0},
+{ 5, s_2_1131, 1125, 12, 0},
+{ 5, s_2_1132, -1, 116, 0},
+{ 7, s_2_1133, -1, 101, 0},
+{ 6, s_2_1134, -1, 104, 0},
+{ 8, s_2_1135, 1134, 100, 0},
+{ 8, s_2_1136, 1134, 105, 0},
+{ 9, s_2_1137, 1134, 106, 0},
+{ 9, s_2_1138, 1134, 107, 0},
+{ 9, s_2_1139, 1134, 108, 0},
+{ 8, s_2_1140, 1134, 97, 0},
+{ 8, s_2_1141, 1134, 96, 0},
+{ 8, s_2_1142, 1134, 98, 0},
+{ 8, s_2_1143, 1134, 99, 0},
+{ 6, s_2_1144, -1, 25, 0},
+{ 8, s_2_1145, 1144, 100, 0},
+{ 10, s_2_1146, 1144, 117, 0},
+{ 5, s_2_1147, -1, 13, 0},
+{ 6, s_2_1148, -1, 70, 0},
+{ 7, s_2_1149, -1, 115, 0},
+{ 4, s_2_1150, -1, 101, 0},
+{ 5, s_2_1151, -1, 117, 0},
+{ 5, s_2_1152, -1, 63, 0},
+{ 5, s_2_1153, -1, 64, 0},
+{ 5, s_2_1154, -1, 61, 0},
+{ 5, s_2_1155, -1, 62, 0},
+{ 5, s_2_1156, -1, 60, 0},
+{ 5, s_2_1157, -1, 59, 0},
+{ 5, s_2_1158, -1, 65, 0},
+{ 4, s_2_1159, -1, 66, 0},
+{ 4, s_2_1160, -1, 67, 0},
+{ 4, s_2_1161, -1, 91, 0},
+{ 5, s_2_1162, -1, 104, 0},
+{ 7, s_2_1163, 1162, 100, 0},
+{ 6, s_2_1164, 1162, 113, 0},
+{ 7, s_2_1165, 1164, 70, 0},
+{ 8, s_2_1166, 1164, 110, 0},
+{ 8, s_2_1167, 1164, 111, 0},
+{ 8, s_2_1168, 1164, 112, 0},
+{ 8, s_2_1169, 1162, 102, 0},
+{ 5, s_2_1170, -1, 116, 0},
+{ 6, s_2_1171, 1170, 103, 0},
+{ 9, s_2_1172, 1170, 90, 0},
+{ 6, s_2_1173, -1, 13, 0},
+{ 2, s_2_1174, -1, 104, 0},
+{ 4, s_2_1175, 1174, 105, 0},
+{ 3, s_2_1176, 1174, 113, 0},
+{ 4, s_2_1177, 1174, 97, 0},
+{ 4, s_2_1178, 1174, 96, 0},
+{ 4, s_2_1179, 1174, 98, 0},
+{ 4, s_2_1180, 1174, 99, 0},
+{ 2, s_2_1181, -1, 116, 0},
+{ 4, s_2_1182, -1, 124, 0},
+{ 4, s_2_1183, -1, 125, 0},
+{ 4, s_2_1184, -1, 126, 0},
+{ 7, s_2_1185, -1, 84, 0},
+{ 7, s_2_1186, -1, 85, 0},
+{ 7, s_2_1187, -1, 122, 0},
+{ 8, s_2_1188, -1, 86, 0},
+{ 5, s_2_1189, -1, 95, 0},
+{ 6, s_2_1190, 1189, 1, 0},
+{ 7, s_2_1191, 1189, 2, 0},
+{ 6, s_2_1192, -1, 83, 0},
+{ 5, s_2_1193, -1, 13, 0},
+{ 6, s_2_1194, -1, 123, 0},
+{ 8, s_2_1195, -1, 92, 0},
+{ 8, s_2_1196, -1, 93, 0},
+{ 7, s_2_1197, -1, 94, 0},
+{ 6, s_2_1198, -1, 77, 0},
+{ 6, s_2_1199, -1, 78, 0},
+{ 6, s_2_1200, -1, 79, 0},
+{ 6, s_2_1201, -1, 80, 0},
+{ 7, s_2_1202, -1, 91, 0},
+{ 5, s_2_1203, -1, 84, 0},
+{ 5, s_2_1204, -1, 85, 0},
+{ 5, s_2_1205, -1, 122, 0},
+{ 6, s_2_1206, -1, 86, 0},
+{ 3, s_2_1207, -1, 95, 0},
+{ 4, s_2_1208, 1207, 1, 0},
+{ 5, s_2_1209, 1207, 2, 0},
+{ 4, s_2_1210, -1, 104, 0},
+{ 4, s_2_1211, -1, 83, 0},
+{ 3, s_2_1212, -1, 13, 0},
+{ 5, s_2_1213, 1212, 137, 0},
+{ 6, s_2_1214, 1212, 89, 0},
+{ 4, s_2_1215, -1, 123, 0},
+{ 4, s_2_1216, -1, 120, 0},
+{ 6, s_2_1217, -1, 92, 0},
+{ 6, s_2_1218, -1, 93, 0},
+{ 5, s_2_1219, -1, 94, 0},
+{ 4, s_2_1220, -1, 77, 0},
+{ 4, s_2_1221, -1, 78, 0},
+{ 4, s_2_1222, -1, 79, 0},
+{ 4, s_2_1223, -1, 80, 0},
+{ 5, s_2_1224, -1, 14, 0},
+{ 5, s_2_1225, -1, 15, 0},
+{ 5, s_2_1226, -1, 16, 0},
+{ 5, s_2_1227, -1, 91, 0},
+{ 5, s_2_1228, -1, 121, 0},
+{ 4, s_2_1229, -1, 100, 0},
+{ 6, s_2_1230, -1, 117, 0},
+{ 2, s_2_1231, -1, 104, 0},
+{ 4, s_2_1232, 1231, 100, 0},
+{ 4, s_2_1233, 1231, 105, 0},
+{ 2, s_2_1234, -1, 119, 0},
+{ 2, s_2_1235, -1, 116, 0},
+{ 2, s_2_1236, -1, 104, 0},
+{ 4, s_2_1237, 1236, 128, 0},
+{ 4, s_2_1238, 1236, 100, 0},
+{ 4, s_2_1239, 1236, 105, 0},
+{ 3, s_2_1240, 1236, 113, 0},
+{ 4, s_2_1241, 1236, 97, 0},
+{ 4, s_2_1242, 1236, 96, 0},
+{ 4, s_2_1243, 1236, 98, 0},
+{ 4, s_2_1244, 1236, 99, 0},
+{ 5, s_2_1245, 1236, 102, 0},
+{ 2, s_2_1246, -1, 119, 0},
+{ 4, s_2_1247, 1246, 124, 0},
+{ 4, s_2_1248, 1246, 125, 0},
+{ 4, s_2_1249, 1246, 126, 0},
+{ 7, s_2_1250, 1246, 110, 0},
+{ 7, s_2_1251, 1246, 111, 0},
+{ 7, s_2_1252, 1246, 112, 0},
+{ 4, s_2_1253, 1246, 104, 0},
+{ 5, s_2_1254, 1253, 26, 0},
+{ 5, s_2_1255, 1253, 30, 0},
+{ 5, s_2_1256, 1253, 31, 0},
+{ 7, s_2_1257, 1253, 106, 0},
+{ 7, s_2_1258, 1253, 107, 0},
+{ 7, s_2_1259, 1253, 108, 0},
+{ 6, s_2_1260, 1253, 28, 0},
+{ 6, s_2_1261, 1253, 27, 0},
+{ 6, s_2_1262, 1253, 29, 0},
+{ 4, s_2_1263, 1246, 116, 0},
+{ 7, s_2_1264, 1263, 84, 0},
+{ 7, s_2_1265, 1263, 85, 0},
+{ 7, s_2_1266, 1263, 123, 0},
+{ 8, s_2_1267, 1263, 86, 0},
+{ 5, s_2_1268, 1263, 95, 0},
+{ 6, s_2_1269, 1268, 1, 0},
+{ 7, s_2_1270, 1268, 2, 0},
+{ 5, s_2_1271, 1263, 24, 0},
+{ 6, s_2_1272, 1271, 83, 0},
+{ 5, s_2_1273, 1263, 13, 0},
+{ 7, s_2_1274, 1263, 21, 0},
+{ 5, s_2_1275, 1263, 23, 0},
+{ 6, s_2_1276, 1275, 123, 0},
+{ 6, s_2_1277, 1263, 120, 0},
+{ 8, s_2_1278, 1263, 92, 0},
+{ 8, s_2_1279, 1263, 93, 0},
+{ 6, s_2_1280, 1263, 22, 0},
+{ 7, s_2_1281, 1263, 94, 0},
+{ 6, s_2_1282, 1263, 77, 0},
+{ 6, s_2_1283, 1263, 78, 0},
+{ 6, s_2_1284, 1263, 79, 0},
+{ 6, s_2_1285, 1263, 80, 0},
+{ 7, s_2_1286, 1263, 91, 0},
+{ 5, s_2_1287, 1246, 84, 0},
+{ 5, s_2_1288, 1246, 85, 0},
+{ 5, s_2_1289, 1246, 114, 0},
+{ 5, s_2_1290, 1246, 122, 0},
+{ 6, s_2_1291, 1246, 86, 0},
+{ 4, s_2_1292, 1246, 25, 0},
+{ 7, s_2_1293, 1292, 121, 0},
+{ 6, s_2_1294, 1292, 100, 0},
+{ 8, s_2_1295, 1292, 117, 0},
+{ 3, s_2_1296, 1246, 95, 0},
+{ 4, s_2_1297, 1296, 1, 0},
+{ 5, s_2_1298, 1296, 2, 0},
+{ 4, s_2_1299, 1246, 83, 0},
+{ 3, s_2_1300, 1246, 13, 0},
+{ 4, s_2_1301, 1300, 10, 0},
+{ 7, s_2_1302, 1301, 110, 0},
+{ 7, s_2_1303, 1301, 111, 0},
+{ 7, s_2_1304, 1301, 112, 0},
+{ 4, s_2_1305, 1300, 87, 0},
+{ 4, s_2_1306, 1300, 159, 0},
+{ 5, s_2_1307, 1300, 88, 0},
+{ 5, s_2_1308, 1246, 135, 0},
+{ 5, s_2_1309, 1246, 131, 0},
+{ 5, s_2_1310, 1246, 129, 0},
+{ 5, s_2_1311, 1246, 133, 0},
+{ 5, s_2_1312, 1246, 132, 0},
+{ 5, s_2_1313, 1246, 130, 0},
+{ 5, s_2_1314, 1246, 134, 0},
+{ 4, s_2_1315, 1246, 152, 0},
+{ 4, s_2_1316, 1246, 154, 0},
+{ 4, s_2_1317, 1246, 123, 0},
+{ 4, s_2_1318, 1246, 120, 0},
+{ 4, s_2_1319, 1246, 70, 0},
+{ 6, s_2_1320, 1246, 92, 0},
+{ 6, s_2_1321, 1246, 93, 0},
+{ 5, s_2_1322, 1246, 94, 0},
+{ 5, s_2_1323, 1246, 151, 0},
+{ 6, s_2_1324, 1246, 75, 0},
+{ 4, s_2_1325, 1246, 77, 0},
+{ 4, s_2_1326, 1246, 78, 0},
+{ 4, s_2_1327, 1246, 79, 0},
+{ 5, s_2_1328, 1246, 14, 0},
+{ 5, s_2_1329, 1246, 15, 0},
+{ 5, s_2_1330, 1246, 16, 0},
+{ 6, s_2_1331, 1246, 63, 0},
+{ 6, s_2_1332, 1246, 64, 0},
+{ 6, s_2_1333, 1246, 61, 0},
+{ 6, s_2_1334, 1246, 62, 0},
+{ 6, s_2_1335, 1246, 60, 0},
+{ 6, s_2_1336, 1246, 59, 0},
+{ 6, s_2_1337, 1246, 65, 0},
+{ 5, s_2_1338, 1246, 66, 0},
+{ 5, s_2_1339, 1246, 67, 0},
+{ 5, s_2_1340, 1246, 91, 0},
+{ 2, s_2_1341, -1, 116, 0},
+{ 4, s_2_1342, 1341, 124, 0},
+{ 4, s_2_1343, 1341, 125, 0},
+{ 4, s_2_1344, 1341, 126, 0},
+{ 5, s_2_1345, 1344, 121, 0},
+{ 7, s_2_1346, 1341, 84, 0},
+{ 7, s_2_1347, 1341, 85, 0},
+{ 7, s_2_1348, 1341, 122, 0},
+{ 8, s_2_1349, 1341, 86, 0},
+{ 5, s_2_1350, 1341, 95, 0},
+{ 6, s_2_1351, 1350, 1, 0},
+{ 7, s_2_1352, 1350, 2, 0},
+{ 6, s_2_1353, 1341, 83, 0},
+{ 5, s_2_1354, 1341, 13, 0},
+{ 6, s_2_1355, 1341, 123, 0},
+{ 6, s_2_1356, 1341, 120, 0},
+{ 8, s_2_1357, 1341, 92, 0},
+{ 8, s_2_1358, 1341, 93, 0},
+{ 7, s_2_1359, 1341, 94, 0},
+{ 6, s_2_1360, 1341, 77, 0},
+{ 6, s_2_1361, 1341, 78, 0},
+{ 6, s_2_1362, 1341, 79, 0},
+{ 6, s_2_1363, 1341, 80, 0},
+{ 7, s_2_1364, 1341, 91, 0},
+{ 5, s_2_1365, 1341, 84, 0},
+{ 5, s_2_1366, 1341, 85, 0},
+{ 5, s_2_1367, 1341, 122, 0},
+{ 6, s_2_1368, 1341, 86, 0},
+{ 3, s_2_1369, 1341, 95, 0},
+{ 4, s_2_1370, 1369, 1, 0},
+{ 5, s_2_1371, 1369, 2, 0},
+{ 4, s_2_1372, 1341, 83, 0},
+{ 3, s_2_1373, 1341, 13, 0},
+{ 5, s_2_1374, 1373, 137, 0},
+{ 6, s_2_1375, 1373, 89, 0},
+{ 4, s_2_1376, 1341, 123, 0},
+{ 5, s_2_1377, 1376, 127, 0},
+{ 4, s_2_1378, 1341, 120, 0},
+{ 5, s_2_1379, 1341, 118, 0},
+{ 6, s_2_1380, 1341, 92, 0},
+{ 6, s_2_1381, 1341, 93, 0},
+{ 5, s_2_1382, 1341, 94, 0},
+{ 4, s_2_1383, 1341, 77, 0},
+{ 4, s_2_1384, 1341, 78, 0},
+{ 4, s_2_1385, 1341, 79, 0},
+{ 4, s_2_1386, 1341, 80, 0},
+{ 5, s_2_1387, 1341, 14, 0},
+{ 5, s_2_1388, 1341, 15, 0},
+{ 5, s_2_1389, 1341, 16, 0},
+{ 5, s_2_1390, 1341, 101, 0},
+{ 6, s_2_1391, 1341, 117, 0},
+{ 5, s_2_1392, 1341, 91, 0},
+{ 6, s_2_1393, 1392, 90, 0},
+{ 4, s_2_1394, -1, 124, 0},
+{ 4, s_2_1395, -1, 125, 0},
+{ 4, s_2_1396, -1, 126, 0},
+{ 3, s_2_1397, -1, 20, 0},
+{ 5, s_2_1398, 1397, 19, 0},
+{ 4, s_2_1399, 1397, 18, 0},
+{ 5, s_2_1400, -1, 32, 0},
+{ 5, s_2_1401, -1, 33, 0},
+{ 5, s_2_1402, -1, 34, 0},
+{ 5, s_2_1403, -1, 40, 0},
+{ 5, s_2_1404, -1, 39, 0},
+{ 5, s_2_1405, -1, 35, 0},
+{ 5, s_2_1406, -1, 37, 0},
+{ 5, s_2_1407, -1, 36, 0},
+{ 7, s_2_1408, 1407, 9, 0},
+{ 7, s_2_1409, 1407, 6, 0},
+{ 7, s_2_1410, 1407, 7, 0},
+{ 7, s_2_1411, 1407, 8, 0},
+{ 7, s_2_1412, 1407, 5, 0},
+{ 5, s_2_1413, -1, 41, 0},
+{ 5, s_2_1414, -1, 42, 0},
+{ 5, s_2_1415, -1, 43, 0},
+{ 5, s_2_1416, -1, 44, 0},
+{ 5, s_2_1417, -1, 45, 0},
+{ 6, s_2_1418, -1, 38, 0},
+{ 5, s_2_1419, -1, 84, 0},
+{ 5, s_2_1420, -1, 85, 0},
+{ 5, s_2_1421, -1, 122, 0},
+{ 6, s_2_1422, -1, 86, 0},
+{ 3, s_2_1423, -1, 95, 0},
+{ 4, s_2_1424, 1423, 1, 0},
+{ 5, s_2_1425, 1423, 2, 0},
+{ 4, s_2_1426, -1, 104, 0},
+{ 6, s_2_1427, 1426, 47, 0},
+{ 5, s_2_1428, 1426, 46, 0},
+{ 4, s_2_1429, -1, 83, 0},
+{ 4, s_2_1430, -1, 116, 0},
+{ 6, s_2_1431, 1430, 48, 0},
+{ 4, s_2_1432, -1, 50, 0},
+{ 5, s_2_1433, -1, 52, 0},
+{ 5, s_2_1434, -1, 51, 0},
+{ 3, s_2_1435, -1, 13, 0},
+{ 4, s_2_1436, 1435, 10, 0},
+{ 4, s_2_1437, 1435, 11, 0},
+{ 5, s_2_1438, 1437, 137, 0},
+{ 6, s_2_1439, 1437, 10, 0},
+{ 6, s_2_1440, 1437, 89, 0},
+{ 4, s_2_1441, 1435, 12, 0},
+{ 4, s_2_1442, -1, 53, 0},
+{ 4, s_2_1443, -1, 54, 0},
+{ 4, s_2_1444, -1, 55, 0},
+{ 4, s_2_1445, -1, 56, 0},
+{ 5, s_2_1446, -1, 135, 0},
+{ 5, s_2_1447, -1, 131, 0},
+{ 5, s_2_1448, -1, 129, 0},
+{ 5, s_2_1449, -1, 133, 0},
+{ 5, s_2_1450, -1, 132, 0},
+{ 5, s_2_1451, -1, 130, 0},
+{ 5, s_2_1452, -1, 134, 0},
+{ 4, s_2_1453, -1, 57, 0},
+{ 4, s_2_1454, -1, 58, 0},
+{ 4, s_2_1455, -1, 123, 0},
+{ 4, s_2_1456, -1, 120, 0},
+{ 6, s_2_1457, 1456, 68, 0},
+{ 5, s_2_1458, 1456, 69, 0},
+{ 4, s_2_1459, -1, 70, 0},
+{ 6, s_2_1460, -1, 92, 0},
+{ 6, s_2_1461, -1, 93, 0},
+{ 5, s_2_1462, -1, 94, 0},
+{ 5, s_2_1463, -1, 71, 0},
+{ 5, s_2_1464, -1, 72, 0},
+{ 5, s_2_1465, -1, 73, 0},
+{ 5, s_2_1466, -1, 74, 0},
+{ 4, s_2_1467, -1, 77, 0},
+{ 4, s_2_1468, -1, 78, 0},
+{ 4, s_2_1469, -1, 79, 0},
+{ 4, s_2_1470, -1, 80, 0},
+{ 5, s_2_1471, 1470, 82, 0},
+{ 5, s_2_1472, 1470, 81, 0},
+{ 5, s_2_1473, -1, 3, 0},
+{ 6, s_2_1474, -1, 4, 0},
+{ 5, s_2_1475, -1, 14, 0},
+{ 5, s_2_1476, -1, 15, 0},
+{ 5, s_2_1477, -1, 16, 0},
+{ 6, s_2_1478, -1, 63, 0},
+{ 6, s_2_1479, -1, 64, 0},
+{ 6, s_2_1480, -1, 61, 0},
+{ 6, s_2_1481, -1, 62, 0},
+{ 6, s_2_1482, -1, 60, 0},
+{ 6, s_2_1483, -1, 59, 0},
+{ 6, s_2_1484, -1, 65, 0},
+{ 5, s_2_1485, -1, 66, 0},
+{ 5, s_2_1486, -1, 67, 0},
+{ 5, s_2_1487, -1, 91, 0},
+{ 2, s_2_1488, -1, 104, 0},
+{ 4, s_2_1489, 1488, 128, 0},
+{ 4, s_2_1490, 1488, 100, 0},
+{ 4, s_2_1491, 1488, 105, 0},
+{ 3, s_2_1492, 1488, 113, 0},
+{ 4, s_2_1493, 1488, 97, 0},
+{ 4, s_2_1494, 1488, 96, 0},
+{ 4, s_2_1495, 1488, 98, 0},
+{ 4, s_2_1496, 1488, 99, 0},
+{ 5, s_2_1497, 1488, 102, 0},
+{ 4, s_2_1498, -1, 124, 0},
+{ 5, s_2_1499, -1, 121, 0},
+{ 5, s_2_1500, -1, 101, 0},
+{ 6, s_2_1501, -1, 117, 0},
+{ 4, s_2_1502, -1, 10, 0},
+{ 2, s_2_1503, -1, 104, 0},
+{ 4, s_2_1504, 1503, 128, 0},
+{ 7, s_2_1505, 1503, 106, 0},
+{ 7, s_2_1506, 1503, 107, 0},
+{ 7, s_2_1507, 1503, 108, 0},
+{ 5, s_2_1508, 1503, 114, 0},
+{ 4, s_2_1509, 1503, 100, 0},
+{ 4, s_2_1510, 1503, 105, 0},
+{ 3, s_2_1511, 1503, 113, 0},
+{ 5, s_2_1512, 1511, 110, 0},
+{ 5, s_2_1513, 1511, 111, 0},
+{ 5, s_2_1514, 1511, 112, 0},
+{ 4, s_2_1515, 1503, 97, 0},
+{ 4, s_2_1516, 1503, 96, 0},
+{ 4, s_2_1517, 1503, 98, 0},
+{ 4, s_2_1518, 1503, 76, 0},
+{ 4, s_2_1519, 1503, 99, 0},
+{ 5, s_2_1520, 1503, 102, 0},
+{ 2, s_2_1521, -1, 20, 0},
+{ 3, s_2_1522, 1521, 18, 0},
+{ 2, s_2_1523, -1, 116, 0},
+{ 4, s_2_1524, 1523, 124, 0},
+{ 5, s_2_1525, 1523, 121, 0},
+{ 3, s_2_1526, 1523, 24, 0},
+{ 3, s_2_1527, 1523, 103, 0},
+{ 5, s_2_1528, 1523, 21, 0},
+{ 3, s_2_1529, 1523, 23, 0},
+{ 5, s_2_1530, 1529, 127, 0},
+{ 5, s_2_1531, 1523, 118, 0},
+{ 4, s_2_1532, 1523, 22, 0},
+{ 5, s_2_1533, 1523, 101, 0},
+{ 6, s_2_1534, 1523, 117, 0},
+{ 6, s_2_1535, 1523, 90, 0},
+{ 4, s_2_1536, -1, 32, 0},
+{ 4, s_2_1537, -1, 33, 0},
+{ 4, s_2_1538, -1, 34, 0},
+{ 4, s_2_1539, -1, 40, 0},
+{ 4, s_2_1540, -1, 39, 0},
+{ 4, s_2_1541, -1, 35, 0},
+{ 4, s_2_1542, -1, 37, 0},
+{ 4, s_2_1543, -1, 36, 0},
+{ 4, s_2_1544, -1, 41, 0},
+{ 4, s_2_1545, -1, 42, 0},
+{ 4, s_2_1546, -1, 43, 0},
+{ 4, s_2_1547, -1, 44, 0},
+{ 4, s_2_1548, -1, 45, 0},
+{ 5, s_2_1549, -1, 38, 0},
+{ 4, s_2_1550, -1, 84, 0},
+{ 4, s_2_1551, -1, 85, 0},
+{ 4, s_2_1552, -1, 122, 0},
+{ 5, s_2_1553, -1, 86, 0},
+{ 2, s_2_1554, -1, 95, 0},
+{ 3, s_2_1555, 1554, 1, 0},
+{ 4, s_2_1556, 1554, 2, 0},
+{ 3, s_2_1557, -1, 104, 0},
+{ 5, s_2_1558, 1557, 128, 0},
+{ 8, s_2_1559, 1557, 106, 0},
+{ 8, s_2_1560, 1557, 107, 0},
+{ 8, s_2_1561, 1557, 108, 0},
+{ 5, s_2_1562, 1557, 47, 0},
+{ 6, s_2_1563, 1557, 114, 0},
+{ 4, s_2_1564, 1557, 46, 0},
+{ 5, s_2_1565, 1557, 100, 0},
+{ 5, s_2_1566, 1557, 105, 0},
+{ 4, s_2_1567, 1557, 113, 0},
+{ 6, s_2_1568, 1567, 110, 0},
+{ 6, s_2_1569, 1567, 111, 0},
+{ 6, s_2_1570, 1567, 112, 0},
+{ 5, s_2_1571, 1557, 97, 0},
+{ 5, s_2_1572, 1557, 96, 0},
+{ 5, s_2_1573, 1557, 98, 0},
+{ 5, s_2_1574, 1557, 76, 0},
+{ 5, s_2_1575, 1557, 99, 0},
+{ 6, s_2_1576, 1557, 102, 0},
+{ 3, s_2_1577, -1, 83, 0},
+{ 3, s_2_1578, -1, 116, 0},
+{ 5, s_2_1579, 1578, 124, 0},
+{ 6, s_2_1580, 1578, 121, 0},
+{ 4, s_2_1581, 1578, 103, 0},
+{ 6, s_2_1582, 1578, 127, 0},
+{ 6, s_2_1583, 1578, 118, 0},
+{ 6, s_2_1584, 1578, 101, 0},
+{ 7, s_2_1585, 1578, 117, 0},
+{ 7, s_2_1586, 1578, 90, 0},
+{ 4, s_2_1587, -1, 115, 0},
+{ 4, s_2_1588, -1, 13, 0},
+{ 3, s_2_1589, -1, 104, 0},
+{ 5, s_2_1590, 1589, 128, 0},
+{ 4, s_2_1591, 1589, 52, 0},
+{ 5, s_2_1592, 1591, 100, 0},
+{ 5, s_2_1593, 1591, 105, 0},
+{ 4, s_2_1594, 1589, 113, 0},
+{ 5, s_2_1595, 1589, 97, 0},
+{ 5, s_2_1596, 1589, 96, 0},
+{ 5, s_2_1597, 1589, 98, 0},
+{ 5, s_2_1598, 1589, 99, 0},
+{ 6, s_2_1599, 1589, 102, 0},
+{ 3, s_2_1600, -1, 119, 0},
+{ 8, s_2_1601, 1600, 110, 0},
+{ 8, s_2_1602, 1600, 111, 0},
+{ 8, s_2_1603, 1600, 112, 0},
+{ 8, s_2_1604, 1600, 106, 0},
+{ 8, s_2_1605, 1600, 107, 0},
+{ 8, s_2_1606, 1600, 108, 0},
+{ 5, s_2_1607, 1600, 116, 0},
+{ 6, s_2_1608, 1600, 114, 0},
+{ 5, s_2_1609, 1600, 25, 0},
+{ 8, s_2_1610, 1609, 121, 0},
+{ 7, s_2_1611, 1609, 100, 0},
+{ 9, s_2_1612, 1609, 117, 0},
+{ 4, s_2_1613, 1600, 51, 0},
+{ 4, s_2_1614, 1600, 13, 0},
+{ 8, s_2_1615, 1614, 110, 0},
+{ 8, s_2_1616, 1614, 111, 0},
+{ 8, s_2_1617, 1614, 112, 0},
+{ 5, s_2_1618, 1600, 70, 0},
+{ 6, s_2_1619, 1600, 115, 0},
+{ 3, s_2_1620, -1, 116, 0},
+{ 5, s_2_1621, 1620, 124, 0},
+{ 6, s_2_1622, 1620, 121, 0},
+{ 4, s_2_1623, 1620, 13, 0},
+{ 8, s_2_1624, 1623, 110, 0},
+{ 8, s_2_1625, 1623, 111, 0},
+{ 8, s_2_1626, 1623, 112, 0},
+{ 6, s_2_1627, 1620, 127, 0},
+{ 5, s_2_1628, 1620, 70, 0},
+{ 6, s_2_1629, 1628, 118, 0},
+{ 6, s_2_1630, 1620, 115, 0},
+{ 6, s_2_1631, 1620, 101, 0},
+{ 7, s_2_1632, 1620, 117, 0},
+{ 7, s_2_1633, 1620, 90, 0},
+{ 4, s_2_1634, -1, 104, 0},
+{ 6, s_2_1635, 1634, 105, 0},
+{ 5, s_2_1636, 1634, 113, 0},
+{ 7, s_2_1637, 1636, 106, 0},
+{ 7, s_2_1638, 1636, 107, 0},
+{ 7, s_2_1639, 1636, 108, 0},
+{ 6, s_2_1640, 1634, 97, 0},
+{ 6, s_2_1641, 1634, 96, 0},
+{ 6, s_2_1642, 1634, 98, 0},
+{ 6, s_2_1643, 1634, 99, 0},
+{ 4, s_2_1644, -1, 116, 0},
+{ 4, s_2_1645, -1, 25, 0},
+{ 7, s_2_1646, 1645, 121, 0},
+{ 6, s_2_1647, 1645, 100, 0},
+{ 8, s_2_1648, 1645, 117, 0},
+{ 4, s_2_1649, -1, 104, 0},
+{ 6, s_2_1650, 1649, 128, 0},
+{ 9, s_2_1651, 1649, 106, 0},
+{ 9, s_2_1652, 1649, 107, 0},
+{ 9, s_2_1653, 1649, 108, 0},
+{ 7, s_2_1654, 1649, 114, 0},
+{ 6, s_2_1655, 1649, 100, 0},
+{ 6, s_2_1656, 1649, 105, 0},
+{ 5, s_2_1657, 1649, 113, 0},
+{ 6, s_2_1658, 1649, 97, 0},
+{ 6, s_2_1659, 1649, 96, 0},
+{ 6, s_2_1660, 1649, 98, 0},
+{ 6, s_2_1661, 1649, 76, 0},
+{ 6, s_2_1662, 1649, 99, 0},
+{ 7, s_2_1663, 1649, 102, 0},
+{ 4, s_2_1664, -1, 116, 0},
+{ 6, s_2_1665, 1664, 124, 0},
+{ 7, s_2_1666, 1664, 121, 0},
+{ 5, s_2_1667, 1664, 103, 0},
+{ 7, s_2_1668, 1664, 127, 0},
+{ 7, s_2_1669, 1664, 118, 0},
+{ 7, s_2_1670, 1664, 101, 0},
+{ 8, s_2_1671, 1664, 117, 0},
+{ 8, s_2_1672, 1664, 90, 0},
+{ 9, s_2_1673, -1, 110, 0},
+{ 9, s_2_1674, -1, 111, 0},
+{ 9, s_2_1675, -1, 112, 0},
+{ 5, s_2_1676, -1, 13, 0},
+{ 2, s_2_1677, -1, 13, 0},
+{ 3, s_2_1678, 1677, 104, 0},
+{ 5, s_2_1679, 1678, 128, 0},
+{ 5, s_2_1680, 1678, 105, 0},
+{ 4, s_2_1681, 1678, 113, 0},
+{ 5, s_2_1682, 1678, 97, 0},
+{ 5, s_2_1683, 1678, 96, 0},
+{ 5, s_2_1684, 1678, 98, 0},
+{ 5, s_2_1685, 1678, 99, 0},
+{ 6, s_2_1686, 1678, 102, 0},
+{ 5, s_2_1687, 1677, 124, 0},
+{ 6, s_2_1688, 1677, 121, 0},
+{ 6, s_2_1689, 1677, 101, 0},
+{ 7, s_2_1690, 1677, 117, 0},
+{ 3, s_2_1691, 1677, 11, 0},
+{ 4, s_2_1692, 1691, 137, 0},
+{ 5, s_2_1693, 1691, 89, 0},
+{ 3, s_2_1694, -1, 120, 0},
+{ 5, s_2_1695, 1694, 68, 0},
+{ 4, s_2_1696, 1694, 69, 0},
+{ 3, s_2_1697, -1, 70, 0},
+{ 5, s_2_1698, -1, 92, 0},
+{ 5, s_2_1699, -1, 93, 0},
+{ 4, s_2_1700, -1, 94, 0},
+{ 4, s_2_1701, -1, 71, 0},
+{ 4, s_2_1702, -1, 72, 0},
+{ 4, s_2_1703, -1, 73, 0},
+{ 4, s_2_1704, -1, 74, 0},
+{ 4, s_2_1705, -1, 13, 0},
+{ 3, s_2_1706, -1, 13, 0},
+{ 3, s_2_1707, -1, 77, 0},
+{ 3, s_2_1708, -1, 78, 0},
+{ 3, s_2_1709, -1, 79, 0},
+{ 3, s_2_1710, -1, 80, 0},
+{ 4, s_2_1711, -1, 3, 0},
+{ 5, s_2_1712, -1, 4, 0},
+{ 2, s_2_1713, -1, 161, 0},
+{ 4, s_2_1714, 1713, 128, 0},
+{ 4, s_2_1715, 1713, 155, 0},
+{ 4, s_2_1716, 1713, 156, 0},
+{ 3, s_2_1717, 1713, 160, 0},
+{ 4, s_2_1718, 1713, 144, 0},
+{ 4, s_2_1719, 1713, 145, 0},
+{ 4, s_2_1720, 1713, 146, 0},
+{ 4, s_2_1721, 1713, 147, 0},
+{ 2, s_2_1722, -1, 163, 0},
+{ 7, s_2_1723, 1722, 141, 0},
+{ 7, s_2_1724, 1722, 142, 0},
+{ 7, s_2_1725, 1722, 143, 0},
+{ 7, s_2_1726, 1722, 138, 0},
+{ 7, s_2_1727, 1722, 139, 0},
+{ 7, s_2_1728, 1722, 140, 0},
+{ 4, s_2_1729, 1722, 162, 0},
+{ 5, s_2_1730, 1722, 150, 0},
+{ 4, s_2_1731, 1722, 157, 0},
+{ 7, s_2_1732, 1731, 121, 0},
+{ 6, s_2_1733, 1731, 155, 0},
+{ 3, s_2_1734, 1722, 164, 0},
+{ 7, s_2_1735, 1734, 141, 0},
+{ 7, s_2_1736, 1734, 142, 0},
+{ 7, s_2_1737, 1734, 143, 0},
+{ 4, s_2_1738, 1722, 153, 0},
+{ 5, s_2_1739, 1722, 136, 0},
+{ 2, s_2_1740, -1, 162, 0},
+{ 4, s_2_1741, 1740, 124, 0},
+{ 5, s_2_1742, 1740, 121, 0},
+{ 3, s_2_1743, 1740, 158, 0},
+{ 5, s_2_1744, 1740, 127, 0},
+{ 5, s_2_1745, 1740, 149, 0},
+{ 2, s_2_1746, -1, 104, 0},
+{ 4, s_2_1747, 1746, 128, 0},
+{ 7, s_2_1748, 1746, 106, 0},
+{ 7, s_2_1749, 1746, 107, 0},
+{ 7, s_2_1750, 1746, 108, 0},
+{ 5, s_2_1751, 1746, 114, 0},
+{ 4, s_2_1752, 1746, 100, 0},
+{ 4, s_2_1753, 1746, 105, 0},
+{ 3, s_2_1754, 1746, 113, 0},
+{ 5, s_2_1755, 1754, 110, 0},
+{ 5, s_2_1756, 1754, 111, 0},
+{ 5, s_2_1757, 1754, 112, 0},
+{ 4, s_2_1758, 1746, 97, 0},
+{ 4, s_2_1759, 1746, 96, 0},
+{ 4, s_2_1760, 1746, 98, 0},
+{ 6, s_2_1761, 1760, 100, 0},
+{ 4, s_2_1762, 1746, 76, 0},
+{ 4, s_2_1763, 1746, 99, 0},
+{ 5, s_2_1764, 1746, 102, 0},
+{ 2, s_2_1765, -1, 116, 0},
+{ 4, s_2_1766, 1765, 124, 0},
+{ 5, s_2_1767, 1765, 121, 0},
+{ 5, s_2_1768, 1765, 127, 0},
+{ 5, s_2_1769, 1765, 118, 0},
+{ 5, s_2_1770, 1765, 101, 0},
+{ 6, s_2_1771, 1765, 117, 0},
+{ 6, s_2_1772, 1765, 90, 0},
+{ 3, s_2_1773, -1, 13, 0},
+{ 6, s_2_1774, -1, 110, 0},
+{ 6, s_2_1775, -1, 111, 0},
+{ 6, s_2_1776, -1, 112, 0},
+{ 2, s_2_1777, -1, 20, 0},
+{ 4, s_2_1778, 1777, 19, 0},
+{ 3, s_2_1779, 1777, 18, 0},
+{ 3, s_2_1780, -1, 104, 0},
+{ 5, s_2_1781, 1780, 128, 0},
+{ 8, s_2_1782, 1780, 106, 0},
+{ 8, s_2_1783, 1780, 107, 0},
+{ 8, s_2_1784, 1780, 108, 0},
+{ 6, s_2_1785, 1780, 114, 0},
+{ 5, s_2_1786, 1780, 100, 0},
+{ 5, s_2_1787, 1780, 105, 0},
+{ 5, s_2_1788, 1780, 97, 0},
+{ 5, s_2_1789, 1780, 96, 0},
+{ 5, s_2_1790, 1780, 98, 0},
+{ 5, s_2_1791, 1780, 76, 0},
+{ 5, s_2_1792, 1780, 99, 0},
+{ 6, s_2_1793, 1780, 102, 0},
+{ 3, s_2_1794, -1, 104, 0},
+{ 4, s_2_1795, 1794, 26, 0},
+{ 5, s_2_1796, 1795, 128, 0},
+{ 4, s_2_1797, 1794, 30, 0},
+{ 4, s_2_1798, 1794, 31, 0},
+{ 5, s_2_1799, 1798, 100, 0},
+{ 5, s_2_1800, 1798, 105, 0},
+{ 4, s_2_1801, 1794, 113, 0},
+{ 6, s_2_1802, 1801, 106, 0},
+{ 6, s_2_1803, 1801, 107, 0},
+{ 6, s_2_1804, 1801, 108, 0},
+{ 5, s_2_1805, 1794, 97, 0},
+{ 5, s_2_1806, 1794, 96, 0},
+{ 5, s_2_1807, 1794, 98, 0},
+{ 5, s_2_1808, 1794, 99, 0},
+{ 5, s_2_1809, 1794, 28, 0},
+{ 5, s_2_1810, 1794, 27, 0},
+{ 6, s_2_1811, 1810, 102, 0},
+{ 5, s_2_1812, 1794, 29, 0},
+{ 3, s_2_1813, -1, 116, 0},
+{ 4, s_2_1814, 1813, 32, 0},
+{ 4, s_2_1815, 1813, 33, 0},
+{ 4, s_2_1816, 1813, 34, 0},
+{ 4, s_2_1817, 1813, 40, 0},
+{ 4, s_2_1818, 1813, 39, 0},
+{ 6, s_2_1819, 1813, 84, 0},
+{ 6, s_2_1820, 1813, 85, 0},
+{ 6, s_2_1821, 1813, 122, 0},
+{ 7, s_2_1822, 1813, 86, 0},
+{ 4, s_2_1823, 1813, 95, 0},
+{ 4, s_2_1824, 1813, 24, 0},
+{ 5, s_2_1825, 1824, 83, 0},
+{ 4, s_2_1826, 1813, 37, 0},
+{ 4, s_2_1827, 1813, 13, 0},
+{ 6, s_2_1828, 1827, 9, 0},
+{ 6, s_2_1829, 1827, 6, 0},
+{ 6, s_2_1830, 1827, 7, 0},
+{ 6, s_2_1831, 1827, 8, 0},
+{ 6, s_2_1832, 1827, 5, 0},
+{ 4, s_2_1833, 1813, 41, 0},
+{ 4, s_2_1834, 1813, 42, 0},
+{ 6, s_2_1835, 1834, 21, 0},
+{ 4, s_2_1836, 1813, 23, 0},
+{ 5, s_2_1837, 1836, 123, 0},
+{ 4, s_2_1838, 1813, 44, 0},
+{ 5, s_2_1839, 1838, 120, 0},
+{ 5, s_2_1840, 1838, 22, 0},
+{ 5, s_2_1841, 1813, 77, 0},
+{ 5, s_2_1842, 1813, 78, 0},
+{ 5, s_2_1843, 1813, 79, 0},
+{ 5, s_2_1844, 1813, 80, 0},
+{ 4, s_2_1845, 1813, 45, 0},
+{ 6, s_2_1846, 1813, 91, 0},
+{ 5, s_2_1847, 1813, 38, 0},
+{ 4, s_2_1848, -1, 84, 0},
+{ 4, s_2_1849, -1, 85, 0},
+{ 4, s_2_1850, -1, 122, 0},
+{ 5, s_2_1851, -1, 86, 0},
+{ 3, s_2_1852, -1, 25, 0},
+{ 6, s_2_1853, 1852, 121, 0},
+{ 5, s_2_1854, 1852, 100, 0},
+{ 7, s_2_1855, 1852, 117, 0},
+{ 2, s_2_1856, -1, 95, 0},
+{ 3, s_2_1857, 1856, 1, 0},
+{ 4, s_2_1858, 1856, 2, 0},
+{ 3, s_2_1859, -1, 104, 0},
+{ 5, s_2_1860, 1859, 47, 0},
+{ 4, s_2_1861, 1859, 46, 0},
+{ 3, s_2_1862, -1, 83, 0},
+{ 3, s_2_1863, -1, 116, 0},
+{ 5, s_2_1864, 1863, 48, 0},
+{ 3, s_2_1865, -1, 50, 0},
+{ 4, s_2_1866, -1, 52, 0},
+{ 5, s_2_1867, -1, 124, 0},
+{ 5, s_2_1868, -1, 125, 0},
+{ 5, s_2_1869, -1, 126, 0},
+{ 8, s_2_1870, -1, 84, 0},
+{ 8, s_2_1871, -1, 85, 0},
+{ 8, s_2_1872, -1, 122, 0},
+{ 9, s_2_1873, -1, 86, 0},
+{ 6, s_2_1874, -1, 95, 0},
+{ 7, s_2_1875, 1874, 1, 0},
+{ 8, s_2_1876, 1874, 2, 0},
+{ 7, s_2_1877, -1, 83, 0},
+{ 6, s_2_1878, -1, 13, 0},
+{ 7, s_2_1879, -1, 123, 0},
+{ 7, s_2_1880, -1, 120, 0},
+{ 9, s_2_1881, -1, 92, 0},
+{ 9, s_2_1882, -1, 93, 0},
+{ 8, s_2_1883, -1, 94, 0},
+{ 7, s_2_1884, -1, 77, 0},
+{ 7, s_2_1885, -1, 78, 0},
+{ 7, s_2_1886, -1, 79, 0},
+{ 7, s_2_1887, -1, 80, 0},
+{ 8, s_2_1888, -1, 91, 0},
+{ 6, s_2_1889, -1, 84, 0},
+{ 6, s_2_1890, -1, 85, 0},
+{ 6, s_2_1891, -1, 122, 0},
+{ 7, s_2_1892, -1, 86, 0},
+{ 4, s_2_1893, -1, 95, 0},
+{ 5, s_2_1894, 1893, 1, 0},
+{ 6, s_2_1895, 1893, 2, 0},
+{ 4, s_2_1896, -1, 51, 0},
+{ 5, s_2_1897, 1896, 83, 0},
+{ 4, s_2_1898, -1, 13, 0},
+{ 5, s_2_1899, 1898, 10, 0},
+{ 5, s_2_1900, 1898, 87, 0},
+{ 5, s_2_1901, 1898, 159, 0},
+{ 6, s_2_1902, 1898, 88, 0},
+{ 5, s_2_1903, -1, 123, 0},
+{ 5, s_2_1904, -1, 120, 0},
+{ 7, s_2_1905, -1, 92, 0},
+{ 7, s_2_1906, -1, 93, 0},
+{ 6, s_2_1907, -1, 94, 0},
+{ 5, s_2_1908, -1, 77, 0},
+{ 5, s_2_1909, -1, 78, 0},
+{ 5, s_2_1910, -1, 79, 0},
+{ 5, s_2_1911, -1, 80, 0},
+{ 6, s_2_1912, -1, 14, 0},
+{ 6, s_2_1913, -1, 15, 0},
+{ 6, s_2_1914, -1, 16, 0},
+{ 6, s_2_1915, -1, 91, 0},
+{ 5, s_2_1916, -1, 124, 0},
+{ 5, s_2_1917, -1, 125, 0},
+{ 5, s_2_1918, -1, 126, 0},
+{ 6, s_2_1919, -1, 84, 0},
+{ 6, s_2_1920, -1, 85, 0},
+{ 6, s_2_1921, -1, 122, 0},
+{ 7, s_2_1922, -1, 86, 0},
+{ 4, s_2_1923, -1, 95, 0},
+{ 5, s_2_1924, 1923, 1, 0},
+{ 6, s_2_1925, 1923, 2, 0},
+{ 5, s_2_1926, -1, 83, 0},
+{ 4, s_2_1927, -1, 13, 0},
+{ 6, s_2_1928, 1927, 137, 0},
+{ 7, s_2_1929, 1927, 89, 0},
+{ 5, s_2_1930, -1, 123, 0},
+{ 5, s_2_1931, -1, 120, 0},
+{ 7, s_2_1932, -1, 92, 0},
+{ 7, s_2_1933, -1, 93, 0},
+{ 6, s_2_1934, -1, 94, 0},
+{ 5, s_2_1935, -1, 77, 0},
+{ 5, s_2_1936, -1, 78, 0},
+{ 5, s_2_1937, -1, 79, 0},
+{ 5, s_2_1938, -1, 80, 0},
+{ 6, s_2_1939, -1, 14, 0},
+{ 6, s_2_1940, -1, 15, 0},
+{ 6, s_2_1941, -1, 16, 0},
+{ 6, s_2_1942, -1, 91, 0},
+{ 2, s_2_1943, -1, 13, 0},
+{ 3, s_2_1944, 1943, 10, 0},
+{ 6, s_2_1945, 1944, 110, 0},
+{ 6, s_2_1946, 1944, 111, 0},
+{ 6, s_2_1947, 1944, 112, 0},
+{ 3, s_2_1948, 1943, 11, 0},
+{ 4, s_2_1949, 1948, 137, 0},
+{ 5, s_2_1950, 1948, 10, 0},
+{ 5, s_2_1951, 1948, 89, 0},
+{ 3, s_2_1952, 1943, 12, 0},
+{ 3, s_2_1953, -1, 53, 0},
+{ 3, s_2_1954, -1, 54, 0},
+{ 3, s_2_1955, -1, 55, 0},
+{ 3, s_2_1956, -1, 56, 0},
+{ 4, s_2_1957, -1, 135, 0},
+{ 4, s_2_1958, -1, 131, 0},
+{ 4, s_2_1959, -1, 129, 0},
+{ 4, s_2_1960, -1, 133, 0},
+{ 4, s_2_1961, -1, 132, 0},
+{ 4, s_2_1962, -1, 130, 0},
+{ 4, s_2_1963, -1, 134, 0},
+{ 3, s_2_1964, -1, 57, 0},
+{ 3, s_2_1965, -1, 58, 0},
+{ 3, s_2_1966, -1, 123, 0},
+{ 3, s_2_1967, -1, 120, 0},
+{ 5, s_2_1968, 1967, 68, 0},
+{ 4, s_2_1969, 1967, 69, 0},
+{ 3, s_2_1970, -1, 70, 0},
+{ 5, s_2_1971, -1, 92, 0},
+{ 5, s_2_1972, -1, 93, 0},
+{ 4, s_2_1973, -1, 94, 0},
+{ 4, s_2_1974, -1, 71, 0},
+{ 4, s_2_1975, -1, 72, 0},
+{ 4, s_2_1976, -1, 73, 0},
+{ 4, s_2_1977, -1, 74, 0},
+{ 5, s_2_1978, -1, 75, 0},
+{ 3, s_2_1979, -1, 77, 0},
+{ 3, s_2_1980, -1, 78, 0},
+{ 3, s_2_1981, -1, 79, 0},
+{ 3, s_2_1982, -1, 80, 0},
+{ 4, s_2_1983, 1982, 82, 0},
+{ 4, s_2_1984, 1982, 81, 0},
+{ 4, s_2_1985, -1, 3, 0},
+{ 5, s_2_1986, -1, 4, 0},
+{ 5, s_2_1987, -1, 63, 0},
+{ 5, s_2_1988, -1, 64, 0},
+{ 5, s_2_1989, -1, 61, 0},
+{ 5, s_2_1990, -1, 62, 0},
+{ 5, s_2_1991, -1, 60, 0},
+{ 5, s_2_1992, -1, 59, 0},
+{ 5, s_2_1993, -1, 65, 0},
+{ 4, s_2_1994, -1, 66, 0},
+{ 4, s_2_1995, -1, 67, 0},
+{ 4, s_2_1996, -1, 91, 0},
+{ 4, s_2_1997, -1, 97, 0},
+{ 4, s_2_1998, -1, 96, 0},
+{ 4, s_2_1999, -1, 98, 0},
+{ 4, s_2_2000, -1, 99, 0},
+{ 3, s_2_2001, -1, 95, 0},
+{ 3, s_2_2002, -1, 104, 0},
+{ 5, s_2_2003, 2002, 100, 0},
+{ 5, s_2_2004, 2002, 105, 0},
+{ 4, s_2_2005, 2002, 113, 0},
+{ 5, s_2_2006, 2002, 97, 0},
+{ 5, s_2_2007, 2002, 96, 0},
+{ 5, s_2_2008, 2002, 98, 0},
+{ 5, s_2_2009, 2002, 99, 0},
+{ 6, s_2_2010, 2002, 102, 0},
+{ 3, s_2_2011, -1, 119, 0},
+{ 8, s_2_2012, 2011, 110, 0},
+{ 8, s_2_2013, 2011, 111, 0},
+{ 8, s_2_2014, 2011, 112, 0},
+{ 8, s_2_2015, 2011, 106, 0},
+{ 8, s_2_2016, 2011, 107, 0},
+{ 8, s_2_2017, 2011, 108, 0},
+{ 5, s_2_2018, 2011, 116, 0},
+{ 6, s_2_2019, 2011, 114, 0},
+{ 5, s_2_2020, 2011, 25, 0},
+{ 7, s_2_2021, 2020, 100, 0},
+{ 9, s_2_2022, 2020, 117, 0},
+{ 4, s_2_2023, 2011, 13, 0},
+{ 8, s_2_2024, 2023, 110, 0},
+{ 8, s_2_2025, 2023, 111, 0},
+{ 8, s_2_2026, 2023, 112, 0},
+{ 5, s_2_2027, 2011, 70, 0},
+{ 6, s_2_2028, 2011, 115, 0},
+{ 3, s_2_2029, -1, 116, 0},
+{ 4, s_2_2030, 2029, 103, 0},
+{ 6, s_2_2031, 2029, 118, 0},
+{ 6, s_2_2032, 2029, 101, 0},
+{ 7, s_2_2033, 2029, 117, 0},
+{ 7, s_2_2034, 2029, 90, 0}
+};
+
+static const symbol s_3_0[1] = { 'a' };
+static const symbol s_3_1[3] = { 'o', 'g', 'a' };
+static const symbol s_3_2[3] = { 'a', 'm', 'a' };
+static const symbol s_3_3[3] = { 'i', 'm', 'a' };
+static const symbol s_3_4[3] = { 'e', 'n', 'a' };
+static const symbol s_3_5[1] = { 'e' };
+static const symbol s_3_6[2] = { 'o', 'g' };
+static const symbol s_3_7[4] = { 'a', 'n', 'o', 'g' };
+static const symbol s_3_8[4] = { 'e', 'n', 'o', 'g' };
+static const symbol s_3_9[4] = { 'a', 'n', 'i', 'h' };
+static const symbol s_3_10[4] = { 'e', 'n', 'i', 'h' };
+static const symbol s_3_11[1] = { 'i' };
+static const symbol s_3_12[3] = { 'a', 'n', 'i' };
+static const symbol s_3_13[3] = { 'e', 'n', 'i' };
+static const symbol s_3_14[4] = { 'a', 'n', 'o', 'j' };
+static const symbol s_3_15[4] = { 'e', 'n', 'o', 'j' };
+static const symbol s_3_16[4] = { 'a', 'n', 'i', 'm' };
+static const symbol s_3_17[4] = { 'e', 'n', 'i', 'm' };
+static const symbol s_3_18[2] = { 'o', 'm' };
+static const symbol s_3_19[4] = { 'e', 'n', 'o', 'm' };
+static const symbol s_3_20[1] = { 'o' };
+static const symbol s_3_21[3] = { 'a', 'n', 'o' };
+static const symbol s_3_22[3] = { 'e', 'n', 'o' };
+static const symbol s_3_23[3] = { 'o', 's', 't' };
+static const symbol s_3_24[1] = { 'u' };
+static const symbol s_3_25[3] = { 'e', 'n', 'u' };
+
+static const struct among a_3[26] =
+{
+{ 1, s_3_0, -1, 1, 0},
+{ 3, s_3_1, 0, 1, 0},
+{ 3, s_3_2, 0, 1, 0},
+{ 3, s_3_3, 0, 1, 0},
+{ 3, s_3_4, 0, 1, 0},
+{ 1, s_3_5, -1, 1, 0},
+{ 2, s_3_6, -1, 1, 0},
+{ 4, s_3_7, 6, 1, 0},
+{ 4, s_3_8, 6, 1, 0},
+{ 4, s_3_9, -1, 1, 0},
+{ 4, s_3_10, -1, 1, 0},
+{ 1, s_3_11, -1, 1, 0},
+{ 3, s_3_12, 11, 1, 0},
+{ 3, s_3_13, 11, 1, 0},
+{ 4, s_3_14, -1, 1, 0},
+{ 4, s_3_15, -1, 1, 0},
+{ 4, s_3_16, -1, 1, 0},
+{ 4, s_3_17, -1, 1, 0},
+{ 2, s_3_18, -1, 1, 0},
+{ 4, s_3_19, 18, 1, 0},
+{ 1, s_3_20, -1, 1, 0},
+{ 3, s_3_21, 20, 1, 0},
+{ 3, s_3_22, 20, 1, 0},
+{ 3, s_3_23, -1, 1, 0},
+{ 1, s_3_24, -1, 1, 0},
+{ 3, s_3_25, 24, 1, 0}
+};
+
+static const unsigned char g_v[] = { 17, 65, 16 };
+
+static const unsigned char g_sa[] = { 65, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 128 };
+
+static const unsigned char g_ca[] = { 119, 95, 23, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 136, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 0, 0, 0, 16 };
+
+static const unsigned char g_rg[] = { 1 };
+
+static const symbol s_0[] = { 'a' };
+static const symbol s_1[] = { 'b' };
+static const symbol s_2[] = { 'v' };
+static const symbol s_3[] = { 'g' };
+static const symbol s_4[] = { 'd' };
+static const symbol s_5[] = { 0xC4, 0x91 };
+static const symbol s_6[] = { 'e' };
+static const symbol s_7[] = { 0xC5, 0xBE };
+static const symbol s_8[] = { 'z' };
+static const symbol s_9[] = { 'i' };
+static const symbol s_10[] = { 'j' };
+static const symbol s_11[] = { 'k' };
+static const symbol s_12[] = { 'l' };
+static const symbol s_13[] = { 'l', 'j' };
+static const symbol s_14[] = { 'm' };
+static const symbol s_15[] = { 'n' };
+static const symbol s_16[] = { 'n', 'j' };
+static const symbol s_17[] = { 'o' };
+static const symbol s_18[] = { 'p' };
+static const symbol s_19[] = { 'r' };
+static const symbol s_20[] = { 's' };
+static const symbol s_21[] = { 't' };
+static const symbol s_22[] = { 0xC4, 0x87 };
+static const symbol s_23[] = { 'u' };
+static const symbol s_24[] = { 'f' };
+static const symbol s_25[] = { 'h' };
+static const symbol s_26[] = { 'c' };
+static const symbol s_27[] = { 0xC4, 0x8D };
+static const symbol s_28[] = { 'd', 0xC5, 0xBE };
+static const symbol s_29[] = { 0xC5, 0xA1 };
+static const symbol s_30[] = { 'i', 'j', 'e' };
+static const symbol s_31[] = { 'e' };
+static const symbol s_32[] = { 'j', 'e' };
+static const symbol s_33[] = { 'e' };
+static const symbol s_34[] = { 'd', 'j' };
+static const symbol s_35[] = { 0xC4, 0x91 };
+static const symbol s_36[] = { 'l', 'o', 'g', 'a' };
+static const symbol s_37[] = { 'p', 'e', 'h' };
+static const symbol s_38[] = { 'v', 'o', 'j', 'k', 'a' };
+static const symbol s_39[] = { 'b', 'o', 'j', 'k', 'a' };
+static const symbol s_40[] = { 'j', 'a', 'k' };
+static const symbol s_41[] = { 0xC4, 0x8D, 'a', 'j', 'n', 'i' };
+static const symbol s_42[] = { 'c', 'a', 'j', 'n', 'i' };
+static const symbol s_43[] = { 'e', 'r', 'n', 'i' };
+static const symbol s_44[] = { 'l', 'a', 'r', 'n', 'i' };
+static const symbol s_45[] = { 'e', 's', 'n', 'i' };
+static const symbol s_46[] = { 'a', 'n', 'j', 'c', 'a' };
+static const symbol s_47[] = { 'a', 'j', 'c', 'a' };
+static const symbol s_48[] = { 'l', 'j', 'c', 'a' };
+static const symbol s_49[] = { 'e', 'j', 'c', 'a' };
+static const symbol s_50[] = { 'o', 'j', 'c', 'a' };
+static const symbol s_51[] = { 'a', 'j', 'k', 'a' };
+static const symbol s_52[] = { 'o', 'j', 'k', 'a' };
+static const symbol s_53[] = { 0xC5, 0xA1, 'c', 'a' };
+static const symbol s_54[] = { 'i', 'n', 'g' };
+static const symbol s_55[] = { 't', 'v', 'e', 'n', 'i', 'k' };
+static const symbol s_56[] = { 't', 'e', 't', 'i', 'k', 'a' };
+static const symbol s_57[] = { 'n', 's', 't', 'v', 'a' };
+static const symbol s_58[] = { 'n', 'i', 'k' };
+static const symbol s_59[] = { 't', 'i', 'k' };
+static const symbol s_60[] = { 'z', 'i', 'k' };
+static const symbol s_61[] = { 's', 'n', 'i', 'k' };
+static const symbol s_62[] = { 'k', 'u', 's', 'i' };
+static const symbol s_63[] = { 'k', 'u', 's', 'n', 'i' };
+static const symbol s_64[] = { 'k', 'u', 's', 't', 'v', 'a' };
+static const symbol s_65[] = { 'd', 'u', 0xC5, 0xA1, 'n', 'i' };
+static const symbol s_66[] = { 'd', 'u', 's', 'n', 'i' };
+static const symbol s_67[] = { 'a', 'n', 't', 'n', 'i' };
+static const symbol s_68[] = { 'b', 'i', 'l', 'n', 'i' };
+static const symbol s_69[] = { 't', 'i', 'l', 'n', 'i' };
+static const symbol s_70[] = { 'a', 'v', 'i', 'l', 'n', 'i' };
+static const symbol s_71[] = { 's', 'i', 'l', 'n', 'i' };
+static const symbol s_72[] = { 'g', 'i', 'l', 'n', 'i' };
+static const symbol s_73[] = { 'r', 'i', 'l', 'n', 'i' };
+static const symbol s_74[] = { 'n', 'i', 'l', 'n', 'i' };
+static const symbol s_75[] = { 'a', 'l', 'n', 'i' };
+static const symbol s_76[] = { 'o', 'z', 'n', 'i' };
+static const symbol s_77[] = { 'r', 'a', 'v', 'i' };
+static const symbol s_78[] = { 's', 't', 'a', 'v', 'n', 'i' };
+static const symbol s_79[] = { 'p', 'r', 'a', 'v', 'n', 'i' };
+static const symbol s_80[] = { 't', 'i', 'v', 'n', 'i' };
+static const symbol s_81[] = { 's', 'i', 'v', 'n', 'i' };
+static const symbol s_82[] = { 'a', 't', 'n', 'i' };
+static const symbol s_83[] = { 'e', 'n', 't', 'a' };
+static const symbol s_84[] = { 't', 'e', 't', 'n', 'i' };
+static const symbol s_85[] = { 'p', 'l', 'e', 't', 'n', 'i' };
+static const symbol s_86[] = { 0xC5, 0xA1, 'a', 'v', 'i' };
+static const symbol s_87[] = { 's', 'a', 'v', 'i' };
+static const symbol s_88[] = { 'a', 'n', 't', 'a' };
+static const symbol s_89[] = { 'a', 0xC4, 0x8D, 'k', 'a' };
+static const symbol s_90[] = { 'a', 'c', 'k', 'a' };
+static const symbol s_91[] = { 'u', 0xC5, 0xA1, 'k', 'a' };
+static const symbol s_92[] = { 'u', 's', 'k', 'a' };
+static const symbol s_93[] = { 'a', 't', 'k', 'a' };
+static const symbol s_94[] = { 'e', 't', 'k', 'a' };
+static const symbol s_95[] = { 'i', 't', 'k', 'a' };
+static const symbol s_96[] = { 'o', 't', 'k', 'a' };
+static const symbol s_97[] = { 'u', 't', 'k', 'a' };
+static const symbol s_98[] = { 'e', 's', 'k', 'n', 'a' };
+static const symbol s_99[] = { 't', 'i', 0xC4, 0x8D, 'n', 'i' };
+static const symbol s_100[] = { 't', 'i', 'c', 'n', 'i' };
+static const symbol s_101[] = { 'o', 'j', 's', 'k', 'a' };
+static const symbol s_102[] = { 'e', 's', 'm', 'a' };
+static const symbol s_103[] = { 'm', 'e', 't', 'r', 'a' };
+static const symbol s_104[] = { 'c', 'e', 'n', 't', 'r', 'a' };
+static const symbol s_105[] = { 'i', 's', 't', 'r', 'a' };
+static const symbol s_106[] = { 'o', 's', 't', 'i' };
+static const symbol s_107[] = { 'o', 's', 't', 'i' };
+static const symbol s_108[] = { 'd', 'b', 'a' };
+static const symbol s_109[] = { 0xC4, 0x8D, 'k', 'a' };
+static const symbol s_110[] = { 'm', 'c', 'a' };
+static const symbol s_111[] = { 'n', 'c', 'a' };
+static const symbol s_112[] = { 'v', 'o', 'l', 'j', 'n', 'i' };
+static const symbol s_113[] = { 'a', 'n', 'k', 'i' };
+static const symbol s_114[] = { 'v', 'c', 'a' };
+static const symbol s_115[] = { 's', 'c', 'a' };
+static const symbol s_116[] = { 'r', 'c', 'a' };
+static const symbol s_117[] = { 'a', 'l', 'c', 'a' };
+static const symbol s_118[] = { 'e', 'l', 'c', 'a' };
+static const symbol s_119[] = { 'o', 'l', 'c', 'a' };
+static const symbol s_120[] = { 'n', 'j', 'c', 'a' };
+static const symbol s_121[] = { 'e', 'k', 't', 'a' };
+static const symbol s_122[] = { 'i', 'z', 'm', 'a' };
+static const symbol s_123[] = { 'j', 'e', 'b', 'i' };
+static const symbol s_124[] = { 'b', 'a', 'c', 'i' };
+static const symbol s_125[] = { 'a', 0xC5, 0xA1, 'n', 'i' };
+static const symbol s_126[] = { 'a', 's', 'n', 'i' };
+static const symbol s_127[] = { 's', 'k' };
+static const symbol s_128[] = { 0xC5, 0xA1, 'k' };
+static const symbol s_129[] = { 's', 't', 'v' };
+static const symbol s_130[] = { 0xC5, 0xA1, 't', 'v' };
+static const symbol s_131[] = { 't', 'a', 'n', 'i', 'j' };
+static const symbol s_132[] = { 'm', 'a', 'n', 'i', 'j' };
+static const symbol s_133[] = { 'p', 'a', 'n', 'i', 'j' };
+static const symbol s_134[] = { 'r', 'a', 'n', 'i', 'j' };
+static const symbol s_135[] = { 'g', 'a', 'n', 'i', 'j' };
+static const symbol s_136[] = { 'a', 'n' };
+static const symbol s_137[] = { 'i', 'n' };
+static const symbol s_138[] = { 'o', 'n' };
+static const symbol s_139[] = { 'n' };
+static const symbol s_140[] = { 'a', 0xC4, 0x87 };
+static const symbol s_141[] = { 'e', 0xC4, 0x87 };
+static const symbol s_142[] = { 'u', 0xC4, 0x87 };
+static const symbol s_143[] = { 'u', 'g', 'o', 'v' };
+static const symbol s_144[] = { 'u', 'g' };
+static const symbol s_145[] = { 'l', 'o', 'g' };
+static const symbol s_146[] = { 'g' };
+static const symbol s_147[] = { 'r', 'a', 'r', 'i' };
+static const symbol s_148[] = { 'o', 't', 'i' };
+static const symbol s_149[] = { 's', 'i' };
+static const symbol s_150[] = { 'l', 'i' };
+static const symbol s_151[] = { 'u', 'j' };
+static const symbol s_152[] = { 'c', 'a', 'j' };
+static const symbol s_153[] = { 0xC4, 0x8D, 'a', 'j' };
+static const symbol s_154[] = { 0xC4, 0x87, 'a', 'j' };
+static const symbol s_155[] = { 0xC4, 0x91, 'a', 'j' };
+static const symbol s_156[] = { 'l', 'a', 'j' };
+static const symbol s_157[] = { 'r', 'a', 'j' };
+static const symbol s_158[] = { 'b', 'i', 'j' };
+static const symbol s_159[] = { 'c', 'i', 'j' };
+static const symbol s_160[] = { 'd', 'i', 'j' };
+static const symbol s_161[] = { 'l', 'i', 'j' };
+static const symbol s_162[] = { 'n', 'i', 'j' };
+static const symbol s_163[] = { 'm', 'i', 'j' };
+static const symbol s_164[] = { 0xC5, 0xBE, 'i', 'j' };
+static const symbol s_165[] = { 'g', 'i', 'j' };
+static const symbol s_166[] = { 'f', 'i', 'j' };
+static const symbol s_167[] = { 'p', 'i', 'j' };
+static const symbol s_168[] = { 'r', 'i', 'j' };
+static const symbol s_169[] = { 's', 'i', 'j' };
+static const symbol s_170[] = { 't', 'i', 'j' };
+static const symbol s_171[] = { 'z', 'i', 'j' };
+static const symbol s_172[] = { 'n', 'a', 'l' };
+static const symbol s_173[] = { 'i', 'j', 'a', 'l' };
+static const symbol s_174[] = { 'o', 'z', 'i', 'l' };
+static const symbol s_175[] = { 'o', 'l', 'o', 'v' };
+static const symbol s_176[] = { 'o', 'l' };
+static const symbol s_177[] = { 'l', 'e', 'm' };
+static const symbol s_178[] = { 'r', 'a', 'm' };
+static const symbol s_179[] = { 'a', 'r' };
+static const symbol s_180[] = { 'd', 'r' };
+static const symbol s_181[] = { 'e', 'r' };
+static const symbol s_182[] = { 'o', 'r' };
+static const symbol s_183[] = { 'e', 's' };
+static const symbol s_184[] = { 'i', 's' };
+static const symbol s_185[] = { 't', 'a', 0xC5, 0xA1 };
+static const symbol s_186[] = { 'n', 'a', 0xC5, 0xA1 };
+static const symbol s_187[] = { 'j', 'a', 0xC5, 0xA1 };
+static const symbol s_188[] = { 'k', 'a', 0xC5, 0xA1 };
+static const symbol s_189[] = { 'b', 'a', 0xC5, 0xA1 };
+static const symbol s_190[] = { 'g', 'a', 0xC5, 0xA1 };
+static const symbol s_191[] = { 'v', 'a', 0xC5, 0xA1 };
+static const symbol s_192[] = { 'e', 0xC5, 0xA1 };
+static const symbol s_193[] = { 'i', 0xC5, 0xA1 };
+static const symbol s_194[] = { 'i', 'k', 'a', 't' };
+static const symbol s_195[] = { 'l', 'a', 't' };
+static const symbol s_196[] = { 'e', 't' };
+static const symbol s_197[] = { 'e', 's', 't' };
+static const symbol s_198[] = { 'i', 's', 't' };
+static const symbol s_199[] = { 'k', 's', 't' };
+static const symbol s_200[] = { 'o', 's', 't' };
+static const symbol s_201[] = { 'i', 0xC5, 0xA1, 't' };
+static const symbol s_202[] = { 'o', 'v', 'a' };
+static const symbol s_203[] = { 'a', 'v' };
+static const symbol s_204[] = { 'e', 'v' };
+static const symbol s_205[] = { 'i', 'v' };
+static const symbol s_206[] = { 'o', 'v' };
+static const symbol s_207[] = { 'm', 'o', 'v' };
+static const symbol s_208[] = { 'l', 'o', 'v' };
+static const symbol s_209[] = { 'e', 'l' };
+static const symbol s_210[] = { 'a', 'n', 'j' };
+static const symbol s_211[] = { 'e', 'n', 'j' };
+static const symbol s_212[] = { 0xC5, 0xA1, 'n', 'j' };
+static const symbol s_213[] = { 'e', 'n' };
+static const symbol s_214[] = { 0xC5, 0xA1, 'n' };
+static const symbol s_215[] = { 0xC4, 0x8D, 'i', 'n' };
+static const symbol s_216[] = { 'r', 'o', 0xC5, 0xA1, 'i' };
+static const symbol s_217[] = { 'o', 0xC5, 0xA1 };
+static const symbol s_218[] = { 'e', 'v', 'i', 't' };
+static const symbol s_219[] = { 'o', 'v', 'i', 't' };
+static const symbol s_220[] = { 'a', 's', 't' };
+static const symbol s_221[] = { 'k' };
+static const symbol s_222[] = { 'e', 'v', 'a' };
+static const symbol s_223[] = { 'a', 'v', 'a' };
+static const symbol s_224[] = { 'i', 'v', 'a' };
+static const symbol s_225[] = { 'u', 'v', 'a' };
+static const symbol s_226[] = { 'i', 'r' };
+static const symbol s_227[] = { 'a', 0xC4, 0x8D };
+static const symbol s_228[] = { 'a', 0xC4, 0x8D, 'a' };
+static const symbol s_229[] = { 'n', 'i' };
+static const symbol s_230[] = { 'a' };
+static const symbol s_231[] = { 'u', 'r' };
+static const symbol s_232[] = { 'a', 's', 't', 'a', 'j' };
+static const symbol s_233[] = { 'i', 's', 't', 'a', 'j' };
+static const symbol s_234[] = { 'o', 's', 't', 'a', 'j' };
+static const symbol s_235[] = { 'a', 'j' };
+static const symbol s_236[] = { 'a', 's', 't', 'a' };
+static const symbol s_237[] = { 'i', 's', 't', 'a' };
+static const symbol s_238[] = { 'o', 's', 't', 'a' };
+static const symbol s_239[] = { 't', 'a' };
+static const symbol s_240[] = { 'i', 'n', 'j' };
+static const symbol s_241[] = { 'a', 's' };
+static const symbol s_242[] = { 'i' };
+static const symbol s_243[] = { 'l', 'u', 0xC4, 0x8D };
+static const symbol s_244[] = { 'j', 'e', 't', 'i' };
+static const symbol s_245[] = { 'e' };
+static const symbol s_246[] = { 'a', 't' };
+static const symbol s_247[] = { 'l', 'u', 'c' };
+static const symbol s_248[] = { 's', 'n', 'j' };
+static const symbol s_249[] = { 'o', 's' };
+static const symbol s_250[] = { 'a', 'c' };
+static const symbol s_251[] = { 'e', 'c' };
+static const symbol s_252[] = { 'u', 'c' };
+static const symbol s_253[] = { 'r', 'o', 's', 'i' };
+static const symbol s_254[] = { 'a', 'c', 'a' };
+static const symbol s_255[] = { 'j', 'a', 's' };
+static const symbol s_256[] = { 't', 'a', 's' };
+static const symbol s_257[] = { 'g', 'a', 's' };
+static const symbol s_258[] = { 'n', 'a', 's' };
+static const symbol s_259[] = { 'k', 'a', 's' };
+static const symbol s_260[] = { 'v', 'a', 's' };
+static const symbol s_261[] = { 'b', 'a', 's' };
+static const symbol s_262[] = { 'a', 's' };
+static const symbol s_263[] = { 'c', 'i', 'n' };
+static const symbol s_264[] = { 'a', 's', 't', 'a', 'j' };
+static const symbol s_265[] = { 'i', 's', 't', 'a', 'j' };
+static const symbol s_266[] = { 'o', 's', 't', 'a', 'j' };
+static const symbol s_267[] = { 'a', 's', 't', 'a' };
+static const symbol s_268[] = { 'i', 's', 't', 'a' };
+static const symbol s_269[] = { 'o', 's', 't', 'a' };
+static const symbol s_270[] = { 'a', 'v', 'a' };
+static const symbol s_271[] = { 'e', 'v', 'a' };
+static const symbol s_272[] = { 'i', 'v', 'a' };
+static const symbol s_273[] = { 'u', 'v', 'a' };
+static const symbol s_274[] = { 'o', 'v', 'a' };
+static const symbol s_275[] = { 'j', 'e', 't', 'i' };
+static const symbol s_276[] = { 'i', 'n', 'j' };
+static const symbol s_277[] = { 'i', 's', 't' };
+static const symbol s_278[] = { 'e', 's' };
+static const symbol s_279[] = { 'e', 't' };
+static const symbol s_280[] = { 'i', 's' };
+static const symbol s_281[] = { 'i', 'r' };
+static const symbol s_282[] = { 'u', 'r' };
+static const symbol s_283[] = { 'u', 'j' };
+static const symbol s_284[] = { 'n', 'i' };
+static const symbol s_285[] = { 's', 'n' };
+static const symbol s_286[] = { 't', 'a' };
+static const symbol s_287[] = { 'a' };
+static const symbol s_288[] = { 'i' };
+static const symbol s_289[] = { 'e' };
+static const symbol s_290[] = { 'n' };
+
+static int r_cyr_to_lat(struct SN_env * z) {
+ int among_var;
+ { int c1 = z->c;
+ while(1) {
+ int c2 = z->c;
+ while(1) {
+ int c3 = z->c;
+ z->bra = z->c;
+ among_var = find_among(z, a_0, 30);
+ if (!(among_var)) goto lab2;
+ z->ket = z->c;
+ switch (among_var) {
+ case 1:
+ { int ret = slice_from_s(z, 1, s_0);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 2:
+ { int ret = slice_from_s(z, 1, s_1);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 3:
+ { int ret = slice_from_s(z, 1, s_2);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 4:
+ { int ret = slice_from_s(z, 1, s_3);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 5:
+ { int ret = slice_from_s(z, 1, s_4);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 6:
+ { int ret = slice_from_s(z, 2, s_5);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 7:
+ { int ret = slice_from_s(z, 1, s_6);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 8:
+ { int ret = slice_from_s(z, 2, s_7);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 9:
+ { int ret = slice_from_s(z, 1, s_8);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 10:
+ { int ret = slice_from_s(z, 1, s_9);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 11:
+ { int ret = slice_from_s(z, 1, s_10);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 12:
+ { int ret = slice_from_s(z, 1, s_11);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 13:
+ { int ret = slice_from_s(z, 1, s_12);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 14:
+ { int ret = slice_from_s(z, 2, s_13);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 15:
+ { int ret = slice_from_s(z, 1, s_14);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 16:
+ { int ret = slice_from_s(z, 1, s_15);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 17:
+ { int ret = slice_from_s(z, 2, s_16);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 18:
+ { int ret = slice_from_s(z, 1, s_17);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 19:
+ { int ret = slice_from_s(z, 1, s_18);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 20:
+ { int ret = slice_from_s(z, 1, s_19);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 21:
+ { int ret = slice_from_s(z, 1, s_20);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 22:
+ { int ret = slice_from_s(z, 1, s_21);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 23:
+ { int ret = slice_from_s(z, 2, s_22);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 24:
+ { int ret = slice_from_s(z, 1, s_23);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 25:
+ { int ret = slice_from_s(z, 1, s_24);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 26:
+ { int ret = slice_from_s(z, 1, s_25);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 27:
+ { int ret = slice_from_s(z, 1, s_26);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 28:
+ { int ret = slice_from_s(z, 2, s_27);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 29:
+ { int ret = slice_from_s(z, 3, s_28);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 30:
+ { int ret = slice_from_s(z, 2, s_29);
+ if (ret < 0) return ret;
+ }
+ break;
+ }
+ z->c = c3;
+ break;
+ lab2:
+ z->c = c3;
+ { int ret = skip_utf8(z->p, z->c, z->l, 1);
+ if (ret < 0) goto lab1;
+ z->c = ret;
+ }
+ }
+ continue;
+ lab1:
+ z->c = c2;
+ break;
+ }
+ z->c = c1;
+ }
+ return 1;
+}
+
+static int r_prelude(struct SN_env * z) {
+ { int c1 = z->c;
+ while(1) {
+ int c2 = z->c;
+ while(1) {
+ int c3 = z->c;
+ if (in_grouping_U(z, g_ca, 98, 382, 0)) goto lab2;
+ z->bra = z->c;
+ if (!(eq_s(z, 3, s_30))) goto lab2;
+ z->ket = z->c;
+ if (in_grouping_U(z, g_ca, 98, 382, 0)) goto lab2;
+ { int ret = slice_from_s(z, 1, s_31);
+ if (ret < 0) return ret;
+ }
+ z->c = c3;
+ break;
+ lab2:
+ z->c = c3;
+ { int ret = skip_utf8(z->p, z->c, z->l, 1);
+ if (ret < 0) goto lab1;
+ z->c = ret;
+ }
+ }
+ continue;
+ lab1:
+ z->c = c2;
+ break;
+ }
+ z->c = c1;
+ }
+ { int c4 = z->c;
+ while(1) {
+ int c5 = z->c;
+ while(1) {
+ int c6 = z->c;
+ if (in_grouping_U(z, g_ca, 98, 382, 0)) goto lab5;
+ z->bra = z->c;
+ if (!(eq_s(z, 2, s_32))) goto lab5;
+ z->ket = z->c;
+ if (in_grouping_U(z, g_ca, 98, 382, 0)) goto lab5;
+ { int ret = slice_from_s(z, 1, s_33);
+ if (ret < 0) return ret;
+ }
+ z->c = c6;
+ break;
+ lab5:
+ z->c = c6;
+ { int ret = skip_utf8(z->p, z->c, z->l, 1);
+ if (ret < 0) goto lab4;
+ z->c = ret;
+ }
+ }
+ continue;
+ lab4:
+ z->c = c5;
+ break;
+ }
+ z->c = c4;
+ }
+ { int c7 = z->c;
+ while(1) {
+ int c8 = z->c;
+ while(1) {
+ int c9 = z->c;
+ z->bra = z->c;
+ if (!(eq_s(z, 2, s_34))) goto lab8;
+ z->ket = z->c;
+ { int ret = slice_from_s(z, 2, s_35);
+ if (ret < 0) return ret;
+ }
+ z->c = c9;
+ break;
+ lab8:
+ z->c = c9;
+ { int ret = skip_utf8(z->p, z->c, z->l, 1);
+ if (ret < 0) goto lab7;
+ z->c = ret;
+ }
+ }
+ continue;
+ lab7:
+ z->c = c8;
+ break;
+ }
+ z->c = c7;
+ }
+ return 1;
+}
+
+static int r_mark_regions(struct SN_env * z) {
+ z->I[1] = 1;
+ { int c1 = z->c;
+ {
+ int ret = out_grouping_U(z, g_sa, 263, 382, 1);
+ if (ret < 0) goto lab0;
+ z->c += ret;
+ }
+ z->I[1] = 0;
+ lab0:
+ z->c = c1;
+ }
+ z->I[0] = z->l;
+ { int c2 = z->c;
+ {
+ int ret = out_grouping_U(z, g_v, 97, 117, 1);
+ if (ret < 0) goto lab1;
+ z->c += ret;
+ }
+ z->I[0] = z->c;
+ if (!(z->I[0] < 2)) goto lab1;
+ {
+ int ret = in_grouping_U(z, g_v, 97, 117, 1);
+ if (ret < 0) goto lab1;
+ z->c += ret;
+ }
+ z->I[0] = z->c;
+ lab1:
+ z->c = c2;
+ }
+ { int c3 = z->c;
+ while(1) {
+ if (z->c == z->l || z->p[z->c] != 'r') goto lab3;
+ z->c++;
+ break;
+ lab3:
+ { int ret = skip_utf8(z->p, z->c, z->l, 1);
+ if (ret < 0) goto lab2;
+ z->c = ret;
+ }
+ }
+ { int c4 = z->c;
+ if (!(z->c >= 2)) goto lab5;
+ goto lab4;
+ lab5:
+ z->c = c4;
+ {
+ int ret = in_grouping_U(z, g_rg, 114, 114, 1);
+ if (ret < 0) goto lab2;
+ z->c += ret;
+ }
+ }
+ lab4:
+ if (!((z->I[0] - z->c) > 1)) goto lab2;
+ z->I[0] = z->c;
+ lab2:
+ z->c = c3;
+ }
+ return 1;
+}
+
+static int r_R1(struct SN_env * z) {
+ if (!(z->I[0] <= z->c)) return 0;
+ return 1;
+}
+
+static int r_Step_1(struct SN_env * z) {
+ int among_var;
+ z->ket = z->c;
+ if (z->c - 2 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((3435050 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
+ among_var = find_among_b(z, a_1, 130);
+ if (!(among_var)) return 0;
+ z->bra = z->c;
+ switch (among_var) {
+ case 1:
+ { int ret = slice_from_s(z, 4, s_36);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 2:
+ { int ret = slice_from_s(z, 3, s_37);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 3:
+ { int ret = slice_from_s(z, 5, s_38);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 4:
+ { int ret = slice_from_s(z, 5, s_39);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 5:
+ { int ret = slice_from_s(z, 3, s_40);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 6:
+ { int ret = slice_from_s(z, 6, s_41);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 7:
+ if (!(z->I[1])) return 0;
+ { int ret = slice_from_s(z, 5, s_42);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 8:
+ { int ret = slice_from_s(z, 4, s_43);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 9:
+ { int ret = slice_from_s(z, 5, s_44);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 10:
+ { int ret = slice_from_s(z, 4, s_45);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 11:
+ { int ret = slice_from_s(z, 5, s_46);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 12:
+ { int ret = slice_from_s(z, 4, s_47);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 13:
+ { int ret = slice_from_s(z, 4, s_48);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 14:
+ { int ret = slice_from_s(z, 4, s_49);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 15:
+ { int ret = slice_from_s(z, 4, s_50);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 16:
+ { int ret = slice_from_s(z, 4, s_51);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 17:
+ { int ret = slice_from_s(z, 4, s_52);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 18:
+ { int ret = slice_from_s(z, 4, s_53);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 19:
+ { int ret = slice_from_s(z, 3, s_54);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 20:
+ { int ret = slice_from_s(z, 6, s_55);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 21:
+ { int ret = slice_from_s(z, 6, s_56);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 22:
+ { int ret = slice_from_s(z, 5, s_57);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 23:
+ { int ret = slice_from_s(z, 3, s_58);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 24:
+ { int ret = slice_from_s(z, 3, s_59);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 25:
+ { int ret = slice_from_s(z, 3, s_60);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 26:
+ { int ret = slice_from_s(z, 4, s_61);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 27:
+ { int ret = slice_from_s(z, 4, s_62);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 28:
+ { int ret = slice_from_s(z, 5, s_63);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 29:
+ { int ret = slice_from_s(z, 6, s_64);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 30:
+ { int ret = slice_from_s(z, 6, s_65);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 31:
+ if (!(z->I[1])) return 0;
+ { int ret = slice_from_s(z, 5, s_66);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 32:
+ { int ret = slice_from_s(z, 5, s_67);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 33:
+ { int ret = slice_from_s(z, 5, s_68);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 34:
+ { int ret = slice_from_s(z, 5, s_69);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 35:
+ { int ret = slice_from_s(z, 6, s_70);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 36:
+ { int ret = slice_from_s(z, 5, s_71);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 37:
+ { int ret = slice_from_s(z, 5, s_72);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 38:
+ { int ret = slice_from_s(z, 5, s_73);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 39:
+ { int ret = slice_from_s(z, 5, s_74);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 40:
+ { int ret = slice_from_s(z, 4, s_75);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 41:
+ { int ret = slice_from_s(z, 4, s_76);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 42:
+ { int ret = slice_from_s(z, 4, s_77);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 43:
+ { int ret = slice_from_s(z, 6, s_78);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 44:
+ { int ret = slice_from_s(z, 6, s_79);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 45:
+ { int ret = slice_from_s(z, 5, s_80);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 46:
+ { int ret = slice_from_s(z, 5, s_81);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 47:
+ { int ret = slice_from_s(z, 4, s_82);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 48:
+ { int ret = slice_from_s(z, 4, s_83);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 49:
+ { int ret = slice_from_s(z, 5, s_84);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 50:
+ { int ret = slice_from_s(z, 6, s_85);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 51:
+ { int ret = slice_from_s(z, 5, s_86);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 52:
+ if (!(z->I[1])) return 0;
+ { int ret = slice_from_s(z, 4, s_87);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 53:
+ { int ret = slice_from_s(z, 4, s_88);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 54:
+ { int ret = slice_from_s(z, 5, s_89);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 55:
+ if (!(z->I[1])) return 0;
+ { int ret = slice_from_s(z, 4, s_90);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 56:
+ { int ret = slice_from_s(z, 5, s_91);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 57:
+ if (!(z->I[1])) return 0;
+ { int ret = slice_from_s(z, 4, s_92);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 58:
+ { int ret = slice_from_s(z, 4, s_93);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 59:
+ { int ret = slice_from_s(z, 4, s_94);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 60:
+ { int ret = slice_from_s(z, 4, s_95);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 61:
+ { int ret = slice_from_s(z, 4, s_96);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 62:
+ { int ret = slice_from_s(z, 4, s_97);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 63:
+ { int ret = slice_from_s(z, 5, s_98);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 64:
+ { int ret = slice_from_s(z, 6, s_99);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 65:
+ if (!(z->I[1])) return 0;
+ { int ret = slice_from_s(z, 5, s_100);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 66:
+ { int ret = slice_from_s(z, 5, s_101);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 67:
+ { int ret = slice_from_s(z, 4, s_102);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 68:
+ { int ret = slice_from_s(z, 5, s_103);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 69:
+ { int ret = slice_from_s(z, 6, s_104);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 70:
+ { int ret = slice_from_s(z, 5, s_105);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 71:
+ { int ret = slice_from_s(z, 4, s_106);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 72:
+ if (!(z->I[1])) return 0;
+ { int ret = slice_from_s(z, 4, s_107);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 73:
+ { int ret = slice_from_s(z, 3, s_108);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 74:
+ { int ret = slice_from_s(z, 4, s_109);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 75:
+ { int ret = slice_from_s(z, 3, s_110);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 76:
+ { int ret = slice_from_s(z, 3, s_111);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 77:
+ { int ret = slice_from_s(z, 6, s_112);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 78:
+ { int ret = slice_from_s(z, 4, s_113);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 79:
+ { int ret = slice_from_s(z, 3, s_114);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 80:
+ { int ret = slice_from_s(z, 3, s_115);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 81:
+ { int ret = slice_from_s(z, 3, s_116);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 82:
+ { int ret = slice_from_s(z, 4, s_117);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 83:
+ { int ret = slice_from_s(z, 4, s_118);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 84:
+ { int ret = slice_from_s(z, 4, s_119);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 85:
+ { int ret = slice_from_s(z, 4, s_120);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 86:
+ { int ret = slice_from_s(z, 4, s_121);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 87:
+ { int ret = slice_from_s(z, 4, s_122);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 88:
+ { int ret = slice_from_s(z, 4, s_123);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 89:
+ { int ret = slice_from_s(z, 4, s_124);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 90:
+ { int ret = slice_from_s(z, 5, s_125);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 91:
+ if (!(z->I[1])) return 0;
+ { int ret = slice_from_s(z, 4, s_126);
+ if (ret < 0) return ret;
+ }
+ break;
+ }
+ return 1;
+}
+
+static int r_Step_2(struct SN_env * z) {
+ int among_var;
+ z->ket = z->c;
+ among_var = find_among_b(z, a_2, 2035);
+ if (!(among_var)) return 0;
+ z->bra = z->c;
+ { int ret = r_R1(z);
+ if (ret <= 0) return ret;
+ }
+ switch (among_var) {
+ case 1:
+ { int ret = slice_from_s(z, 2, s_127);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 2:
+ { int ret = slice_from_s(z, 3, s_128);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 3:
+ { int ret = slice_from_s(z, 3, s_129);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 4:
+ { int ret = slice_from_s(z, 4, s_130);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 5:
+ { int ret = slice_from_s(z, 5, s_131);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 6:
+ { int ret = slice_from_s(z, 5, s_132);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 7:
+ { int ret = slice_from_s(z, 5, s_133);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 8:
+ { int ret = slice_from_s(z, 5, s_134);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 9:
+ { int ret = slice_from_s(z, 5, s_135);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 10:
+ { int ret = slice_from_s(z, 2, s_136);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 11:
+ { int ret = slice_from_s(z, 2, s_137);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 12:
+ { int ret = slice_from_s(z, 2, s_138);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 13:
+ { int ret = slice_from_s(z, 1, s_139);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 14:
+ { int ret = slice_from_s(z, 3, s_140);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 15:
+ { int ret = slice_from_s(z, 3, s_141);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 16:
+ { int ret = slice_from_s(z, 3, s_142);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 17:
+ { int ret = slice_from_s(z, 4, s_143);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 18:
+ { int ret = slice_from_s(z, 2, s_144);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 19:
+ { int ret = slice_from_s(z, 3, s_145);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 20:
+ { int ret = slice_from_s(z, 1, s_146);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 21:
+ { int ret = slice_from_s(z, 4, s_147);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 22:
+ { int ret = slice_from_s(z, 3, s_148);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 23:
+ { int ret = slice_from_s(z, 2, s_149);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 24:
+ { int ret = slice_from_s(z, 2, s_150);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 25:
+ { int ret = slice_from_s(z, 2, s_151);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 26:
+ { int ret = slice_from_s(z, 3, s_152);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 27:
+ { int ret = slice_from_s(z, 4, s_153);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 28:
+ { int ret = slice_from_s(z, 4, s_154);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 29:
+ { int ret = slice_from_s(z, 4, s_155);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 30:
+ { int ret = slice_from_s(z, 3, s_156);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 31:
+ { int ret = slice_from_s(z, 3, s_157);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 32:
+ { int ret = slice_from_s(z, 3, s_158);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 33:
+ { int ret = slice_from_s(z, 3, s_159);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 34:
+ { int ret = slice_from_s(z, 3, s_160);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 35:
+ { int ret = slice_from_s(z, 3, s_161);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 36:
+ { int ret = slice_from_s(z, 3, s_162);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 37:
+ { int ret = slice_from_s(z, 3, s_163);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 38:
+ { int ret = slice_from_s(z, 4, s_164);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 39:
+ { int ret = slice_from_s(z, 3, s_165);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 40:
+ { int ret = slice_from_s(z, 3, s_166);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 41:
+ { int ret = slice_from_s(z, 3, s_167);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 42:
+ { int ret = slice_from_s(z, 3, s_168);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 43:
+ { int ret = slice_from_s(z, 3, s_169);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 44:
+ { int ret = slice_from_s(z, 3, s_170);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 45:
+ { int ret = slice_from_s(z, 3, s_171);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 46:
+ { int ret = slice_from_s(z, 3, s_172);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 47:
+ { int ret = slice_from_s(z, 4, s_173);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 48:
+ { int ret = slice_from_s(z, 4, s_174);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 49:
+ { int ret = slice_from_s(z, 4, s_175);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 50:
+ { int ret = slice_from_s(z, 2, s_176);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 51:
+ { int ret = slice_from_s(z, 3, s_177);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 52:
+ { int ret = slice_from_s(z, 3, s_178);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 53:
+ { int ret = slice_from_s(z, 2, s_179);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 54:
+ { int ret = slice_from_s(z, 2, s_180);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 55:
+ { int ret = slice_from_s(z, 2, s_181);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 56:
+ { int ret = slice_from_s(z, 2, s_182);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 57:
+ { int ret = slice_from_s(z, 2, s_183);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 58:
+ { int ret = slice_from_s(z, 2, s_184);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 59:
+ { int ret = slice_from_s(z, 4, s_185);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 60:
+ { int ret = slice_from_s(z, 4, s_186);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 61:
+ { int ret = slice_from_s(z, 4, s_187);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 62:
+ { int ret = slice_from_s(z, 4, s_188);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 63:
+ { int ret = slice_from_s(z, 4, s_189);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 64:
+ { int ret = slice_from_s(z, 4, s_190);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 65:
+ { int ret = slice_from_s(z, 4, s_191);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 66:
+ { int ret = slice_from_s(z, 3, s_192);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 67:
+ { int ret = slice_from_s(z, 3, s_193);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 68:
+ { int ret = slice_from_s(z, 4, s_194);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 69:
+ { int ret = slice_from_s(z, 3, s_195);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 70:
+ { int ret = slice_from_s(z, 2, s_196);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 71:
+ { int ret = slice_from_s(z, 3, s_197);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 72:
+ { int ret = slice_from_s(z, 3, s_198);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 73:
+ { int ret = slice_from_s(z, 3, s_199);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 74:
+ { int ret = slice_from_s(z, 3, s_200);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 75:
+ { int ret = slice_from_s(z, 4, s_201);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 76:
+ { int ret = slice_from_s(z, 3, s_202);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 77:
+ { int ret = slice_from_s(z, 2, s_203);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 78:
+ { int ret = slice_from_s(z, 2, s_204);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 79:
+ { int ret = slice_from_s(z, 2, s_205);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 80:
+ { int ret = slice_from_s(z, 2, s_206);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 81:
+ { int ret = slice_from_s(z, 3, s_207);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 82:
+ { int ret = slice_from_s(z, 3, s_208);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 83:
+ { int ret = slice_from_s(z, 2, s_209);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 84:
+ { int ret = slice_from_s(z, 3, s_210);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 85:
+ { int ret = slice_from_s(z, 3, s_211);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 86:
+ { int ret = slice_from_s(z, 4, s_212);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 87:
+ { int ret = slice_from_s(z, 2, s_213);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 88:
+ { int ret = slice_from_s(z, 3, s_214);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 89:
+ { int ret = slice_from_s(z, 4, s_215);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 90:
+ { int ret = slice_from_s(z, 5, s_216);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 91:
+ { int ret = slice_from_s(z, 3, s_217);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 92:
+ { int ret = slice_from_s(z, 4, s_218);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 93:
+ { int ret = slice_from_s(z, 4, s_219);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 94:
+ { int ret = slice_from_s(z, 3, s_220);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 95:
+ { int ret = slice_from_s(z, 1, s_221);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 96:
+ { int ret = slice_from_s(z, 3, s_222);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 97:
+ { int ret = slice_from_s(z, 3, s_223);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 98:
+ { int ret = slice_from_s(z, 3, s_224);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 99:
+ { int ret = slice_from_s(z, 3, s_225);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 100:
+ { int ret = slice_from_s(z, 2, s_226);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 101:
+ { int ret = slice_from_s(z, 3, s_227);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 102:
+ { int ret = slice_from_s(z, 4, s_228);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 103:
+ { int ret = slice_from_s(z, 2, s_229);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 104:
+ { int ret = slice_from_s(z, 1, s_230);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 105:
+ { int ret = slice_from_s(z, 2, s_231);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 106:
+ { int ret = slice_from_s(z, 5, s_232);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 107:
+ { int ret = slice_from_s(z, 5, s_233);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 108:
+ { int ret = slice_from_s(z, 5, s_234);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 109:
+ { int ret = slice_from_s(z, 2, s_235);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 110:
+ { int ret = slice_from_s(z, 4, s_236);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 111:
+ { int ret = slice_from_s(z, 4, s_237);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 112:
+ { int ret = slice_from_s(z, 4, s_238);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 113:
+ { int ret = slice_from_s(z, 2, s_239);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 114:
+ { int ret = slice_from_s(z, 3, s_240);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 115:
+ { int ret = slice_from_s(z, 2, s_241);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 116:
+ { int ret = slice_from_s(z, 1, s_242);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 117:
+ { int ret = slice_from_s(z, 4, s_243);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 118:
+ { int ret = slice_from_s(z, 4, s_244);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 119:
+ { int ret = slice_from_s(z, 1, s_245);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 120:
+ { int ret = slice_from_s(z, 2, s_246);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 121:
+ if (!(z->I[1])) return 0;
+ { int ret = slice_from_s(z, 3, s_247);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 122:
+ if (!(z->I[1])) return 0;
+ { int ret = slice_from_s(z, 3, s_248);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 123:
+ if (!(z->I[1])) return 0;
+ { int ret = slice_from_s(z, 2, s_249);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 124:
+ if (!(z->I[1])) return 0;
+ { int ret = slice_from_s(z, 2, s_250);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 125:
+ if (!(z->I[1])) return 0;
+ { int ret = slice_from_s(z, 2, s_251);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 126:
+ if (!(z->I[1])) return 0;
+ { int ret = slice_from_s(z, 2, s_252);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 127:
+ if (!(z->I[1])) return 0;
+ { int ret = slice_from_s(z, 4, s_253);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 128:
+ if (!(z->I[1])) return 0;
+ { int ret = slice_from_s(z, 3, s_254);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 129:
+ if (!(z->I[1])) return 0;
+ { int ret = slice_from_s(z, 3, s_255);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 130:
+ if (!(z->I[1])) return 0;
+ { int ret = slice_from_s(z, 3, s_256);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 131:
+ if (!(z->I[1])) return 0;
+ { int ret = slice_from_s(z, 3, s_257);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 132:
+ if (!(z->I[1])) return 0;
+ { int ret = slice_from_s(z, 3, s_258);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 133:
+ if (!(z->I[1])) return 0;
+ { int ret = slice_from_s(z, 3, s_259);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 134:
+ if (!(z->I[1])) return 0;
+ { int ret = slice_from_s(z, 3, s_260);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 135:
+ if (!(z->I[1])) return 0;
+ { int ret = slice_from_s(z, 3, s_261);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 136:
+ if (!(z->I[1])) return 0;
+ { int ret = slice_from_s(z, 2, s_262);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 137:
+ if (!(z->I[1])) return 0;
+ { int ret = slice_from_s(z, 3, s_263);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 138:
+ if (!(z->I[1])) return 0;
+ { int ret = slice_from_s(z, 5, s_264);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 139:
+ if (!(z->I[1])) return 0;
+ { int ret = slice_from_s(z, 5, s_265);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 140:
+ if (!(z->I[1])) return 0;
+ { int ret = slice_from_s(z, 5, s_266);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 141:
+ if (!(z->I[1])) return 0;
+ { int ret = slice_from_s(z, 4, s_267);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 142:
+ if (!(z->I[1])) return 0;
+ { int ret = slice_from_s(z, 4, s_268);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 143:
+ if (!(z->I[1])) return 0;
+ { int ret = slice_from_s(z, 4, s_269);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 144:
+ if (!(z->I[1])) return 0;
+ { int ret = slice_from_s(z, 3, s_270);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 145:
+ if (!(z->I[1])) return 0;
+ { int ret = slice_from_s(z, 3, s_271);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 146:
+ if (!(z->I[1])) return 0;
+ { int ret = slice_from_s(z, 3, s_272);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 147:
+ if (!(z->I[1])) return 0;
+ { int ret = slice_from_s(z, 3, s_273);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 148:
+ if (!(z->I[1])) return 0;
+ { int ret = slice_from_s(z, 3, s_274);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 149:
+ if (!(z->I[1])) return 0;
+ { int ret = slice_from_s(z, 4, s_275);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 150:
+ if (!(z->I[1])) return 0;
+ { int ret = slice_from_s(z, 3, s_276);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 151:
+ if (!(z->I[1])) return 0;
+ { int ret = slice_from_s(z, 3, s_277);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 152:
+ if (!(z->I[1])) return 0;
+ { int ret = slice_from_s(z, 2, s_278);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 153:
+ if (!(z->I[1])) return 0;
+ { int ret = slice_from_s(z, 2, s_279);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 154:
+ if (!(z->I[1])) return 0;
+ { int ret = slice_from_s(z, 2, s_280);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 155:
+ if (!(z->I[1])) return 0;
+ { int ret = slice_from_s(z, 2, s_281);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 156:
+ if (!(z->I[1])) return 0;
+ { int ret = slice_from_s(z, 2, s_282);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 157:
+ if (!(z->I[1])) return 0;
+ { int ret = slice_from_s(z, 2, s_283);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 158:
+ if (!(z->I[1])) return 0;
+ { int ret = slice_from_s(z, 2, s_284);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 159:
+ if (!(z->I[1])) return 0;
+ { int ret = slice_from_s(z, 2, s_285);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 160:
+ if (!(z->I[1])) return 0;
+ { int ret = slice_from_s(z, 2, s_286);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 161:
+ if (!(z->I[1])) return 0;
+ { int ret = slice_from_s(z, 1, s_287);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 162:
+ if (!(z->I[1])) return 0;
+ { int ret = slice_from_s(z, 1, s_288);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 163:
+ if (!(z->I[1])) return 0;
+ { int ret = slice_from_s(z, 1, s_289);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 164:
+ if (!(z->I[1])) return 0;
+ { int ret = slice_from_s(z, 1, s_290);
+ if (ret < 0) return ret;
+ }
+ break;
+ }
+ return 1;
+}
+
+static int r_Step_3(struct SN_env * z) {
+ z->ket = z->c;
+ if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((3188642 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
+ if (!(find_among_b(z, a_3, 26))) return 0;
+ z->bra = z->c;
+ { int ret = r_R1(z);
+ if (ret <= 0) return ret;
+ }
+ { int ret = slice_from_s(z, 0, 0);
+ if (ret < 0) return ret;
+ }
+ return 1;
+}
+
+extern int serbian_UTF_8_stem(struct SN_env * z) {
+
+ { int ret = r_cyr_to_lat(z);
+ if (ret < 0) return ret;
+ }
+
+ { int ret = r_prelude(z);
+ if (ret < 0) return ret;
+ }
+
+ { int ret = r_mark_regions(z);
+ if (ret < 0) return ret;
+ }
+ z->lb = z->c; z->c = z->l;
+
+ { int m1 = z->l - z->c; (void)m1;
+ { int ret = r_Step_1(z);
+ if (ret < 0) return ret;
+ }
+ z->c = z->l - m1;
+ }
+ { int m2 = z->l - z->c; (void)m2;
+ { int m3 = z->l - z->c; (void)m3;
+ { int ret = r_Step_2(z);
+ if (ret == 0) goto lab2;
+ if (ret < 0) return ret;
+ }
+ goto lab1;
+ lab2:
+ z->c = z->l - m3;
+ { int ret = r_Step_3(z);
+ if (ret == 0) goto lab0;
+ if (ret < 0) return ret;
+ }
+ }
+ lab1:
+ lab0:
+ z->c = z->l - m2;
+ }
+ z->c = z->lb;
+ return 1;
+}
+
+extern struct SN_env * serbian_UTF_8_create_env(void) { return SN_create_env(0, 2); }
+
+extern void serbian_UTF_8_close_env(struct SN_env * z) { SN_close_env(z, 0); }
+
diff --git a/src/backend/snowball/libstemmer/stem_UTF_8_spanish.c b/src/backend/snowball/libstemmer/stem_UTF_8_spanish.c
new file mode 100644
index 0000000..27698e1
--- /dev/null
+++ b/src/backend/snowball/libstemmer/stem_UTF_8_spanish.c
@@ -0,0 +1,1045 @@
+/* Generated by Snowball 2.2.0 - https://snowballstem.org/ */
+
+#include "header.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+extern int spanish_UTF_8_stem(struct SN_env * z);
+#ifdef __cplusplus
+}
+#endif
+static int r_residual_suffix(struct SN_env * z);
+static int r_verb_suffix(struct SN_env * z);
+static int r_y_verb_suffix(struct SN_env * z);
+static int r_standard_suffix(struct SN_env * z);
+static int r_attached_pronoun(struct SN_env * z);
+static int r_R2(struct SN_env * z);
+static int r_R1(struct SN_env * z);
+static int r_RV(struct SN_env * z);
+static int r_mark_regions(struct SN_env * z);
+static int r_postlude(struct SN_env * z);
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+extern struct SN_env * spanish_UTF_8_create_env(void);
+extern void spanish_UTF_8_close_env(struct SN_env * z);
+
+
+#ifdef __cplusplus
+}
+#endif
+static const symbol s_0_1[2] = { 0xC3, 0xA1 };
+static const symbol s_0_2[2] = { 0xC3, 0xA9 };
+static const symbol s_0_3[2] = { 0xC3, 0xAD };
+static const symbol s_0_4[2] = { 0xC3, 0xB3 };
+static const symbol s_0_5[2] = { 0xC3, 0xBA };
+
+static const struct among a_0[6] =
+{
+{ 0, 0, -1, 6, 0},
+{ 2, s_0_1, 0, 1, 0},
+{ 2, s_0_2, 0, 2, 0},
+{ 2, s_0_3, 0, 3, 0},
+{ 2, s_0_4, 0, 4, 0},
+{ 2, s_0_5, 0, 5, 0}
+};
+
+static const symbol s_1_0[2] = { 'l', 'a' };
+static const symbol s_1_1[4] = { 's', 'e', 'l', 'a' };
+static const symbol s_1_2[2] = { 'l', 'e' };
+static const symbol s_1_3[2] = { 'm', 'e' };
+static const symbol s_1_4[2] = { 's', 'e' };
+static const symbol s_1_5[2] = { 'l', 'o' };
+static const symbol s_1_6[4] = { 's', 'e', 'l', 'o' };
+static const symbol s_1_7[3] = { 'l', 'a', 's' };
+static const symbol s_1_8[5] = { 's', 'e', 'l', 'a', 's' };
+static const symbol s_1_9[3] = { 'l', 'e', 's' };
+static const symbol s_1_10[3] = { 'l', 'o', 's' };
+static const symbol s_1_11[5] = { 's', 'e', 'l', 'o', 's' };
+static const symbol s_1_12[3] = { 'n', 'o', 's' };
+
+static const struct among a_1[13] =
+{
+{ 2, s_1_0, -1, -1, 0},
+{ 4, s_1_1, 0, -1, 0},
+{ 2, s_1_2, -1, -1, 0},
+{ 2, s_1_3, -1, -1, 0},
+{ 2, s_1_4, -1, -1, 0},
+{ 2, s_1_5, -1, -1, 0},
+{ 4, s_1_6, 5, -1, 0},
+{ 3, s_1_7, -1, -1, 0},
+{ 5, s_1_8, 7, -1, 0},
+{ 3, s_1_9, -1, -1, 0},
+{ 3, s_1_10, -1, -1, 0},
+{ 5, s_1_11, 10, -1, 0},
+{ 3, s_1_12, -1, -1, 0}
+};
+
+static const symbol s_2_0[4] = { 'a', 'n', 'd', 'o' };
+static const symbol s_2_1[5] = { 'i', 'e', 'n', 'd', 'o' };
+static const symbol s_2_2[5] = { 'y', 'e', 'n', 'd', 'o' };
+static const symbol s_2_3[5] = { 0xC3, 0xA1, 'n', 'd', 'o' };
+static const symbol s_2_4[6] = { 'i', 0xC3, 0xA9, 'n', 'd', 'o' };
+static const symbol s_2_5[2] = { 'a', 'r' };
+static const symbol s_2_6[2] = { 'e', 'r' };
+static const symbol s_2_7[2] = { 'i', 'r' };
+static const symbol s_2_8[3] = { 0xC3, 0xA1, 'r' };
+static const symbol s_2_9[3] = { 0xC3, 0xA9, 'r' };
+static const symbol s_2_10[3] = { 0xC3, 0xAD, 'r' };
+
+static const struct among a_2[11] =
+{
+{ 4, s_2_0, -1, 6, 0},
+{ 5, s_2_1, -1, 6, 0},
+{ 5, s_2_2, -1, 7, 0},
+{ 5, s_2_3, -1, 2, 0},
+{ 6, s_2_4, -1, 1, 0},
+{ 2, s_2_5, -1, 6, 0},
+{ 2, s_2_6, -1, 6, 0},
+{ 2, s_2_7, -1, 6, 0},
+{ 3, s_2_8, -1, 3, 0},
+{ 3, s_2_9, -1, 4, 0},
+{ 3, s_2_10, -1, 5, 0}
+};
+
+static const symbol s_3_0[2] = { 'i', 'c' };
+static const symbol s_3_1[2] = { 'a', 'd' };
+static const symbol s_3_2[2] = { 'o', 's' };
+static const symbol s_3_3[2] = { 'i', 'v' };
+
+static const struct among a_3[4] =
+{
+{ 2, s_3_0, -1, -1, 0},
+{ 2, s_3_1, -1, -1, 0},
+{ 2, s_3_2, -1, -1, 0},
+{ 2, s_3_3, -1, 1, 0}
+};
+
+static const symbol s_4_0[4] = { 'a', 'b', 'l', 'e' };
+static const symbol s_4_1[4] = { 'i', 'b', 'l', 'e' };
+static const symbol s_4_2[4] = { 'a', 'n', 't', 'e' };
+
+static const struct among a_4[3] =
+{
+{ 4, s_4_0, -1, 1, 0},
+{ 4, s_4_1, -1, 1, 0},
+{ 4, s_4_2, -1, 1, 0}
+};
+
+static const symbol s_5_0[2] = { 'i', 'c' };
+static const symbol s_5_1[4] = { 'a', 'b', 'i', 'l' };
+static const symbol s_5_2[2] = { 'i', 'v' };
+
+static const struct among a_5[3] =
+{
+{ 2, s_5_0, -1, 1, 0},
+{ 4, s_5_1, -1, 1, 0},
+{ 2, s_5_2, -1, 1, 0}
+};
+
+static const symbol s_6_0[3] = { 'i', 'c', 'a' };
+static const symbol s_6_1[5] = { 'a', 'n', 'c', 'i', 'a' };
+static const symbol s_6_2[5] = { 'e', 'n', 'c', 'i', 'a' };
+static const symbol s_6_3[5] = { 'a', 'd', 'o', 'r', 'a' };
+static const symbol s_6_4[3] = { 'o', 's', 'a' };
+static const symbol s_6_5[4] = { 'i', 's', 't', 'a' };
+static const symbol s_6_6[3] = { 'i', 'v', 'a' };
+static const symbol s_6_7[4] = { 'a', 'n', 'z', 'a' };
+static const symbol s_6_8[6] = { 'l', 'o', 'g', 0xC3, 0xAD, 'a' };
+static const symbol s_6_9[4] = { 'i', 'd', 'a', 'd' };
+static const symbol s_6_10[4] = { 'a', 'b', 'l', 'e' };
+static const symbol s_6_11[4] = { 'i', 'b', 'l', 'e' };
+static const symbol s_6_12[4] = { 'a', 'n', 't', 'e' };
+static const symbol s_6_13[5] = { 'm', 'e', 'n', 't', 'e' };
+static const symbol s_6_14[6] = { 'a', 'm', 'e', 'n', 't', 'e' };
+static const symbol s_6_15[6] = { 'a', 'c', 'i', 0xC3, 0xB3, 'n' };
+static const symbol s_6_16[6] = { 'u', 'c', 'i', 0xC3, 0xB3, 'n' };
+static const symbol s_6_17[3] = { 'i', 'c', 'o' };
+static const symbol s_6_18[4] = { 'i', 's', 'm', 'o' };
+static const symbol s_6_19[3] = { 'o', 's', 'o' };
+static const symbol s_6_20[7] = { 'a', 'm', 'i', 'e', 'n', 't', 'o' };
+static const symbol s_6_21[7] = { 'i', 'm', 'i', 'e', 'n', 't', 'o' };
+static const symbol s_6_22[3] = { 'i', 'v', 'o' };
+static const symbol s_6_23[4] = { 'a', 'd', 'o', 'r' };
+static const symbol s_6_24[4] = { 'i', 'c', 'a', 's' };
+static const symbol s_6_25[6] = { 'a', 'n', 'c', 'i', 'a', 's' };
+static const symbol s_6_26[6] = { 'e', 'n', 'c', 'i', 'a', 's' };
+static const symbol s_6_27[6] = { 'a', 'd', 'o', 'r', 'a', 's' };
+static const symbol s_6_28[4] = { 'o', 's', 'a', 's' };
+static const symbol s_6_29[5] = { 'i', 's', 't', 'a', 's' };
+static const symbol s_6_30[4] = { 'i', 'v', 'a', 's' };
+static const symbol s_6_31[5] = { 'a', 'n', 'z', 'a', 's' };
+static const symbol s_6_32[7] = { 'l', 'o', 'g', 0xC3, 0xAD, 'a', 's' };
+static const symbol s_6_33[6] = { 'i', 'd', 'a', 'd', 'e', 's' };
+static const symbol s_6_34[5] = { 'a', 'b', 'l', 'e', 's' };
+static const symbol s_6_35[5] = { 'i', 'b', 'l', 'e', 's' };
+static const symbol s_6_36[7] = { 'a', 'c', 'i', 'o', 'n', 'e', 's' };
+static const symbol s_6_37[7] = { 'u', 'c', 'i', 'o', 'n', 'e', 's' };
+static const symbol s_6_38[6] = { 'a', 'd', 'o', 'r', 'e', 's' };
+static const symbol s_6_39[5] = { 'a', 'n', 't', 'e', 's' };
+static const symbol s_6_40[4] = { 'i', 'c', 'o', 's' };
+static const symbol s_6_41[5] = { 'i', 's', 'm', 'o', 's' };
+static const symbol s_6_42[4] = { 'o', 's', 'o', 's' };
+static const symbol s_6_43[8] = { 'a', 'm', 'i', 'e', 'n', 't', 'o', 's' };
+static const symbol s_6_44[8] = { 'i', 'm', 'i', 'e', 'n', 't', 'o', 's' };
+static const symbol s_6_45[4] = { 'i', 'v', 'o', 's' };
+
+static const struct among a_6[46] =
+{
+{ 3, s_6_0, -1, 1, 0},
+{ 5, s_6_1, -1, 2, 0},
+{ 5, s_6_2, -1, 5, 0},
+{ 5, s_6_3, -1, 2, 0},
+{ 3, s_6_4, -1, 1, 0},
+{ 4, s_6_5, -1, 1, 0},
+{ 3, s_6_6, -1, 9, 0},
+{ 4, s_6_7, -1, 1, 0},
+{ 6, s_6_8, -1, 3, 0},
+{ 4, s_6_9, -1, 8, 0},
+{ 4, s_6_10, -1, 1, 0},
+{ 4, s_6_11, -1, 1, 0},
+{ 4, s_6_12, -1, 2, 0},
+{ 5, s_6_13, -1, 7, 0},
+{ 6, s_6_14, 13, 6, 0},
+{ 6, s_6_15, -1, 2, 0},
+{ 6, s_6_16, -1, 4, 0},
+{ 3, s_6_17, -1, 1, 0},
+{ 4, s_6_18, -1, 1, 0},
+{ 3, s_6_19, -1, 1, 0},
+{ 7, s_6_20, -1, 1, 0},
+{ 7, s_6_21, -1, 1, 0},
+{ 3, s_6_22, -1, 9, 0},
+{ 4, s_6_23, -1, 2, 0},
+{ 4, s_6_24, -1, 1, 0},
+{ 6, s_6_25, -1, 2, 0},
+{ 6, s_6_26, -1, 5, 0},
+{ 6, s_6_27, -1, 2, 0},
+{ 4, s_6_28, -1, 1, 0},
+{ 5, s_6_29, -1, 1, 0},
+{ 4, s_6_30, -1, 9, 0},
+{ 5, s_6_31, -1, 1, 0},
+{ 7, s_6_32, -1, 3, 0},
+{ 6, s_6_33, -1, 8, 0},
+{ 5, s_6_34, -1, 1, 0},
+{ 5, s_6_35, -1, 1, 0},
+{ 7, s_6_36, -1, 2, 0},
+{ 7, s_6_37, -1, 4, 0},
+{ 6, s_6_38, -1, 2, 0},
+{ 5, s_6_39, -1, 2, 0},
+{ 4, s_6_40, -1, 1, 0},
+{ 5, s_6_41, -1, 1, 0},
+{ 4, s_6_42, -1, 1, 0},
+{ 8, s_6_43, -1, 1, 0},
+{ 8, s_6_44, -1, 1, 0},
+{ 4, s_6_45, -1, 9, 0}
+};
+
+static const symbol s_7_0[2] = { 'y', 'a' };
+static const symbol s_7_1[2] = { 'y', 'e' };
+static const symbol s_7_2[3] = { 'y', 'a', 'n' };
+static const symbol s_7_3[3] = { 'y', 'e', 'n' };
+static const symbol s_7_4[5] = { 'y', 'e', 'r', 'o', 'n' };
+static const symbol s_7_5[5] = { 'y', 'e', 'n', 'd', 'o' };
+static const symbol s_7_6[2] = { 'y', 'o' };
+static const symbol s_7_7[3] = { 'y', 'a', 's' };
+static const symbol s_7_8[3] = { 'y', 'e', 's' };
+static const symbol s_7_9[4] = { 'y', 'a', 'i', 's' };
+static const symbol s_7_10[5] = { 'y', 'a', 'm', 'o', 's' };
+static const symbol s_7_11[3] = { 'y', 0xC3, 0xB3 };
+
+static const struct among a_7[12] =
+{
+{ 2, s_7_0, -1, 1, 0},
+{ 2, s_7_1, -1, 1, 0},
+{ 3, s_7_2, -1, 1, 0},
+{ 3, s_7_3, -1, 1, 0},
+{ 5, s_7_4, -1, 1, 0},
+{ 5, s_7_5, -1, 1, 0},
+{ 2, s_7_6, -1, 1, 0},
+{ 3, s_7_7, -1, 1, 0},
+{ 3, s_7_8, -1, 1, 0},
+{ 4, s_7_9, -1, 1, 0},
+{ 5, s_7_10, -1, 1, 0},
+{ 3, s_7_11, -1, 1, 0}
+};
+
+static const symbol s_8_0[3] = { 'a', 'b', 'a' };
+static const symbol s_8_1[3] = { 'a', 'd', 'a' };
+static const symbol s_8_2[3] = { 'i', 'd', 'a' };
+static const symbol s_8_3[3] = { 'a', 'r', 'a' };
+static const symbol s_8_4[4] = { 'i', 'e', 'r', 'a' };
+static const symbol s_8_5[3] = { 0xC3, 0xAD, 'a' };
+static const symbol s_8_6[5] = { 'a', 'r', 0xC3, 0xAD, 'a' };
+static const symbol s_8_7[5] = { 'e', 'r', 0xC3, 0xAD, 'a' };
+static const symbol s_8_8[5] = { 'i', 'r', 0xC3, 0xAD, 'a' };
+static const symbol s_8_9[2] = { 'a', 'd' };
+static const symbol s_8_10[2] = { 'e', 'd' };
+static const symbol s_8_11[2] = { 'i', 'd' };
+static const symbol s_8_12[3] = { 'a', 's', 'e' };
+static const symbol s_8_13[4] = { 'i', 'e', 's', 'e' };
+static const symbol s_8_14[4] = { 'a', 's', 't', 'e' };
+static const symbol s_8_15[4] = { 'i', 's', 't', 'e' };
+static const symbol s_8_16[2] = { 'a', 'n' };
+static const symbol s_8_17[4] = { 'a', 'b', 'a', 'n' };
+static const symbol s_8_18[4] = { 'a', 'r', 'a', 'n' };
+static const symbol s_8_19[5] = { 'i', 'e', 'r', 'a', 'n' };
+static const symbol s_8_20[4] = { 0xC3, 0xAD, 'a', 'n' };
+static const symbol s_8_21[6] = { 'a', 'r', 0xC3, 0xAD, 'a', 'n' };
+static const symbol s_8_22[6] = { 'e', 'r', 0xC3, 0xAD, 'a', 'n' };
+static const symbol s_8_23[6] = { 'i', 'r', 0xC3, 0xAD, 'a', 'n' };
+static const symbol s_8_24[2] = { 'e', 'n' };
+static const symbol s_8_25[4] = { 'a', 's', 'e', 'n' };
+static const symbol s_8_26[5] = { 'i', 'e', 's', 'e', 'n' };
+static const symbol s_8_27[4] = { 'a', 'r', 'o', 'n' };
+static const symbol s_8_28[5] = { 'i', 'e', 'r', 'o', 'n' };
+static const symbol s_8_29[5] = { 'a', 'r', 0xC3, 0xA1, 'n' };
+static const symbol s_8_30[5] = { 'e', 'r', 0xC3, 0xA1, 'n' };
+static const symbol s_8_31[5] = { 'i', 'r', 0xC3, 0xA1, 'n' };
+static const symbol s_8_32[3] = { 'a', 'd', 'o' };
+static const symbol s_8_33[3] = { 'i', 'd', 'o' };
+static const symbol s_8_34[4] = { 'a', 'n', 'd', 'o' };
+static const symbol s_8_35[5] = { 'i', 'e', 'n', 'd', 'o' };
+static const symbol s_8_36[2] = { 'a', 'r' };
+static const symbol s_8_37[2] = { 'e', 'r' };
+static const symbol s_8_38[2] = { 'i', 'r' };
+static const symbol s_8_39[2] = { 'a', 's' };
+static const symbol s_8_40[4] = { 'a', 'b', 'a', 's' };
+static const symbol s_8_41[4] = { 'a', 'd', 'a', 's' };
+static const symbol s_8_42[4] = { 'i', 'd', 'a', 's' };
+static const symbol s_8_43[4] = { 'a', 'r', 'a', 's' };
+static const symbol s_8_44[5] = { 'i', 'e', 'r', 'a', 's' };
+static const symbol s_8_45[4] = { 0xC3, 0xAD, 'a', 's' };
+static const symbol s_8_46[6] = { 'a', 'r', 0xC3, 0xAD, 'a', 's' };
+static const symbol s_8_47[6] = { 'e', 'r', 0xC3, 0xAD, 'a', 's' };
+static const symbol s_8_48[6] = { 'i', 'r', 0xC3, 0xAD, 'a', 's' };
+static const symbol s_8_49[2] = { 'e', 's' };
+static const symbol s_8_50[4] = { 'a', 's', 'e', 's' };
+static const symbol s_8_51[5] = { 'i', 'e', 's', 'e', 's' };
+static const symbol s_8_52[5] = { 'a', 'b', 'a', 'i', 's' };
+static const symbol s_8_53[5] = { 'a', 'r', 'a', 'i', 's' };
+static const symbol s_8_54[6] = { 'i', 'e', 'r', 'a', 'i', 's' };
+static const symbol s_8_55[5] = { 0xC3, 0xAD, 'a', 'i', 's' };
+static const symbol s_8_56[7] = { 'a', 'r', 0xC3, 0xAD, 'a', 'i', 's' };
+static const symbol s_8_57[7] = { 'e', 'r', 0xC3, 0xAD, 'a', 'i', 's' };
+static const symbol s_8_58[7] = { 'i', 'r', 0xC3, 0xAD, 'a', 'i', 's' };
+static const symbol s_8_59[5] = { 'a', 's', 'e', 'i', 's' };
+static const symbol s_8_60[6] = { 'i', 'e', 's', 'e', 'i', 's' };
+static const symbol s_8_61[6] = { 'a', 's', 't', 'e', 'i', 's' };
+static const symbol s_8_62[6] = { 'i', 's', 't', 'e', 'i', 's' };
+static const symbol s_8_63[4] = { 0xC3, 0xA1, 'i', 's' };
+static const symbol s_8_64[4] = { 0xC3, 0xA9, 'i', 's' };
+static const symbol s_8_65[6] = { 'a', 'r', 0xC3, 0xA9, 'i', 's' };
+static const symbol s_8_66[6] = { 'e', 'r', 0xC3, 0xA9, 'i', 's' };
+static const symbol s_8_67[6] = { 'i', 'r', 0xC3, 0xA9, 'i', 's' };
+static const symbol s_8_68[4] = { 'a', 'd', 'o', 's' };
+static const symbol s_8_69[4] = { 'i', 'd', 'o', 's' };
+static const symbol s_8_70[4] = { 'a', 'm', 'o', 's' };
+static const symbol s_8_71[7] = { 0xC3, 0xA1, 'b', 'a', 'm', 'o', 's' };
+static const symbol s_8_72[7] = { 0xC3, 0xA1, 'r', 'a', 'm', 'o', 's' };
+static const symbol s_8_73[8] = { 'i', 0xC3, 0xA9, 'r', 'a', 'm', 'o', 's' };
+static const symbol s_8_74[6] = { 0xC3, 0xAD, 'a', 'm', 'o', 's' };
+static const symbol s_8_75[8] = { 'a', 'r', 0xC3, 0xAD, 'a', 'm', 'o', 's' };
+static const symbol s_8_76[8] = { 'e', 'r', 0xC3, 0xAD, 'a', 'm', 'o', 's' };
+static const symbol s_8_77[8] = { 'i', 'r', 0xC3, 0xAD, 'a', 'm', 'o', 's' };
+static const symbol s_8_78[4] = { 'e', 'm', 'o', 's' };
+static const symbol s_8_79[6] = { 'a', 'r', 'e', 'm', 'o', 's' };
+static const symbol s_8_80[6] = { 'e', 'r', 'e', 'm', 'o', 's' };
+static const symbol s_8_81[6] = { 'i', 'r', 'e', 'm', 'o', 's' };
+static const symbol s_8_82[7] = { 0xC3, 0xA1, 's', 'e', 'm', 'o', 's' };
+static const symbol s_8_83[8] = { 'i', 0xC3, 0xA9, 's', 'e', 'm', 'o', 's' };
+static const symbol s_8_84[4] = { 'i', 'm', 'o', 's' };
+static const symbol s_8_85[5] = { 'a', 'r', 0xC3, 0xA1, 's' };
+static const symbol s_8_86[5] = { 'e', 'r', 0xC3, 0xA1, 's' };
+static const symbol s_8_87[5] = { 'i', 'r', 0xC3, 0xA1, 's' };
+static const symbol s_8_88[3] = { 0xC3, 0xAD, 's' };
+static const symbol s_8_89[4] = { 'a', 'r', 0xC3, 0xA1 };
+static const symbol s_8_90[4] = { 'e', 'r', 0xC3, 0xA1 };
+static const symbol s_8_91[4] = { 'i', 'r', 0xC3, 0xA1 };
+static const symbol s_8_92[4] = { 'a', 'r', 0xC3, 0xA9 };
+static const symbol s_8_93[4] = { 'e', 'r', 0xC3, 0xA9 };
+static const symbol s_8_94[4] = { 'i', 'r', 0xC3, 0xA9 };
+static const symbol s_8_95[3] = { 'i', 0xC3, 0xB3 };
+
+static const struct among a_8[96] =
+{
+{ 3, s_8_0, -1, 2, 0},
+{ 3, s_8_1, -1, 2, 0},
+{ 3, s_8_2, -1, 2, 0},
+{ 3, s_8_3, -1, 2, 0},
+{ 4, s_8_4, -1, 2, 0},
+{ 3, s_8_5, -1, 2, 0},
+{ 5, s_8_6, 5, 2, 0},
+{ 5, s_8_7, 5, 2, 0},
+{ 5, s_8_8, 5, 2, 0},
+{ 2, s_8_9, -1, 2, 0},
+{ 2, s_8_10, -1, 2, 0},
+{ 2, s_8_11, -1, 2, 0},
+{ 3, s_8_12, -1, 2, 0},
+{ 4, s_8_13, -1, 2, 0},
+{ 4, s_8_14, -1, 2, 0},
+{ 4, s_8_15, -1, 2, 0},
+{ 2, s_8_16, -1, 2, 0},
+{ 4, s_8_17, 16, 2, 0},
+{ 4, s_8_18, 16, 2, 0},
+{ 5, s_8_19, 16, 2, 0},
+{ 4, s_8_20, 16, 2, 0},
+{ 6, s_8_21, 20, 2, 0},
+{ 6, s_8_22, 20, 2, 0},
+{ 6, s_8_23, 20, 2, 0},
+{ 2, s_8_24, -1, 1, 0},
+{ 4, s_8_25, 24, 2, 0},
+{ 5, s_8_26, 24, 2, 0},
+{ 4, s_8_27, -1, 2, 0},
+{ 5, s_8_28, -1, 2, 0},
+{ 5, s_8_29, -1, 2, 0},
+{ 5, s_8_30, -1, 2, 0},
+{ 5, s_8_31, -1, 2, 0},
+{ 3, s_8_32, -1, 2, 0},
+{ 3, s_8_33, -1, 2, 0},
+{ 4, s_8_34, -1, 2, 0},
+{ 5, s_8_35, -1, 2, 0},
+{ 2, s_8_36, -1, 2, 0},
+{ 2, s_8_37, -1, 2, 0},
+{ 2, s_8_38, -1, 2, 0},
+{ 2, s_8_39, -1, 2, 0},
+{ 4, s_8_40, 39, 2, 0},
+{ 4, s_8_41, 39, 2, 0},
+{ 4, s_8_42, 39, 2, 0},
+{ 4, s_8_43, 39, 2, 0},
+{ 5, s_8_44, 39, 2, 0},
+{ 4, s_8_45, 39, 2, 0},
+{ 6, s_8_46, 45, 2, 0},
+{ 6, s_8_47, 45, 2, 0},
+{ 6, s_8_48, 45, 2, 0},
+{ 2, s_8_49, -1, 1, 0},
+{ 4, s_8_50, 49, 2, 0},
+{ 5, s_8_51, 49, 2, 0},
+{ 5, s_8_52, -1, 2, 0},
+{ 5, s_8_53, -1, 2, 0},
+{ 6, s_8_54, -1, 2, 0},
+{ 5, s_8_55, -1, 2, 0},
+{ 7, s_8_56, 55, 2, 0},
+{ 7, s_8_57, 55, 2, 0},
+{ 7, s_8_58, 55, 2, 0},
+{ 5, s_8_59, -1, 2, 0},
+{ 6, s_8_60, -1, 2, 0},
+{ 6, s_8_61, -1, 2, 0},
+{ 6, s_8_62, -1, 2, 0},
+{ 4, s_8_63, -1, 2, 0},
+{ 4, s_8_64, -1, 1, 0},
+{ 6, s_8_65, 64, 2, 0},
+{ 6, s_8_66, 64, 2, 0},
+{ 6, s_8_67, 64, 2, 0},
+{ 4, s_8_68, -1, 2, 0},
+{ 4, s_8_69, -1, 2, 0},
+{ 4, s_8_70, -1, 2, 0},
+{ 7, s_8_71, 70, 2, 0},
+{ 7, s_8_72, 70, 2, 0},
+{ 8, s_8_73, 70, 2, 0},
+{ 6, s_8_74, 70, 2, 0},
+{ 8, s_8_75, 74, 2, 0},
+{ 8, s_8_76, 74, 2, 0},
+{ 8, s_8_77, 74, 2, 0},
+{ 4, s_8_78, -1, 1, 0},
+{ 6, s_8_79, 78, 2, 0},
+{ 6, s_8_80, 78, 2, 0},
+{ 6, s_8_81, 78, 2, 0},
+{ 7, s_8_82, 78, 2, 0},
+{ 8, s_8_83, 78, 2, 0},
+{ 4, s_8_84, -1, 2, 0},
+{ 5, s_8_85, -1, 2, 0},
+{ 5, s_8_86, -1, 2, 0},
+{ 5, s_8_87, -1, 2, 0},
+{ 3, s_8_88, -1, 2, 0},
+{ 4, s_8_89, -1, 2, 0},
+{ 4, s_8_90, -1, 2, 0},
+{ 4, s_8_91, -1, 2, 0},
+{ 4, s_8_92, -1, 2, 0},
+{ 4, s_8_93, -1, 2, 0},
+{ 4, s_8_94, -1, 2, 0},
+{ 3, s_8_95, -1, 2, 0}
+};
+
+static const symbol s_9_0[1] = { 'a' };
+static const symbol s_9_1[1] = { 'e' };
+static const symbol s_9_2[1] = { 'o' };
+static const symbol s_9_3[2] = { 'o', 's' };
+static const symbol s_9_4[2] = { 0xC3, 0xA1 };
+static const symbol s_9_5[2] = { 0xC3, 0xA9 };
+static const symbol s_9_6[2] = { 0xC3, 0xAD };
+static const symbol s_9_7[2] = { 0xC3, 0xB3 };
+
+static const struct among a_9[8] =
+{
+{ 1, s_9_0, -1, 1, 0},
+{ 1, s_9_1, -1, 2, 0},
+{ 1, s_9_2, -1, 1, 0},
+{ 2, s_9_3, -1, 1, 0},
+{ 2, s_9_4, -1, 1, 0},
+{ 2, s_9_5, -1, 2, 0},
+{ 2, s_9_6, -1, 1, 0},
+{ 2, s_9_7, -1, 1, 0}
+};
+
+static const unsigned char g_v[] = { 17, 65, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 17, 4, 10 };
+
+static const symbol s_0[] = { 'a' };
+static const symbol s_1[] = { 'e' };
+static const symbol s_2[] = { 'i' };
+static const symbol s_3[] = { 'o' };
+static const symbol s_4[] = { 'u' };
+static const symbol s_5[] = { 'i', 'e', 'n', 'd', 'o' };
+static const symbol s_6[] = { 'a', 'n', 'd', 'o' };
+static const symbol s_7[] = { 'a', 'r' };
+static const symbol s_8[] = { 'e', 'r' };
+static const symbol s_9[] = { 'i', 'r' };
+static const symbol s_10[] = { 'i', 'c' };
+static const symbol s_11[] = { 'l', 'o', 'g' };
+static const symbol s_12[] = { 'u' };
+static const symbol s_13[] = { 'e', 'n', 't', 'e' };
+static const symbol s_14[] = { 'a', 't' };
+static const symbol s_15[] = { 'a', 't' };
+
+static int r_mark_regions(struct SN_env * z) {
+ z->I[2] = z->l;
+ z->I[1] = z->l;
+ z->I[0] = z->l;
+ { int c1 = z->c;
+ { int c2 = z->c;
+ if (in_grouping_U(z, g_v, 97, 252, 0)) goto lab2;
+ { int c3 = z->c;
+ if (out_grouping_U(z, g_v, 97, 252, 0)) goto lab4;
+ {
+ int ret = out_grouping_U(z, g_v, 97, 252, 1);
+ if (ret < 0) goto lab4;
+ z->c += ret;
+ }
+ goto lab3;
+ lab4:
+ z->c = c3;
+ if (in_grouping_U(z, g_v, 97, 252, 0)) goto lab2;
+ {
+ int ret = in_grouping_U(z, g_v, 97, 252, 1);
+ if (ret < 0) goto lab2;
+ z->c += ret;
+ }
+ }
+ lab3:
+ goto lab1;
+ lab2:
+ z->c = c2;
+ if (out_grouping_U(z, g_v, 97, 252, 0)) goto lab0;
+ { int c4 = z->c;
+ if (out_grouping_U(z, g_v, 97, 252, 0)) goto lab6;
+ {
+ int ret = out_grouping_U(z, g_v, 97, 252, 1);
+ if (ret < 0) goto lab6;
+ z->c += ret;
+ }
+ goto lab5;
+ lab6:
+ z->c = c4;
+ if (in_grouping_U(z, g_v, 97, 252, 0)) goto lab0;
+ { int ret = skip_utf8(z->p, z->c, z->l, 1);
+ if (ret < 0) goto lab0;
+ z->c = ret;
+ }
+ }
+ lab5:
+ ;
+ }
+ lab1:
+ z->I[2] = z->c;
+ lab0:
+ z->c = c1;
+ }
+ { int c5 = z->c;
+ {
+ int ret = out_grouping_U(z, g_v, 97, 252, 1);
+ if (ret < 0) goto lab7;
+ z->c += ret;
+ }
+ {
+ int ret = in_grouping_U(z, g_v, 97, 252, 1);
+ if (ret < 0) goto lab7;
+ z->c += ret;
+ }
+ z->I[1] = z->c;
+ {
+ int ret = out_grouping_U(z, g_v, 97, 252, 1);
+ if (ret < 0) goto lab7;
+ z->c += ret;
+ }
+ {
+ int ret = in_grouping_U(z, g_v, 97, 252, 1);
+ if (ret < 0) goto lab7;
+ z->c += ret;
+ }
+ z->I[0] = z->c;
+ lab7:
+ z->c = c5;
+ }
+ return 1;
+}
+
+static int r_postlude(struct SN_env * z) {
+ int among_var;
+ while(1) {
+ int c1 = z->c;
+ z->bra = z->c;
+ if (z->c + 1 >= z->l || z->p[z->c + 1] >> 5 != 5 || !((67641858 >> (z->p[z->c + 1] & 0x1f)) & 1)) among_var = 6; else
+ among_var = find_among(z, a_0, 6);
+ if (!(among_var)) goto lab0;
+ z->ket = z->c;
+ switch (among_var) {
+ case 1:
+ { int ret = slice_from_s(z, 1, s_0);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 2:
+ { int ret = slice_from_s(z, 1, s_1);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 3:
+ { int ret = slice_from_s(z, 1, s_2);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 4:
+ { int ret = slice_from_s(z, 1, s_3);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 5:
+ { int ret = slice_from_s(z, 1, s_4);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 6:
+ { int ret = skip_utf8(z->p, z->c, z->l, 1);
+ if (ret < 0) goto lab0;
+ z->c = ret;
+ }
+ break;
+ }
+ continue;
+ lab0:
+ z->c = c1;
+ break;
+ }
+ return 1;
+}
+
+static int r_RV(struct SN_env * z) {
+ if (!(z->I[2] <= z->c)) return 0;
+ return 1;
+}
+
+static int r_R1(struct SN_env * z) {
+ if (!(z->I[1] <= z->c)) return 0;
+ return 1;
+}
+
+static int r_R2(struct SN_env * z) {
+ if (!(z->I[0] <= z->c)) return 0;
+ return 1;
+}
+
+static int r_attached_pronoun(struct SN_env * z) {
+ int among_var;
+ z->ket = z->c;
+ if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((557090 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
+ if (!(find_among_b(z, a_1, 13))) return 0;
+ z->bra = z->c;
+ if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 111 && z->p[z->c - 1] != 114)) return 0;
+ among_var = find_among_b(z, a_2, 11);
+ if (!(among_var)) return 0;
+ { int ret = r_RV(z);
+ if (ret <= 0) return ret;
+ }
+ switch (among_var) {
+ case 1:
+ z->bra = z->c;
+ { int ret = slice_from_s(z, 5, s_5);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 2:
+ z->bra = z->c;
+ { int ret = slice_from_s(z, 4, s_6);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 3:
+ z->bra = z->c;
+ { int ret = slice_from_s(z, 2, s_7);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 4:
+ z->bra = z->c;
+ { int ret = slice_from_s(z, 2, s_8);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 5:
+ z->bra = z->c;
+ { int ret = slice_from_s(z, 2, s_9);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 6:
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 7:
+ if (z->c <= z->lb || z->p[z->c - 1] != 'u') return 0;
+ z->c--;
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ break;
+ }
+ return 1;
+}
+
+static int r_standard_suffix(struct SN_env * z) {
+ int among_var;
+ z->ket = z->c;
+ if (z->c - 2 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((835634 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
+ among_var = find_among_b(z, a_6, 46);
+ if (!(among_var)) return 0;
+ z->bra = z->c;
+ switch (among_var) {
+ case 1:
+ { int ret = r_R2(z);
+ if (ret <= 0) return ret;
+ }
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 2:
+ { int ret = r_R2(z);
+ if (ret <= 0) return ret;
+ }
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ { int m1 = z->l - z->c; (void)m1;
+ z->ket = z->c;
+ if (!(eq_s_b(z, 2, s_10))) { z->c = z->l - m1; goto lab0; }
+ z->bra = z->c;
+ { int ret = r_R2(z);
+ if (ret == 0) { z->c = z->l - m1; goto lab0; }
+ if (ret < 0) return ret;
+ }
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ lab0:
+ ;
+ }
+ break;
+ case 3:
+ { int ret = r_R2(z);
+ if (ret <= 0) return ret;
+ }
+ { int ret = slice_from_s(z, 3, s_11);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 4:
+ { int ret = r_R2(z);
+ if (ret <= 0) return ret;
+ }
+ { int ret = slice_from_s(z, 1, s_12);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 5:
+ { int ret = r_R2(z);
+ if (ret <= 0) return ret;
+ }
+ { int ret = slice_from_s(z, 4, s_13);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 6:
+ { int ret = r_R1(z);
+ if (ret <= 0) return ret;
+ }
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ { int m2 = z->l - z->c; (void)m2;
+ z->ket = z->c;
+ if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((4718616 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->c = z->l - m2; goto lab1; }
+ among_var = find_among_b(z, a_3, 4);
+ if (!(among_var)) { z->c = z->l - m2; goto lab1; }
+ z->bra = z->c;
+ { int ret = r_R2(z);
+ if (ret == 0) { z->c = z->l - m2; goto lab1; }
+ if (ret < 0) return ret;
+ }
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ switch (among_var) {
+ case 1:
+ z->ket = z->c;
+ if (!(eq_s_b(z, 2, s_14))) { z->c = z->l - m2; goto lab1; }
+ z->bra = z->c;
+ { int ret = r_R2(z);
+ if (ret == 0) { z->c = z->l - m2; goto lab1; }
+ if (ret < 0) return ret;
+ }
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ break;
+ }
+ lab1:
+ ;
+ }
+ break;
+ case 7:
+ { int ret = r_R2(z);
+ if (ret <= 0) return ret;
+ }
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ { int m3 = z->l - z->c; (void)m3;
+ z->ket = z->c;
+ if (z->c - 3 <= z->lb || z->p[z->c - 1] != 101) { z->c = z->l - m3; goto lab2; }
+ if (!(find_among_b(z, a_4, 3))) { z->c = z->l - m3; goto lab2; }
+ z->bra = z->c;
+ { int ret = r_R2(z);
+ if (ret == 0) { z->c = z->l - m3; goto lab2; }
+ if (ret < 0) return ret;
+ }
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ lab2:
+ ;
+ }
+ break;
+ case 8:
+ { int ret = r_R2(z);
+ if (ret <= 0) return ret;
+ }
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ { int m4 = z->l - z->c; (void)m4;
+ z->ket = z->c;
+ 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 - m4; goto lab3; }
+ if (!(find_among_b(z, a_5, 3))) { z->c = z->l - m4; goto lab3; }
+ z->bra = z->c;
+ { int ret = r_R2(z);
+ if (ret == 0) { z->c = z->l - m4; goto lab3; }
+ if (ret < 0) return ret;
+ }
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ lab3:
+ ;
+ }
+ break;
+ case 9:
+ { int ret = r_R2(z);
+ if (ret <= 0) return ret;
+ }
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ { int m5 = z->l - z->c; (void)m5;
+ z->ket = z->c;
+ if (!(eq_s_b(z, 2, s_15))) { z->c = z->l - m5; goto lab4; }
+ z->bra = z->c;
+ { int ret = r_R2(z);
+ if (ret == 0) { z->c = z->l - m5; goto lab4; }
+ if (ret < 0) return ret;
+ }
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ lab4:
+ ;
+ }
+ break;
+ }
+ return 1;
+}
+
+static int r_y_verb_suffix(struct SN_env * z) {
+
+ { int mlimit1;
+ if (z->c < z->I[2]) return 0;
+ mlimit1 = z->lb; z->lb = z->I[2];
+ z->ket = z->c;
+ if (!(find_among_b(z, a_7, 12))) { z->lb = mlimit1; return 0; }
+ z->bra = z->c;
+ z->lb = mlimit1;
+ }
+ if (z->c <= z->lb || z->p[z->c - 1] != 'u') return 0;
+ z->c--;
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ return 1;
+}
+
+static int r_verb_suffix(struct SN_env * z) {
+ int among_var;
+
+ { int mlimit1;
+ if (z->c < z->I[2]) return 0;
+ mlimit1 = z->lb; z->lb = z->I[2];
+ z->ket = z->c;
+ among_var = find_among_b(z, a_8, 96);
+ if (!(among_var)) { z->lb = mlimit1; return 0; }
+ z->bra = z->c;
+ z->lb = mlimit1;
+ }
+ switch (among_var) {
+ case 1:
+ { int m2 = z->l - z->c; (void)m2;
+ if (z->c <= z->lb || z->p[z->c - 1] != 'u') { z->c = z->l - m2; goto lab0; }
+ z->c--;
+ { int m_test3 = z->l - z->c;
+ if (z->c <= z->lb || z->p[z->c - 1] != 'g') { z->c = z->l - m2; goto lab0; }
+ z->c--;
+ z->c = z->l - m_test3;
+ }
+ lab0:
+ ;
+ }
+ z->bra = z->c;
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 2:
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ break;
+ }
+ return 1;
+}
+
+static int r_residual_suffix(struct SN_env * z) {
+ int among_var;
+ z->ket = z->c;
+ among_var = find_among_b(z, a_9, 8);
+ if (!(among_var)) return 0;
+ z->bra = z->c;
+ switch (among_var) {
+ case 1:
+ { int ret = r_RV(z);
+ if (ret <= 0) return ret;
+ }
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 2:
+ { int ret = r_RV(z);
+ if (ret <= 0) return ret;
+ }
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ { int m1 = z->l - z->c; (void)m1;
+ z->ket = z->c;
+ if (z->c <= z->lb || z->p[z->c - 1] != 'u') { z->c = z->l - m1; goto lab0; }
+ z->c--;
+ z->bra = z->c;
+ { int m_test2 = z->l - z->c;
+ if (z->c <= z->lb || z->p[z->c - 1] != 'g') { z->c = z->l - m1; goto lab0; }
+ z->c--;
+ z->c = z->l - m_test2;
+ }
+ { int ret = r_RV(z);
+ if (ret == 0) { z->c = z->l - m1; goto lab0; }
+ if (ret < 0) return ret;
+ }
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ lab0:
+ ;
+ }
+ break;
+ }
+ return 1;
+}
+
+extern int spanish_UTF_8_stem(struct SN_env * z) {
+
+ { int ret = r_mark_regions(z);
+ if (ret < 0) return ret;
+ }
+ z->lb = z->c; z->c = z->l;
+
+ { int m1 = z->l - z->c; (void)m1;
+ { int ret = r_attached_pronoun(z);
+ if (ret < 0) return ret;
+ }
+ z->c = z->l - m1;
+ }
+ { int m2 = z->l - z->c; (void)m2;
+ { int m3 = z->l - z->c; (void)m3;
+ { int ret = r_standard_suffix(z);
+ if (ret == 0) goto lab2;
+ if (ret < 0) return ret;
+ }
+ goto lab1;
+ lab2:
+ z->c = z->l - m3;
+ { int ret = r_y_verb_suffix(z);
+ if (ret == 0) goto lab3;
+ if (ret < 0) return ret;
+ }
+ goto lab1;
+ lab3:
+ z->c = z->l - m3;
+ { int ret = r_verb_suffix(z);
+ if (ret == 0) goto lab0;
+ if (ret < 0) return ret;
+ }
+ }
+ lab1:
+ lab0:
+ z->c = z->l - m2;
+ }
+ { int m4 = z->l - z->c; (void)m4;
+ { int ret = r_residual_suffix(z);
+ if (ret < 0) return ret;
+ }
+ z->c = z->l - m4;
+ }
+ z->c = z->lb;
+ { int c5 = z->c;
+ { int ret = r_postlude(z);
+ if (ret < 0) return ret;
+ }
+ z->c = c5;
+ }
+ return 1;
+}
+
+extern struct SN_env * spanish_UTF_8_create_env(void) { return SN_create_env(0, 3); }
+
+extern void spanish_UTF_8_close_env(struct SN_env * z) { SN_close_env(z, 0); }
+
diff --git a/src/backend/snowball/libstemmer/stem_UTF_8_swedish.c b/src/backend/snowball/libstemmer/stem_UTF_8_swedish.c
new file mode 100644
index 0000000..2631862
--- /dev/null
+++ b/src/backend/snowball/libstemmer/stem_UTF_8_swedish.c
@@ -0,0 +1,292 @@
+/* Generated by Snowball 2.2.0 - https://snowballstem.org/ */
+
+#include "header.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+extern int swedish_UTF_8_stem(struct SN_env * z);
+#ifdef __cplusplus
+}
+#endif
+static int r_other_suffix(struct SN_env * z);
+static int r_consonant_pair(struct SN_env * z);
+static int r_main_suffix(struct SN_env * z);
+static int r_mark_regions(struct SN_env * z);
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+extern struct SN_env * swedish_UTF_8_create_env(void);
+extern void swedish_UTF_8_close_env(struct SN_env * z);
+
+
+#ifdef __cplusplus
+}
+#endif
+static const symbol s_0_0[1] = { 'a' };
+static const symbol s_0_1[4] = { 'a', 'r', 'n', 'a' };
+static const symbol s_0_2[4] = { 'e', 'r', 'n', 'a' };
+static const symbol s_0_3[7] = { 'h', 'e', 't', 'e', 'r', 'n', 'a' };
+static const symbol s_0_4[4] = { 'o', 'r', 'n', 'a' };
+static const symbol s_0_5[2] = { 'a', 'd' };
+static const symbol s_0_6[1] = { 'e' };
+static const symbol s_0_7[3] = { 'a', 'd', 'e' };
+static const symbol s_0_8[4] = { 'a', 'n', 'd', 'e' };
+static const symbol s_0_9[4] = { 'a', 'r', 'n', 'e' };
+static const symbol s_0_10[3] = { 'a', 'r', 'e' };
+static const symbol s_0_11[4] = { 'a', 's', 't', 'e' };
+static const symbol s_0_12[2] = { 'e', 'n' };
+static const symbol s_0_13[5] = { 'a', 'n', 'd', 'e', 'n' };
+static const symbol s_0_14[4] = { 'a', 'r', 'e', 'n' };
+static const symbol s_0_15[5] = { 'h', 'e', 't', 'e', 'n' };
+static const symbol s_0_16[3] = { 'e', 'r', 'n' };
+static const symbol s_0_17[2] = { 'a', 'r' };
+static const symbol s_0_18[2] = { 'e', 'r' };
+static const symbol s_0_19[5] = { 'h', 'e', 't', 'e', 'r' };
+static const symbol s_0_20[2] = { 'o', 'r' };
+static const symbol s_0_21[1] = { 's' };
+static const symbol s_0_22[2] = { 'a', 's' };
+static const symbol s_0_23[5] = { 'a', 'r', 'n', 'a', 's' };
+static const symbol s_0_24[5] = { 'e', 'r', 'n', 'a', 's' };
+static const symbol s_0_25[5] = { 'o', 'r', 'n', 'a', 's' };
+static const symbol s_0_26[2] = { 'e', 's' };
+static const symbol s_0_27[4] = { 'a', 'd', 'e', 's' };
+static const symbol s_0_28[5] = { 'a', 'n', 'd', 'e', 's' };
+static const symbol s_0_29[3] = { 'e', 'n', 's' };
+static const symbol s_0_30[5] = { 'a', 'r', 'e', 'n', 's' };
+static const symbol s_0_31[6] = { 'h', 'e', 't', 'e', 'n', 's' };
+static const symbol s_0_32[4] = { 'e', 'r', 'n', 's' };
+static const symbol s_0_33[2] = { 'a', 't' };
+static const symbol s_0_34[5] = { 'a', 'n', 'd', 'e', 't' };
+static const symbol s_0_35[3] = { 'h', 'e', 't' };
+static const symbol s_0_36[3] = { 'a', 's', 't' };
+
+static const struct among a_0[37] =
+{
+{ 1, s_0_0, -1, 1, 0},
+{ 4, s_0_1, 0, 1, 0},
+{ 4, s_0_2, 0, 1, 0},
+{ 7, s_0_3, 2, 1, 0},
+{ 4, s_0_4, 0, 1, 0},
+{ 2, s_0_5, -1, 1, 0},
+{ 1, s_0_6, -1, 1, 0},
+{ 3, s_0_7, 6, 1, 0},
+{ 4, s_0_8, 6, 1, 0},
+{ 4, s_0_9, 6, 1, 0},
+{ 3, s_0_10, 6, 1, 0},
+{ 4, s_0_11, 6, 1, 0},
+{ 2, s_0_12, -1, 1, 0},
+{ 5, s_0_13, 12, 1, 0},
+{ 4, s_0_14, 12, 1, 0},
+{ 5, s_0_15, 12, 1, 0},
+{ 3, s_0_16, -1, 1, 0},
+{ 2, s_0_17, -1, 1, 0},
+{ 2, s_0_18, -1, 1, 0},
+{ 5, s_0_19, 18, 1, 0},
+{ 2, s_0_20, -1, 1, 0},
+{ 1, s_0_21, -1, 2, 0},
+{ 2, s_0_22, 21, 1, 0},
+{ 5, s_0_23, 22, 1, 0},
+{ 5, s_0_24, 22, 1, 0},
+{ 5, s_0_25, 22, 1, 0},
+{ 2, s_0_26, 21, 1, 0},
+{ 4, s_0_27, 26, 1, 0},
+{ 5, s_0_28, 26, 1, 0},
+{ 3, s_0_29, 21, 1, 0},
+{ 5, s_0_30, 29, 1, 0},
+{ 6, s_0_31, 29, 1, 0},
+{ 4, s_0_32, 21, 1, 0},
+{ 2, s_0_33, -1, 1, 0},
+{ 5, s_0_34, -1, 1, 0},
+{ 3, s_0_35, -1, 1, 0},
+{ 3, s_0_36, -1, 1, 0}
+};
+
+static const symbol s_1_0[2] = { 'd', 'd' };
+static const symbol s_1_1[2] = { 'g', 'd' };
+static const symbol s_1_2[2] = { 'n', 'n' };
+static const symbol s_1_3[2] = { 'd', 't' };
+static const symbol s_1_4[2] = { 'g', 't' };
+static const symbol s_1_5[2] = { 'k', 't' };
+static const symbol s_1_6[2] = { 't', 't' };
+
+static const struct among a_1[7] =
+{
+{ 2, s_1_0, -1, -1, 0},
+{ 2, s_1_1, -1, -1, 0},
+{ 2, s_1_2, -1, -1, 0},
+{ 2, s_1_3, -1, -1, 0},
+{ 2, s_1_4, -1, -1, 0},
+{ 2, s_1_5, -1, -1, 0},
+{ 2, s_1_6, -1, -1, 0}
+};
+
+static const symbol s_2_0[2] = { 'i', 'g' };
+static const symbol s_2_1[3] = { 'l', 'i', 'g' };
+static const symbol s_2_2[3] = { 'e', 'l', 's' };
+static const symbol s_2_3[5] = { 'f', 'u', 'l', 'l', 't' };
+static const symbol s_2_4[5] = { 'l', 0xC3, 0xB6, 's', 't' };
+
+static const struct among a_2[5] =
+{
+{ 2, s_2_0, -1, 1, 0},
+{ 3, s_2_1, 0, 1, 0},
+{ 3, s_2_2, -1, 1, 0},
+{ 5, s_2_3, -1, 3, 0},
+{ 5, s_2_4, -1, 2, 0}
+};
+
+static const unsigned char g_v[] = { 17, 65, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 32 };
+
+static const unsigned char g_s_ending[] = { 119, 127, 149 };
+
+static const symbol s_0[] = { 'l', 0xC3, 0xB6, 's' };
+static const symbol s_1[] = { 'f', 'u', 'l', 'l' };
+
+static int r_mark_regions(struct SN_env * z) {
+ z->I[1] = z->l;
+ { int c_test1 = z->c;
+ { int ret = skip_utf8(z->p, z->c, z->l, 3);
+ if (ret < 0) return 0;
+ z->c = ret;
+ }
+ z->I[0] = z->c;
+ z->c = c_test1;
+ }
+ if (out_grouping_U(z, g_v, 97, 246, 1) < 0) return 0;
+ {
+ int ret = in_grouping_U(z, g_v, 97, 246, 1);
+ if (ret < 0) return 0;
+ z->c += ret;
+ }
+ z->I[1] = z->c;
+
+ if (!(z->I[1] < z->I[0])) goto lab0;
+ z->I[1] = z->I[0];
+lab0:
+ return 1;
+}
+
+static int r_main_suffix(struct SN_env * z) {
+ int among_var;
+
+ { int mlimit1;
+ if (z->c < z->I[1]) return 0;
+ mlimit1 = z->lb; z->lb = z->I[1];
+ z->ket = z->c;
+ if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1851442 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->lb = mlimit1; return 0; }
+ among_var = find_among_b(z, a_0, 37);
+ if (!(among_var)) { z->lb = mlimit1; return 0; }
+ z->bra = z->c;
+ z->lb = mlimit1;
+ }
+ switch (among_var) {
+ case 1:
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 2:
+ if (in_grouping_b_U(z, g_s_ending, 98, 121, 0)) return 0;
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ break;
+ }
+ return 1;
+}
+
+static int r_consonant_pair(struct SN_env * z) {
+
+ { int mlimit1;
+ if (z->c < z->I[1]) return 0;
+ mlimit1 = z->lb; z->lb = z->I[1];
+ { int m2 = z->l - z->c; (void)m2;
+ if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1064976 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->lb = mlimit1; return 0; }
+ if (!(find_among_b(z, a_1, 7))) { z->lb = mlimit1; return 0; }
+ z->c = z->l - m2;
+ z->ket = z->c;
+ { int ret = skip_b_utf8(z->p, z->c, z->lb, 1);
+ if (ret < 0) { z->lb = mlimit1; return 0; }
+ z->c = ret;
+ }
+ z->bra = z->c;
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ }
+ z->lb = mlimit1;
+ }
+ return 1;
+}
+
+static int r_other_suffix(struct SN_env * z) {
+ int among_var;
+
+ { int mlimit1;
+ if (z->c < z->I[1]) return 0;
+ mlimit1 = z->lb; z->lb = z->I[1];
+ z->ket = z->c;
+ if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1572992 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->lb = mlimit1; return 0; }
+ among_var = find_among_b(z, a_2, 5);
+ if (!(among_var)) { z->lb = mlimit1; return 0; }
+ z->bra = z->c;
+ switch (among_var) {
+ case 1:
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 2:
+ { int ret = slice_from_s(z, 4, s_0);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 3:
+ { int ret = slice_from_s(z, 4, s_1);
+ if (ret < 0) return ret;
+ }
+ break;
+ }
+ z->lb = mlimit1;
+ }
+ return 1;
+}
+
+extern int swedish_UTF_8_stem(struct SN_env * z) {
+ { int c1 = z->c;
+ { int ret = r_mark_regions(z);
+ if (ret < 0) return ret;
+ }
+ z->c = c1;
+ }
+ z->lb = z->c; z->c = z->l;
+
+ { int m2 = z->l - z->c; (void)m2;
+ { int ret = r_main_suffix(z);
+ if (ret < 0) return ret;
+ }
+ z->c = z->l - m2;
+ }
+ { int m3 = z->l - z->c; (void)m3;
+ { int ret = r_consonant_pair(z);
+ if (ret < 0) return ret;
+ }
+ z->c = z->l - m3;
+ }
+ { int m4 = z->l - z->c; (void)m4;
+ { int ret = r_other_suffix(z);
+ if (ret < 0) return ret;
+ }
+ z->c = z->l - m4;
+ }
+ z->c = z->lb;
+ return 1;
+}
+
+extern struct SN_env * swedish_UTF_8_create_env(void) { return SN_create_env(0, 2); }
+
+extern void swedish_UTF_8_close_env(struct SN_env * z) { SN_close_env(z, 0); }
+
diff --git a/src/backend/snowball/libstemmer/stem_UTF_8_tamil.c b/src/backend/snowball/libstemmer/stem_UTF_8_tamil.c
new file mode 100644
index 0000000..44cbdba
--- /dev/null
+++ b/src/backend/snowball/libstemmer/stem_UTF_8_tamil.c
@@ -0,0 +1,1878 @@
+/* Generated by Snowball 2.2.0 - https://snowballstem.org/ */
+
+#include "header.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+extern int tamil_UTF_8_stem(struct SN_env * z);
+#ifdef __cplusplus
+}
+#endif
+static int r_has_min_length(struct SN_env * z);
+static int r_remove_common_word_endings(struct SN_env * z);
+static int r_remove_tense_suffixes(struct SN_env * z);
+static int r_remove_tense_suffix(struct SN_env * z);
+static int r_fix_endings(struct SN_env * z);
+static int r_fix_ending(struct SN_env * z);
+static int r_fix_va_start(struct SN_env * z);
+static int r_remove_vetrumai_urupukal(struct SN_env * z);
+static int r_remove_um(struct SN_env * z);
+static int r_remove_command_suffixes(struct SN_env * z);
+static int r_remove_pronoun_prefixes(struct SN_env * z);
+static int r_remove_question_prefixes(struct SN_env * z);
+static int r_remove_question_suffixes(struct SN_env * z);
+static int r_remove_plural_suffix(struct SN_env * z);
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+extern struct SN_env * tamil_UTF_8_create_env(void);
+extern void tamil_UTF_8_close_env(struct SN_env * z);
+
+
+#ifdef __cplusplus
+}
+#endif
+static const symbol s_0_0[3] = { 0xE0, 0xAE, 0x95 };
+static const symbol s_0_1[3] = { 0xE0, 0xAE, 0x99 };
+static const symbol s_0_2[3] = { 0xE0, 0xAE, 0x9A };
+static const symbol s_0_3[3] = { 0xE0, 0xAE, 0x9E };
+static const symbol s_0_4[3] = { 0xE0, 0xAE, 0xA4 };
+static const symbol s_0_5[3] = { 0xE0, 0xAE, 0xA8 };
+static const symbol s_0_6[3] = { 0xE0, 0xAE, 0xAA };
+static const symbol s_0_7[3] = { 0xE0, 0xAE, 0xAE };
+static const symbol s_0_8[3] = { 0xE0, 0xAE, 0xAF };
+static const symbol s_0_9[3] = { 0xE0, 0xAE, 0xB5 };
+
+static const struct among a_0[10] =
+{
+{ 3, s_0_0, -1, -1, 0},
+{ 3, s_0_1, -1, -1, 0},
+{ 3, s_0_2, -1, -1, 0},
+{ 3, s_0_3, -1, -1, 0},
+{ 3, s_0_4, -1, -1, 0},
+{ 3, s_0_5, -1, -1, 0},
+{ 3, s_0_6, -1, -1, 0},
+{ 3, s_0_7, -1, -1, 0},
+{ 3, s_0_8, -1, -1, 0},
+{ 3, s_0_9, -1, -1, 0}
+};
+
+static const symbol s_1_0[12] = { 0xE0, 0xAE, 0xA8, 0xE0, 0xAF, 0x8D, 0xE0, 0xAE, 0xA4, 0xE0, 0xAF, 0x8D };
+static const symbol s_1_1[6] = { 0xE0, 0xAE, 0xA8, 0xE0, 0xAF, 0x8D };
+static const symbol s_1_2[9] = { 0xE0, 0xAE, 0xA8, 0xE0, 0xAF, 0x8D, 0xE0, 0xAE, 0xA4 };
+
+static const struct among a_1[3] =
+{
+{ 12, s_1_0, -1, -1, 0},
+{ 6, s_1_1, -1, -1, 0},
+{ 9, s_1_2, -1, -1, 0}
+};
+
+static const symbol s_2_0[3] = { 0xE0, 0xAF, 0x80 };
+static const symbol s_2_1[3] = { 0xE0, 0xAF, 0x88 };
+static const symbol s_2_2[3] = { 0xE0, 0xAE, 0xBF };
+
+static const struct among a_2[3] =
+{
+{ 3, s_2_0, -1, -1, 0},
+{ 3, s_2_1, -1, -1, 0},
+{ 3, s_2_2, -1, -1, 0}
+};
+
+static const symbol s_3_0[3] = { 0xE0, 0xAE, 0x95 };
+static const symbol s_3_1[3] = { 0xE0, 0xAE, 0x9A };
+static const symbol s_3_2[3] = { 0xE0, 0xAE, 0x9F };
+static const symbol s_3_3[3] = { 0xE0, 0xAE, 0xA4 };
+static const symbol s_3_4[3] = { 0xE0, 0xAE, 0xAA };
+static const symbol s_3_5[3] = { 0xE0, 0xAE, 0xB1 };
+
+static const struct among a_3[6] =
+{
+{ 3, s_3_0, -1, -1, 0},
+{ 3, s_3_1, -1, -1, 0},
+{ 3, s_3_2, -1, -1, 0},
+{ 3, s_3_3, -1, -1, 0},
+{ 3, s_3_4, -1, -1, 0},
+{ 3, s_3_5, -1, -1, 0}
+};
+
+static const symbol s_4_0[3] = { 0xE0, 0xAE, 0x95 };
+static const symbol s_4_1[3] = { 0xE0, 0xAE, 0x9A };
+static const symbol s_4_2[3] = { 0xE0, 0xAE, 0x9F };
+static const symbol s_4_3[3] = { 0xE0, 0xAE, 0xA4 };
+static const symbol s_4_4[3] = { 0xE0, 0xAE, 0xAA };
+static const symbol s_4_5[3] = { 0xE0, 0xAE, 0xB1 };
+
+static const struct among a_4[6] =
+{
+{ 3, s_4_0, -1, -1, 0},
+{ 3, s_4_1, -1, -1, 0},
+{ 3, s_4_2, -1, -1, 0},
+{ 3, s_4_3, -1, -1, 0},
+{ 3, s_4_4, -1, -1, 0},
+{ 3, s_4_5, -1, -1, 0}
+};
+
+static const symbol s_5_0[3] = { 0xE0, 0xAE, 0x95 };
+static const symbol s_5_1[3] = { 0xE0, 0xAE, 0x9A };
+static const symbol s_5_2[3] = { 0xE0, 0xAE, 0x9F };
+static const symbol s_5_3[3] = { 0xE0, 0xAE, 0xA4 };
+static const symbol s_5_4[3] = { 0xE0, 0xAE, 0xAA };
+static const symbol s_5_5[3] = { 0xE0, 0xAE, 0xB1 };
+
+static const struct among a_5[6] =
+{
+{ 3, s_5_0, -1, -1, 0},
+{ 3, s_5_1, -1, -1, 0},
+{ 3, s_5_2, -1, -1, 0},
+{ 3, s_5_3, -1, -1, 0},
+{ 3, s_5_4, -1, -1, 0},
+{ 3, s_5_5, -1, -1, 0}
+};
+
+static const symbol s_6_0[3] = { 0xE0, 0xAE, 0xAF };
+static const symbol s_6_1[3] = { 0xE0, 0xAE, 0xB0 };
+static const symbol s_6_2[3] = { 0xE0, 0xAE, 0xB2 };
+static const symbol s_6_3[3] = { 0xE0, 0xAE, 0xB3 };
+static const symbol s_6_4[3] = { 0xE0, 0xAE, 0xB4 };
+static const symbol s_6_5[3] = { 0xE0, 0xAE, 0xB5 };
+
+static const struct among a_6[6] =
+{
+{ 3, s_6_0, -1, -1, 0},
+{ 3, s_6_1, -1, -1, 0},
+{ 3, s_6_2, -1, -1, 0},
+{ 3, s_6_3, -1, -1, 0},
+{ 3, s_6_4, -1, -1, 0},
+{ 3, s_6_5, -1, -1, 0}
+};
+
+static const symbol s_7_0[3] = { 0xE0, 0xAE, 0x99 };
+static const symbol s_7_1[3] = { 0xE0, 0xAE, 0x9E };
+static const symbol s_7_2[3] = { 0xE0, 0xAE, 0xA3 };
+static const symbol s_7_3[3] = { 0xE0, 0xAE, 0xA8 };
+static const symbol s_7_4[3] = { 0xE0, 0xAE, 0xA9 };
+static const symbol s_7_5[3] = { 0xE0, 0xAE, 0xAE };
+
+static const struct among a_7[6] =
+{
+{ 3, s_7_0, -1, -1, 0},
+{ 3, s_7_1, -1, -1, 0},
+{ 3, s_7_2, -1, -1, 0},
+{ 3, s_7_3, -1, -1, 0},
+{ 3, s_7_4, -1, -1, 0},
+{ 3, s_7_5, -1, -1, 0}
+};
+
+static const symbol s_8_0[6] = { 0xE0, 0xAE, 0xB5, 0xE0, 0xAF, 0x8D };
+static const symbol s_8_1[3] = { 0xE0, 0xAE, 0xAF };
+static const symbol s_8_2[3] = { 0xE0, 0xAE, 0xB5 };
+
+static const struct among a_8[3] =
+{
+{ 6, s_8_0, -1, -1, 0},
+{ 3, s_8_1, -1, -1, 0},
+{ 3, s_8_2, -1, -1, 0}
+};
+
+static const symbol s_9_0[3] = { 0xE0, 0xAF, 0x80 };
+static const symbol s_9_1[3] = { 0xE0, 0xAF, 0x81 };
+static const symbol s_9_2[3] = { 0xE0, 0xAF, 0x82 };
+static const symbol s_9_3[3] = { 0xE0, 0xAF, 0x86 };
+static const symbol s_9_4[3] = { 0xE0, 0xAF, 0x87 };
+static const symbol s_9_5[3] = { 0xE0, 0xAF, 0x88 };
+static const symbol s_9_6[3] = { 0xE0, 0xAE, 0xBE };
+static const symbol s_9_7[3] = { 0xE0, 0xAE, 0xBF };
+
+static const struct among a_9[8] =
+{
+{ 3, s_9_0, -1, -1, 0},
+{ 3, s_9_1, -1, -1, 0},
+{ 3, s_9_2, -1, -1, 0},
+{ 3, s_9_3, -1, -1, 0},
+{ 3, s_9_4, -1, -1, 0},
+{ 3, s_9_5, -1, -1, 0},
+{ 3, s_9_6, -1, -1, 0},
+{ 3, s_9_7, -1, -1, 0}
+};
+
+static const symbol s_10_0[3] = { 0xE0, 0xAF, 0x80 };
+static const symbol s_10_1[3] = { 0xE0, 0xAF, 0x81 };
+static const symbol s_10_2[3] = { 0xE0, 0xAF, 0x82 };
+static const symbol s_10_3[3] = { 0xE0, 0xAF, 0x86 };
+static const symbol s_10_4[3] = { 0xE0, 0xAF, 0x87 };
+static const symbol s_10_5[3] = { 0xE0, 0xAF, 0x88 };
+static const symbol s_10_6[3] = { 0xE0, 0xAE, 0xBE };
+static const symbol s_10_7[3] = { 0xE0, 0xAE, 0xBF };
+
+static const struct among a_10[8] =
+{
+{ 3, s_10_0, -1, -1, 0},
+{ 3, s_10_1, -1, -1, 0},
+{ 3, s_10_2, -1, -1, 0},
+{ 3, s_10_3, -1, -1, 0},
+{ 3, s_10_4, -1, -1, 0},
+{ 3, s_10_5, -1, -1, 0},
+{ 3, s_10_6, -1, -1, 0},
+{ 3, s_10_7, -1, -1, 0}
+};
+
+static const symbol s_11_0[3] = { 0xE0, 0xAE, 0x85 };
+static const symbol s_11_1[3] = { 0xE0, 0xAE, 0x87 };
+static const symbol s_11_2[3] = { 0xE0, 0xAE, 0x89 };
+
+static const struct among a_11[3] =
+{
+{ 3, s_11_0, -1, -1, 0},
+{ 3, s_11_1, -1, -1, 0},
+{ 3, s_11_2, -1, -1, 0}
+};
+
+static const symbol s_12_0[3] = { 0xE0, 0xAE, 0x95 };
+static const symbol s_12_1[3] = { 0xE0, 0xAE, 0x99 };
+static const symbol s_12_2[3] = { 0xE0, 0xAE, 0x9A };
+static const symbol s_12_3[3] = { 0xE0, 0xAE, 0x9E };
+static const symbol s_12_4[3] = { 0xE0, 0xAE, 0xA4 };
+static const symbol s_12_5[3] = { 0xE0, 0xAE, 0xA8 };
+static const symbol s_12_6[3] = { 0xE0, 0xAE, 0xAA };
+static const symbol s_12_7[3] = { 0xE0, 0xAE, 0xAE };
+static const symbol s_12_8[3] = { 0xE0, 0xAE, 0xAF };
+static const symbol s_12_9[3] = { 0xE0, 0xAE, 0xB5 };
+
+static const struct among a_12[10] =
+{
+{ 3, s_12_0, -1, -1, 0},
+{ 3, s_12_1, -1, -1, 0},
+{ 3, s_12_2, -1, -1, 0},
+{ 3, s_12_3, -1, -1, 0},
+{ 3, s_12_4, -1, -1, 0},
+{ 3, s_12_5, -1, -1, 0},
+{ 3, s_12_6, -1, -1, 0},
+{ 3, s_12_7, -1, -1, 0},
+{ 3, s_12_8, -1, -1, 0},
+{ 3, s_12_9, -1, -1, 0}
+};
+
+static const symbol s_13_0[3] = { 0xE0, 0xAE, 0x95 };
+static const symbol s_13_1[3] = { 0xE0, 0xAE, 0x9A };
+static const symbol s_13_2[3] = { 0xE0, 0xAE, 0x9F };
+static const symbol s_13_3[3] = { 0xE0, 0xAE, 0xA4 };
+static const symbol s_13_4[3] = { 0xE0, 0xAE, 0xAA };
+static const symbol s_13_5[3] = { 0xE0, 0xAE, 0xB1 };
+
+static const struct among a_13[6] =
+{
+{ 3, s_13_0, -1, -1, 0},
+{ 3, s_13_1, -1, -1, 0},
+{ 3, s_13_2, -1, -1, 0},
+{ 3, s_13_3, -1, -1, 0},
+{ 3, s_13_4, -1, -1, 0},
+{ 3, s_13_5, -1, -1, 0}
+};
+
+static const symbol s_14_0[3] = { 0xE0, 0xAF, 0x87 };
+static const symbol s_14_1[3] = { 0xE0, 0xAF, 0x8B };
+static const symbol s_14_2[3] = { 0xE0, 0xAE, 0xBE };
+
+static const struct among a_14[3] =
+{
+{ 3, s_14_0, -1, -1, 0},
+{ 3, s_14_1, -1, -1, 0},
+{ 3, s_14_2, -1, -1, 0}
+};
+
+static const symbol s_15_0[6] = { 0xE0, 0xAE, 0xAA, 0xE0, 0xAE, 0xBF };
+static const symbol s_15_1[6] = { 0xE0, 0xAE, 0xB5, 0xE0, 0xAE, 0xBF };
+
+static const struct among a_15[2] =
+{
+{ 6, s_15_0, -1, -1, 0},
+{ 6, s_15_1, -1, -1, 0}
+};
+
+static const symbol s_16_0[3] = { 0xE0, 0xAF, 0x80 };
+static const symbol s_16_1[3] = { 0xE0, 0xAF, 0x81 };
+static const symbol s_16_2[3] = { 0xE0, 0xAF, 0x82 };
+static const symbol s_16_3[3] = { 0xE0, 0xAF, 0x86 };
+static const symbol s_16_4[3] = { 0xE0, 0xAF, 0x87 };
+static const symbol s_16_5[3] = { 0xE0, 0xAF, 0x88 };
+static const symbol s_16_6[3] = { 0xE0, 0xAE, 0xBE };
+static const symbol s_16_7[3] = { 0xE0, 0xAE, 0xBF };
+
+static const struct among a_16[8] =
+{
+{ 3, s_16_0, -1, -1, 0},
+{ 3, s_16_1, -1, -1, 0},
+{ 3, s_16_2, -1, -1, 0},
+{ 3, s_16_3, -1, -1, 0},
+{ 3, s_16_4, -1, -1, 0},
+{ 3, s_16_5, -1, -1, 0},
+{ 3, s_16_6, -1, -1, 0},
+{ 3, s_16_7, -1, -1, 0}
+};
+
+static const symbol s_17_0[15] = { 0xE0, 0xAE, 0xAA, 0xE0, 0xAE, 0x9F, 0xE0, 0xAF, 0x8D, 0xE0, 0xAE, 0x9F, 0xE0, 0xAF, 0x81 };
+static const symbol s_17_1[18] = { 0xE0, 0xAE, 0xB5, 0xE0, 0xAE, 0xBF, 0xE0, 0xAE, 0x9F, 0xE0, 0xAF, 0x8D, 0xE0, 0xAE, 0x9F, 0xE0, 0xAF, 0x81 };
+static const symbol s_17_2[9] = { 0xE0, 0xAE, 0xAA, 0xE0, 0xAE, 0x9F, 0xE0, 0xAF, 0x81 };
+static const symbol s_17_3[12] = { 0xE0, 0xAE, 0xB5, 0xE0, 0xAE, 0xBF, 0xE0, 0xAE, 0x9F, 0xE0, 0xAF, 0x81 };
+static const symbol s_17_4[18] = { 0xE0, 0xAE, 0xAA, 0xE0, 0xAE, 0x9F, 0xE0, 0xAF, 0x8D, 0xE0, 0xAE, 0x9F, 0xE0, 0xAE, 0xA4, 0xE0, 0xAF, 0x81 };
+static const symbol s_17_5[21] = { 0xE0, 0xAF, 0x86, 0xE0, 0xAE, 0xB2, 0xE0, 0xAF, 0x8D, 0xE0, 0xAE, 0xB2, 0xE0, 0xAE, 0xBE, 0xE0, 0xAE, 0xAE, 0xE0, 0xAF, 0x8D };
+static const symbol s_17_6[12] = { 0xE0, 0xAE, 0xAA, 0xE0, 0xAE, 0x9F, 0xE0, 0xAF, 0x8D, 0xE0, 0xAE, 0x9F };
+static const symbol s_17_7[15] = { 0xE0, 0xAE, 0xAA, 0xE0, 0xAE, 0x9F, 0xE0, 0xAF, 0x8D, 0xE0, 0xAE, 0x9F, 0xE0, 0xAE, 0xA3 };
+static const symbol s_17_8[9] = { 0xE0, 0xAE, 0xA4, 0xE0, 0xAE, 0xBE, 0xE0, 0xAE, 0xA9 };
+static const symbol s_17_9[18] = { 0xE0, 0xAE, 0xAA, 0xE0, 0xAE, 0x9F, 0xE0, 0xAE, 0xBF, 0xE0, 0xAE, 0xA4, 0xE0, 0xAE, 0xBE, 0xE0, 0xAE, 0xA9 };
+static const symbol s_17_10[15] = { 0xE0, 0xAE, 0x95, 0xE0, 0xAF, 0x81, 0xE0, 0xAE, 0xB0, 0xE0, 0xAE, 0xBF, 0xE0, 0xAE, 0xAF };
+static const symbol s_17_11[9] = { 0xE0, 0xAE, 0xAA, 0xE0, 0xAE, 0x9F, 0xE0, 0xAE, 0xBF };
+static const symbol s_17_12[15] = { 0xE0, 0xAE, 0xAA, 0xE0, 0xAE, 0xB1, 0xE0, 0xAF, 0x8D, 0xE0, 0xAE, 0xB1, 0xE0, 0xAE, 0xBF };
+
+static const struct among a_17[13] =
+{
+{ 15, s_17_0, -1, -1, 0},
+{ 18, s_17_1, -1, -1, 0},
+{ 9, s_17_2, -1, -1, 0},
+{ 12, s_17_3, -1, -1, 0},
+{ 18, s_17_4, -1, -1, 0},
+{ 21, s_17_5, -1, -1, 0},
+{ 12, s_17_6, -1, -1, 0},
+{ 15, s_17_7, -1, -1, 0},
+{ 9, s_17_8, -1, -1, 0},
+{ 18, s_17_9, 8, -1, 0},
+{ 15, s_17_10, -1, -1, 0},
+{ 9, s_17_11, -1, -1, 0},
+{ 15, s_17_12, -1, -1, 0}
+};
+
+static const symbol s_18_0[3] = { 0xE0, 0xAE, 0x95 };
+static const symbol s_18_1[3] = { 0xE0, 0xAE, 0x9A };
+static const symbol s_18_2[3] = { 0xE0, 0xAE, 0x9F };
+static const symbol s_18_3[3] = { 0xE0, 0xAE, 0xA4 };
+static const symbol s_18_4[3] = { 0xE0, 0xAE, 0xAA };
+static const symbol s_18_5[3] = { 0xE0, 0xAE, 0xB1 };
+
+static const struct among a_18[6] =
+{
+{ 3, s_18_0, -1, -1, 0},
+{ 3, s_18_1, -1, -1, 0},
+{ 3, s_18_2, -1, -1, 0},
+{ 3, s_18_3, -1, -1, 0},
+{ 3, s_18_4, -1, -1, 0},
+{ 3, s_18_5, -1, -1, 0}
+};
+
+static const symbol s_19_0[3] = { 0xE0, 0xAE, 0x95 };
+static const symbol s_19_1[3] = { 0xE0, 0xAE, 0x9A };
+static const symbol s_19_2[3] = { 0xE0, 0xAE, 0x9F };
+static const symbol s_19_3[3] = { 0xE0, 0xAE, 0xA4 };
+static const symbol s_19_4[3] = { 0xE0, 0xAE, 0xAA };
+static const symbol s_19_5[3] = { 0xE0, 0xAE, 0xB1 };
+
+static const struct among a_19[6] =
+{
+{ 3, s_19_0, -1, -1, 0},
+{ 3, s_19_1, -1, -1, 0},
+{ 3, s_19_2, -1, -1, 0},
+{ 3, s_19_3, -1, -1, 0},
+{ 3, s_19_4, -1, -1, 0},
+{ 3, s_19_5, -1, -1, 0}
+};
+
+static const symbol s_20_0[3] = { 0xE0, 0xAF, 0x80 };
+static const symbol s_20_1[3] = { 0xE0, 0xAF, 0x81 };
+static const symbol s_20_2[3] = { 0xE0, 0xAF, 0x82 };
+static const symbol s_20_3[3] = { 0xE0, 0xAF, 0x86 };
+static const symbol s_20_4[3] = { 0xE0, 0xAF, 0x87 };
+static const symbol s_20_5[3] = { 0xE0, 0xAF, 0x88 };
+static const symbol s_20_6[3] = { 0xE0, 0xAE, 0xBE };
+static const symbol s_20_7[3] = { 0xE0, 0xAE, 0xBF };
+
+static const struct among a_20[8] =
+{
+{ 3, s_20_0, -1, -1, 0},
+{ 3, s_20_1, -1, -1, 0},
+{ 3, s_20_2, -1, -1, 0},
+{ 3, s_20_3, -1, -1, 0},
+{ 3, s_20_4, -1, -1, 0},
+{ 3, s_20_5, -1, -1, 0},
+{ 3, s_20_6, -1, -1, 0},
+{ 3, s_20_7, -1, -1, 0}
+};
+
+static const symbol s_21_0[3] = { 0xE0, 0xAF, 0x80 };
+static const symbol s_21_1[3] = { 0xE0, 0xAF, 0x81 };
+static const symbol s_21_2[3] = { 0xE0, 0xAF, 0x82 };
+static const symbol s_21_3[3] = { 0xE0, 0xAF, 0x86 };
+static const symbol s_21_4[3] = { 0xE0, 0xAF, 0x87 };
+static const symbol s_21_5[3] = { 0xE0, 0xAF, 0x88 };
+static const symbol s_21_6[3] = { 0xE0, 0xAE, 0xBE };
+static const symbol s_21_7[3] = { 0xE0, 0xAE, 0xBF };
+
+static const struct among a_21[8] =
+{
+{ 3, s_21_0, -1, -1, 0},
+{ 3, s_21_1, -1, -1, 0},
+{ 3, s_21_2, -1, -1, 0},
+{ 3, s_21_3, -1, -1, 0},
+{ 3, s_21_4, -1, -1, 0},
+{ 3, s_21_5, -1, -1, 0},
+{ 3, s_21_6, -1, -1, 0},
+{ 3, s_21_7, -1, -1, 0}
+};
+
+static const symbol s_22_0[9] = { 0xE0, 0xAE, 0xAA, 0xE0, 0xAE, 0x9F, 0xE0, 0xAF, 0x81 };
+static const symbol s_22_1[24] = { 0xE0, 0xAE, 0x95, 0xE0, 0xAF, 0x8A, 0xE0, 0xAE, 0xA3, 0xE0, 0xAF, 0x8D, 0xE0, 0xAE, 0x9F, 0xE0, 0xAE, 0xBF, 0xE0, 0xAE, 0xB0, 0xE0, 0xAF, 0x8D };
+
+static const struct among a_22[2] =
+{
+{ 9, s_22_0, -1, -1, 0},
+{ 24, s_22_1, -1, -1, 0}
+};
+
+static const symbol s_23_0[3] = { 0xE0, 0xAE, 0x85 };
+static const symbol s_23_1[3] = { 0xE0, 0xAE, 0x86 };
+static const symbol s_23_2[3] = { 0xE0, 0xAE, 0x87 };
+static const symbol s_23_3[3] = { 0xE0, 0xAE, 0x88 };
+static const symbol s_23_4[3] = { 0xE0, 0xAE, 0x89 };
+static const symbol s_23_5[3] = { 0xE0, 0xAE, 0x8A };
+static const symbol s_23_6[3] = { 0xE0, 0xAE, 0x8E };
+static const symbol s_23_7[3] = { 0xE0, 0xAE, 0x8F };
+static const symbol s_23_8[3] = { 0xE0, 0xAE, 0x90 };
+static const symbol s_23_9[3] = { 0xE0, 0xAE, 0x92 };
+static const symbol s_23_10[3] = { 0xE0, 0xAE, 0x93 };
+static const symbol s_23_11[3] = { 0xE0, 0xAE, 0x94 };
+
+static const struct among a_23[12] =
+{
+{ 3, s_23_0, -1, -1, 0},
+{ 3, s_23_1, -1, -1, 0},
+{ 3, s_23_2, -1, -1, 0},
+{ 3, s_23_3, -1, -1, 0},
+{ 3, s_23_4, -1, -1, 0},
+{ 3, s_23_5, -1, -1, 0},
+{ 3, s_23_6, -1, -1, 0},
+{ 3, s_23_7, -1, -1, 0},
+{ 3, s_23_8, -1, -1, 0},
+{ 3, s_23_9, -1, -1, 0},
+{ 3, s_23_10, -1, -1, 0},
+{ 3, s_23_11, -1, -1, 0}
+};
+
+static const symbol s_24_0[3] = { 0xE0, 0xAF, 0x80 };
+static const symbol s_24_1[3] = { 0xE0, 0xAF, 0x81 };
+static const symbol s_24_2[3] = { 0xE0, 0xAF, 0x82 };
+static const symbol s_24_3[3] = { 0xE0, 0xAF, 0x86 };
+static const symbol s_24_4[3] = { 0xE0, 0xAF, 0x87 };
+static const symbol s_24_5[3] = { 0xE0, 0xAF, 0x88 };
+static const symbol s_24_6[3] = { 0xE0, 0xAE, 0xBE };
+static const symbol s_24_7[3] = { 0xE0, 0xAE, 0xBF };
+
+static const struct among a_24[8] =
+{
+{ 3, s_24_0, -1, -1, 0},
+{ 3, s_24_1, -1, -1, 0},
+{ 3, s_24_2, -1, -1, 0},
+{ 3, s_24_3, -1, -1, 0},
+{ 3, s_24_4, -1, -1, 0},
+{ 3, s_24_5, -1, -1, 0},
+{ 3, s_24_6, -1, -1, 0},
+{ 3, s_24_7, -1, -1, 0}
+};
+
+static const symbol s_25_0[18] = { 0xE0, 0xAE, 0x95, 0xE0, 0xAE, 0xBF, 0xE0, 0xAE, 0xA9, 0xE0, 0xAF, 0x8D, 0xE0, 0xAE, 0xB1, 0xE0, 0xAF, 0x8D };
+static const symbol s_25_1[21] = { 0xE0, 0xAE, 0xBE, 0xE0, 0xAE, 0xA8, 0xE0, 0xAE, 0xBF, 0xE0, 0xAE, 0xA9, 0xE0, 0xAF, 0x8D, 0xE0, 0xAE, 0xB1, 0xE0, 0xAF, 0x8D };
+static const symbol s_25_2[12] = { 0xE0, 0xAE, 0x95, 0xE0, 0xAE, 0xBF, 0xE0, 0xAE, 0xB1, 0xE0, 0xAF, 0x8D };
+static const symbol s_25_3[15] = { 0xE0, 0xAE, 0x95, 0xE0, 0xAE, 0xBF, 0xE0, 0xAE, 0xA9, 0xE0, 0xAF, 0x8D, 0xE0, 0xAE, 0xB1 };
+static const symbol s_25_4[18] = { 0xE0, 0xAE, 0xBE, 0xE0, 0xAE, 0xA8, 0xE0, 0xAE, 0xBF, 0xE0, 0xAE, 0xA9, 0xE0, 0xAF, 0x8D, 0xE0, 0xAE, 0xB1 };
+static const symbol s_25_5[9] = { 0xE0, 0xAE, 0x95, 0xE0, 0xAE, 0xBF, 0xE0, 0xAE, 0xB1 };
+
+static const struct among a_25[6] =
+{
+{ 18, s_25_0, -1, -1, 0},
+{ 21, s_25_1, -1, -1, 0},
+{ 12, s_25_2, -1, -1, 0},
+{ 15, s_25_3, -1, -1, 0},
+{ 18, s_25_4, -1, -1, 0},
+{ 9, s_25_5, -1, -1, 0}
+};
+
+static const symbol s_0[] = { 0xE0, 0xAE, 0xB5, 0xE0, 0xAF, 0x8B };
+static const symbol s_1[] = { 0xE0, 0xAE, 0xB5, 0xE0, 0xAF, 0x8B };
+static const symbol s_2[] = { 0xE0, 0xAE, 0x93 };
+static const symbol s_3[] = { 0xE0, 0xAE, 0xB5, 0xE0, 0xAF, 0x8A };
+static const symbol s_4[] = { 0xE0, 0xAE, 0xB5, 0xE0, 0xAF, 0x8A };
+static const symbol s_5[] = { 0xE0, 0xAE, 0x92 };
+static const symbol s_6[] = { 0xE0, 0xAE, 0xB5, 0xE0, 0xAF, 0x81 };
+static const symbol s_7[] = { 0xE0, 0xAE, 0xB5, 0xE0, 0xAF, 0x81 };
+static const symbol s_8[] = { 0xE0, 0xAE, 0x89 };
+static const symbol s_9[] = { 0xE0, 0xAE, 0xB5, 0xE0, 0xAF, 0x82 };
+static const symbol s_10[] = { 0xE0, 0xAE, 0xB5, 0xE0, 0xAF, 0x82 };
+static const symbol s_11[] = { 0xE0, 0xAE, 0x8A };
+static const symbol s_12[] = { 0xE0, 0xAE, 0x8E };
+static const symbol s_13[] = { 0xE0, 0xAF, 0x8D };
+static const symbol s_14[] = { 0xE0, 0xAE, 0xAF, 0xE0, 0xAF, 0x8D };
+static const symbol s_15[] = { 0xE0, 0xAE, 0x9F, 0xE0, 0xAF, 0x8D, 0xE0, 0xAE, 0xAA, 0xE0, 0xAF, 0x8D };
+static const symbol s_16[] = { 0xE0, 0xAE, 0x9F, 0xE0, 0xAF, 0x8D, 0xE0, 0xAE, 0x95, 0xE0, 0xAF, 0x8D };
+static const symbol s_17[] = { 0xE0, 0xAE, 0xB3, 0xE0, 0xAF, 0x8D };
+static const symbol s_18[] = { 0xE0, 0xAE, 0xA9, 0xE0, 0xAF, 0x8D, 0xE0, 0xAE, 0xB1, 0xE0, 0xAF, 0x8D };
+static const symbol s_19[] = { 0xE0, 0xAE, 0xB2, 0xE0, 0xAF, 0x8D };
+static const symbol s_20[] = { 0xE0, 0xAE, 0xB1, 0xE0, 0xAF, 0x8D, 0xE0, 0xAE, 0x95, 0xE0, 0xAF, 0x8D };
+static const symbol s_21[] = { 0xE0, 0xAE, 0xB2, 0xE0, 0xAF, 0x8D };
+static const symbol s_22[] = { 0xE0, 0xAE, 0x9F, 0xE0, 0xAF, 0x8D, 0xE0, 0xAE, 0x9F, 0xE0, 0xAF, 0x8D };
+static const symbol s_23[] = { 0xE0, 0xAE, 0x9F, 0xE0, 0xAF, 0x81 };
+static const symbol s_24[] = { 0xE0, 0xAE, 0xA4, 0xE0, 0xAF, 0x8D, 0xE0, 0xAE, 0xA4, 0xE0, 0xAF, 0x8D };
+static const symbol s_25[] = { 0xE0, 0xAF, 0x88 };
+static const symbol s_26[] = { 0xE0, 0xAE, 0xAE, 0xE0, 0xAF, 0x8D };
+static const symbol s_27[] = { 0xE0, 0xAF, 0x81, 0xE0, 0xAE, 0x95, 0xE0, 0xAF, 0x8D };
+static const symbol s_28[] = { 0xE0, 0xAF, 0x81, 0xE0, 0xAE, 0x95, 0xE0, 0xAF, 0x8D, 0xE0, 0xAE, 0x95, 0xE0, 0xAF, 0x8D };
+static const symbol s_29[] = { 0xE0, 0xAF, 0x8D };
+static const symbol s_30[] = { 0xE0, 0xAF, 0x8D };
+static const symbol s_31[] = { 0xE0, 0xAF, 0x8D };
+static const symbol s_32[] = { 0xE0, 0xAF, 0x81, 0xE0, 0xAE, 0x95, 0xE0, 0xAF, 0x8D };
+static const symbol s_33[] = { 0xE0, 0xAF, 0x8D };
+static const symbol s_34[] = { 0xE0, 0xAF, 0x8D };
+static const symbol s_35[] = { 0xE0, 0xAF, 0x8D };
+static const symbol s_36[] = { 0xE0, 0xAF, 0x8D };
+static const symbol s_37[] = { 0xE0, 0xAF, 0x8D };
+static const symbol s_38[] = { 0xE0, 0xAE, 0xA9, 0xE0, 0xAF, 0x81 };
+static const symbol s_39[] = { 0xE0, 0xAE, 0x99, 0xE0, 0xAF, 0x8D };
+static const symbol s_40[] = { 0xE0, 0xAF, 0x88 };
+static const symbol s_41[] = { 0xE0, 0xAE, 0xAE, 0xE0, 0xAF, 0x8D };
+static const symbol s_42[] = { 0xE0, 0xAE, 0x99, 0xE0, 0xAF, 0x8D };
+static const symbol s_43[] = { 0xE0, 0xAF, 0x8D };
+static const symbol s_44[] = { 0xE0, 0xAF, 0x8D };
+static const symbol s_45[] = { 0xE0, 0xAF, 0x8D };
+static const symbol s_46[] = { 0xE0, 0xAF, 0x81, 0xE0, 0xAE, 0x99, 0xE0, 0xAF, 0x8D, 0xE0, 0xAE, 0x95, 0xE0, 0xAE, 0xB3, 0xE0, 0xAF, 0x8D };
+static const symbol s_47[] = { 0xE0, 0xAF, 0x8D };
+static const symbol s_48[] = { 0xE0, 0xAE, 0xB1, 0xE0, 0xAF, 0x8D, 0xE0, 0xAE, 0x95, 0xE0, 0xAE, 0xB3, 0xE0, 0xAF, 0x8D };
+static const symbol s_49[] = { 0xE0, 0xAE, 0xB2, 0xE0, 0xAF, 0x8D };
+static const symbol s_50[] = { 0xE0, 0xAE, 0x9F, 0xE0, 0xAF, 0x8D, 0xE0, 0xAE, 0x95, 0xE0, 0xAE, 0xB3, 0xE0, 0xAF, 0x8D };
+static const symbol s_51[] = { 0xE0, 0xAE, 0xB3, 0xE0, 0xAF, 0x8D };
+static const symbol s_52[] = { 0xE0, 0xAE, 0x95, 0xE0, 0xAE, 0xB3, 0xE0, 0xAF, 0x8D };
+static const symbol s_53[] = { 0xE0, 0xAF, 0x8D };
+static const symbol s_54[] = { 0xE0, 0xAF, 0x81, 0xE0, 0xAE, 0xAE, 0xE0, 0xAF, 0x8D };
+static const symbol s_55[] = { 0xE0, 0xAF, 0x8D };
+static const symbol s_56[] = { 0xE0, 0xAF, 0x81, 0xE0, 0xAE, 0x9F, 0xE0, 0xAE, 0xA9, 0xE0, 0xAF, 0x8D };
+static const symbol s_57[] = { 0xE0, 0xAE, 0xBF, 0xE0, 0xAE, 0xB2, 0xE0, 0xAF, 0x8D, 0xE0, 0xAE, 0xB2, 0xE0, 0xAF, 0x88 };
+static const symbol s_58[] = { 0xE0, 0xAE, 0xBF, 0xE0, 0xAE, 0x9F, 0xE0, 0xAE, 0xAE, 0xE0, 0xAF, 0x8D };
+static const symbol s_59[] = { 0xE0, 0xAE, 0xBF, 0xE0, 0xAE, 0xA9, 0xE0, 0xAF, 0x8D, 0xE0, 0xAE, 0xB1, 0xE0, 0xAE, 0xBF };
+static const symbol s_60[] = { 0xE0, 0xAE, 0xBE, 0xE0, 0xAE, 0x95, 0xE0, 0xAE, 0xBF };
+static const symbol s_61[] = { 0xE0, 0xAE, 0xBE, 0xE0, 0xAE, 0x95, 0xE0, 0xAE, 0xBF, 0xE0, 0xAE, 0xAF };
+static const symbol s_62[] = { 0xE0, 0xAF, 0x86, 0xE0, 0xAE, 0xA9, 0xE0, 0xAF, 0x8D, 0xE0, 0xAE, 0xB1, 0xE0, 0xAF, 0x81 };
+static const symbol s_63[] = { 0xE0, 0xAF, 0x81, 0xE0, 0xAE, 0xB3, 0xE0, 0xAF, 0x8D, 0xE0, 0xAE, 0xB3 };
+static const symbol s_64[] = { 0xE0, 0xAF, 0x81, 0xE0, 0xAE, 0x9F, 0xE0, 0xAF, 0x88, 0xE0, 0xAE, 0xAF };
+static const symbol s_65[] = { 0xE0, 0xAF, 0x81, 0xE0, 0xAE, 0x9F, 0xE0, 0xAF, 0x88 };
+static const symbol s_66[] = { 0xE0, 0xAF, 0x86, 0xE0, 0xAE, 0xA9, 0xE0, 0xAF, 0x81, 0xE0, 0xAE, 0xAE, 0xE0, 0xAF, 0x8D };
+static const symbol s_67[] = { 0xE0, 0xAE, 0xB2, 0xE0, 0xAF, 0x8D, 0xE0, 0xAE, 0xB2 };
+static const symbol s_68[] = { 0xE0, 0xAF, 0x86, 0xE0, 0xAE, 0xA9 };
+static const symbol s_69[] = { 0xE0, 0xAE, 0xBE, 0xE0, 0xAE, 0x95, 0xE0, 0xAE, 0xBF };
+static const symbol s_70[] = { 0xE0, 0xAF, 0x8D };
+static const symbol s_71[] = { 0xE0, 0xAE, 0xA9, 0xE0, 0xAF, 0x88 };
+static const symbol s_72[] = { 0xE0, 0xAE, 0xBF, 0xE0, 0xAE, 0xA9, 0xE0, 0xAF, 0x88 };
+static const symbol s_73[] = { 0xE0, 0xAF, 0x88 };
+static const symbol s_74[] = { 0xE0, 0xAF, 0x88 };
+static const symbol s_75[] = { 0xE0, 0xAF, 0x8D };
+static const symbol s_76[] = { 0xE0, 0xAF, 0x8D };
+static const symbol s_77[] = { 0xE0, 0xAF, 0x8A, 0xE0, 0xAE, 0x9F, 0xE0, 0xAF, 0x81 };
+static const symbol s_78[] = { 0xE0, 0xAF, 0x8B, 0xE0, 0xAE, 0x9F, 0xE0, 0xAF, 0x81 };
+static const symbol s_79[] = { 0xE0, 0xAE, 0xBF, 0xE0, 0xAE, 0xB2, 0xE0, 0xAF, 0x8D };
+static const symbol s_80[] = { 0xE0, 0xAE, 0xBF, 0xE0, 0xAE, 0xB1, 0xE0, 0xAF, 0x8D };
+static const symbol s_81[] = { 0xE0, 0xAE, 0xBF, 0xE0, 0xAE, 0xA9, 0xE0, 0xAF, 0x8D };
+static const symbol s_82[] = { 0xE0, 0xAE, 0xAE };
+static const symbol s_83[] = { 0xE0, 0xAE, 0xBF, 0xE0, 0xAE, 0xA9, 0xE0, 0xAF, 0x8D, 0xE0, 0xAE, 0xB1, 0xE0, 0xAF, 0x81 };
+static const symbol s_84[] = { 0xE0, 0xAE, 0xBF, 0xE0, 0xAE, 0xB0, 0xE0, 0xAF, 0x81, 0xE0, 0xAE, 0xA8, 0xE0, 0xAF, 0x8D, 0xE0, 0xAE, 0xA4, 0xE0, 0xAF, 0x81 };
+static const symbol s_85[] = { 0xE0, 0xAE, 0xB5, 0xE0, 0xAE, 0xBF, 0xE0, 0xAE, 0x9F };
+static const symbol s_86[] = { 0xE0, 0xAE, 0xBF, 0xE0, 0xAE, 0x9F, 0xE0, 0xAE, 0xAE, 0xE0, 0xAF, 0x8D };
+static const symbol s_87[] = { 0xE0, 0xAE, 0xBE, 0xE0, 0xAE, 0xB2, 0xE0, 0xAF, 0x8D };
+static const symbol s_88[] = { 0xE0, 0xAF, 0x81, 0xE0, 0xAE, 0x9F, 0xE0, 0xAF, 0x88 };
+static const symbol s_89[] = { 0xE0, 0xAE, 0xBE, 0xE0, 0xAE, 0xAE, 0xE0, 0xAE, 0xB2, 0xE0, 0xAF, 0x8D };
+static const symbol s_90[] = { 0xE0, 0xAE, 0xB2, 0xE0, 0xAF, 0x8D };
+static const symbol s_91[] = { 0xE0, 0xAF, 0x81, 0xE0, 0xAE, 0xB3, 0xE0, 0xAF, 0x8D };
+static const symbol s_92[] = { 0xE0, 0xAF, 0x8D };
+static const symbol s_93[] = { 0xE0, 0xAE, 0x95, 0xE0, 0xAE, 0xA3, 0xE0, 0xAF, 0x8D };
+static const symbol s_94[] = { 0xE0, 0xAE, 0xAE, 0xE0, 0xAF, 0x81, 0xE0, 0xAE, 0xA9, 0xE0, 0xAF, 0x8D };
+static const symbol s_95[] = { 0xE0, 0xAE, 0xAE, 0xE0, 0xAF, 0x87, 0xE0, 0xAE, 0xB2, 0xE0, 0xAF, 0x8D };
+static const symbol s_96[] = { 0xE0, 0xAE, 0xAE, 0xE0, 0xAF, 0x87, 0xE0, 0xAE, 0xB1, 0xE0, 0xAF, 0x8D };
+static const symbol s_97[] = { 0xE0, 0xAE, 0x95, 0xE0, 0xAF, 0x80, 0xE0, 0xAE, 0xB4, 0xE0, 0xAF, 0x8D };
+static const symbol s_98[] = { 0xE0, 0xAE, 0xAA, 0xE0, 0xAE, 0xBF, 0xE0, 0xAE, 0xA9, 0xE0, 0xAF, 0x8D };
+static const symbol s_99[] = { 0xE0, 0xAE, 0xA4, 0xE0, 0xAF, 0x81 };
+static const symbol s_100[] = { 0xE0, 0xAF, 0x80 };
+static const symbol s_101[] = { 0xE0, 0xAE, 0xBF };
+static const symbol s_102[] = { 0xE0, 0xAE, 0xBF, 0xE0, 0xAE, 0xA9, 0xE0, 0xAF, 0x8D };
+static const symbol s_103[] = { 0xE0, 0xAF, 0x8D };
+static const symbol s_104[] = { 0xE0, 0xAE, 0xAE, 0xE0, 0xAE, 0xBE, 0xE0, 0xAE, 0xB0, 0xE0, 0xAF, 0x8D };
+static const symbol s_105[] = { 0xE0, 0xAE, 0xAE, 0xE0, 0xAE, 0xBF, 0xE0, 0xAE, 0xA9, 0xE0, 0xAF, 0x8D };
+static const symbol s_106[] = { 0xE0, 0xAE, 0xA9, 0xE0, 0xAE, 0xA9, 0xE0, 0xAF, 0x8D };
+static const symbol s_107[] = { 0xE0, 0xAE, 0xA9, 0xE0, 0xAE, 0xBE, 0xE0, 0xAE, 0xA9, 0xE0, 0xAF, 0x8D };
+static const symbol s_108[] = { 0xE0, 0xAE, 0xA9, 0xE0, 0xAE, 0xBE, 0xE0, 0xAE, 0xB3, 0xE0, 0xAF, 0x8D };
+static const symbol s_109[] = { 0xE0, 0xAE, 0xA9, 0xE0, 0xAE, 0xBE, 0xE0, 0xAE, 0xB0, 0xE0, 0xAF, 0x8D };
+static const symbol s_110[] = { 0xE0, 0xAE, 0xB5, 0xE0, 0xAE, 0xA9, 0xE0, 0xAF, 0x8D };
+static const symbol s_111[] = { 0xE0, 0xAE, 0xA9, 0xE0, 0xAE, 0xB3, 0xE0, 0xAF, 0x8D };
+static const symbol s_112[] = { 0xE0, 0xAE, 0xB5, 0xE0, 0xAE, 0xB3, 0xE0, 0xAF, 0x8D };
+static const symbol s_113[] = { 0xE0, 0xAE, 0xA9, 0xE0, 0xAE, 0xB0, 0xE0, 0xAF, 0x8D };
+static const symbol s_114[] = { 0xE0, 0xAE, 0xB5, 0xE0, 0xAE, 0xB0, 0xE0, 0xAF, 0x8D };
+static const symbol s_115[] = { 0xE0, 0xAE, 0xA9 };
+static const symbol s_116[] = { 0xE0, 0xAE, 0xAA };
+static const symbol s_117[] = { 0xE0, 0xAE, 0x95 };
+static const symbol s_118[] = { 0xE0, 0xAE, 0xA4 };
+static const symbol s_119[] = { 0xE0, 0xAE, 0xAF };
+static const symbol s_120[] = { 0xE0, 0xAE, 0xAA, 0xE0, 0xAE, 0xA9, 0xE0, 0xAF, 0x8D };
+static const symbol s_121[] = { 0xE0, 0xAE, 0xAA, 0xE0, 0xAE, 0xB3, 0xE0, 0xAF, 0x8D };
+static const symbol s_122[] = { 0xE0, 0xAE, 0xAA, 0xE0, 0xAE, 0xB0, 0xE0, 0xAF, 0x8D };
+static const symbol s_123[] = { 0xE0, 0xAE, 0xA4, 0xE0, 0xAF, 0x81 };
+static const symbol s_124[] = { 0xE0, 0xAE, 0xBF, 0xE0, 0xAE, 0xB1, 0xE0, 0xAF, 0x8D, 0xE0, 0xAE, 0xB1, 0xE0, 0xAF, 0x81 };
+static const symbol s_125[] = { 0xE0, 0xAE, 0xAA, 0xE0, 0xAE, 0xAE, 0xE0, 0xAF, 0x8D };
+static const symbol s_126[] = { 0xE0, 0xAE, 0xA9, 0xE0, 0xAE, 0xAE, 0xE0, 0xAF, 0x8D };
+static const symbol s_127[] = { 0xE0, 0xAE, 0xA4, 0xE0, 0xAF, 0x81, 0xE0, 0xAE, 0xAE, 0xE0, 0xAF, 0x8D };
+static const symbol s_128[] = { 0xE0, 0xAE, 0xB1, 0xE0, 0xAF, 0x81, 0xE0, 0xAE, 0xAE, 0xE0, 0xAF, 0x8D };
+static const symbol s_129[] = { 0xE0, 0xAE, 0x95, 0xE0, 0xAF, 0x81, 0xE0, 0xAE, 0xAE, 0xE0, 0xAF, 0x8D };
+static const symbol s_130[] = { 0xE0, 0xAE, 0xA9, 0xE0, 0xAF, 0x86, 0xE0, 0xAE, 0xA9, 0xE0, 0xAF, 0x8D };
+static const symbol s_131[] = { 0xE0, 0xAE, 0xA9, 0xE0, 0xAF, 0x88 };
+static const symbol s_132[] = { 0xE0, 0xAE, 0xB5, 0xE0, 0xAF, 0x88 };
+static const symbol s_133[] = { 0xE0, 0xAE, 0xBE, 0xE0, 0xAE, 0xA9, 0xE0, 0xAF, 0x8D };
+static const symbol s_134[] = { 0xE0, 0xAE, 0x9A };
+static const symbol s_135[] = { 0xE0, 0xAE, 0xBE, 0xE0, 0xAE, 0xB3, 0xE0, 0xAF, 0x8D };
+static const symbol s_136[] = { 0xE0, 0xAE, 0xBE, 0xE0, 0xAE, 0xB0, 0xE0, 0xAF, 0x8D };
+static const symbol s_137[] = { 0xE0, 0xAF, 0x87, 0xE0, 0xAE, 0xA9, 0xE0, 0xAF, 0x8D };
+static const symbol s_138[] = { 0xE0, 0xAE, 0xBE };
+static const symbol s_139[] = { 0xE0, 0xAE, 0xBE, 0xE0, 0xAE, 0xAE, 0xE0, 0xAF, 0x8D };
+static const symbol s_140[] = { 0xE0, 0xAF, 0x86, 0xE0, 0xAE, 0xAE, 0xE0, 0xAF, 0x8D };
+static const symbol s_141[] = { 0xE0, 0xAF, 0x87, 0xE0, 0xAE, 0xAE, 0xE0, 0xAF, 0x8D };
+static const symbol s_142[] = { 0xE0, 0xAF, 0x8B, 0xE0, 0xAE, 0xAE, 0xE0, 0xAF, 0x8D };
+static const symbol s_143[] = { 0xE0, 0xAE, 0x95, 0xE0, 0xAF, 0x81, 0xE0, 0xAE, 0xAE, 0xE0, 0xAF, 0x8D };
+static const symbol s_144[] = { 0xE0, 0xAE, 0xA4, 0xE0, 0xAF, 0x81, 0xE0, 0xAE, 0xAE, 0xE0, 0xAF, 0x8D };
+static const symbol s_145[] = { 0xE0, 0xAE, 0x9F, 0xE0, 0xAF, 0x81, 0xE0, 0xAE, 0xAE, 0xE0, 0xAF, 0x8D };
+static const symbol s_146[] = { 0xE0, 0xAE, 0xB1, 0xE0, 0xAF, 0x81, 0xE0, 0xAE, 0xAE, 0xE0, 0xAF, 0x8D };
+static const symbol s_147[] = { 0xE0, 0xAE, 0xBE, 0xE0, 0xAE, 0xAF, 0xE0, 0xAF, 0x8D };
+static const symbol s_148[] = { 0xE0, 0xAE, 0xA9, 0xE0, 0xAF, 0x86, 0xE0, 0xAE, 0xA9, 0xE0, 0xAF, 0x8D };
+static const symbol s_149[] = { 0xE0, 0xAE, 0xA9, 0xE0, 0xAE, 0xBF, 0xE0, 0xAE, 0xB0, 0xE0, 0xAF, 0x8D };
+static const symbol s_150[] = { 0xE0, 0xAF, 0x80, 0xE0, 0xAE, 0xB0, 0xE0, 0xAF, 0x8D };
+static const symbol s_151[] = { 0xE0, 0xAF, 0x80, 0xE0, 0xAE, 0xAF, 0xE0, 0xAE, 0xB0, 0xE0, 0xAF, 0x8D };
+static const symbol s_152[] = { 0xE0, 0xAF, 0x8D };
+static const symbol s_153[] = { 0xE0, 0xAE, 0x95, 0xE0, 0xAF, 0x81 };
+static const symbol s_154[] = { 0xE0, 0xAE, 0xA4, 0xE0, 0xAF, 0x81 };
+static const symbol s_155[] = { 0xE0, 0xAF, 0x8D };
+
+static int r_has_min_length(struct SN_env * z) {
+ if (!(len_utf8(z->p) > 4)) return 0;
+ return 1;
+}
+
+static int r_fix_va_start(struct SN_env * z) {
+ { int c1 = z->c;
+ { int c2 = z->c;
+ { int c3 = z->c;
+ if (!(eq_s(z, 6, s_0))) { z->c = c3; goto lab2; }
+ lab2:
+ ;
+ }
+ z->c = c2;
+ z->bra = z->c;
+ }
+ if (!(eq_s(z, 6, s_1))) goto lab1;
+ z->ket = z->c;
+ { int ret = slice_from_s(z, 3, s_2);
+ if (ret < 0) return ret;
+ }
+ goto lab0;
+ lab1:
+ z->c = c1;
+ { int c4 = z->c;
+ { int c5 = z->c;
+ if (!(eq_s(z, 6, s_3))) { z->c = c5; goto lab4; }
+ lab4:
+ ;
+ }
+ z->c = c4;
+ z->bra = z->c;
+ }
+ if (!(eq_s(z, 6, s_4))) goto lab3;
+ z->ket = z->c;
+ { int ret = slice_from_s(z, 3, s_5);
+ if (ret < 0) return ret;
+ }
+ goto lab0;
+ lab3:
+ z->c = c1;
+ { int c6 = z->c;
+ { int c7 = z->c;
+ if (!(eq_s(z, 6, s_6))) { z->c = c7; goto lab6; }
+ lab6:
+ ;
+ }
+ z->c = c6;
+ z->bra = z->c;
+ }
+ if (!(eq_s(z, 6, s_7))) goto lab5;
+ z->ket = z->c;
+ { int ret = slice_from_s(z, 3, s_8);
+ if (ret < 0) return ret;
+ }
+ goto lab0;
+ lab5:
+ z->c = c1;
+ { int c8 = z->c;
+ { int c9 = z->c;
+ if (!(eq_s(z, 6, s_9))) { z->c = c9; goto lab7; }
+ lab7:
+ ;
+ }
+ z->c = c8;
+ z->bra = z->c;
+ }
+ if (!(eq_s(z, 6, s_10))) return 0;
+ z->ket = z->c;
+ { int ret = slice_from_s(z, 3, s_11);
+ if (ret < 0) return ret;
+ }
+ }
+lab0:
+ return 1;
+}
+
+static int r_fix_endings(struct SN_env * z) {
+ { int c1 = z->c;
+ while(1) {
+ int c2 = z->c;
+ { int ret = r_fix_ending(z);
+ if (ret == 0) goto lab1;
+ if (ret < 0) return ret;
+ }
+ continue;
+ lab1:
+ z->c = c2;
+ break;
+ }
+ z->c = c1;
+ }
+ return 1;
+}
+
+static int r_remove_question_prefixes(struct SN_env * z) {
+ z->bra = z->c;
+ if (!(eq_s(z, 3, s_12))) return 0;
+ if (!(find_among(z, a_0, 10))) return 0;
+ if (!(eq_s(z, 3, s_13))) return 0;
+ z->ket = z->c;
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ { int c1 = z->c;
+ { int ret = r_fix_va_start(z);
+ if (ret < 0) return ret;
+ }
+ z->c = c1;
+ }
+ return 1;
+}
+
+static int r_fix_ending(struct SN_env * z) {
+ if (!(len_utf8(z->p) > 3)) return 0;
+ z->lb = z->c; z->c = z->l;
+
+ { int m1 = z->l - z->c; (void)m1;
+ z->ket = z->c;
+ if (z->c - 5 <= z->lb || (z->p[z->c - 1] != 141 && z->p[z->c - 1] != 164)) goto lab1;
+ if (!(find_among_b(z, a_1, 3))) goto lab1;
+ z->bra = z->c;
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ goto lab0;
+ lab1:
+ z->c = z->l - m1;
+ z->ket = z->c;
+ if (!(eq_s_b(z, 6, s_14))) goto lab2;
+ { int m_test2 = z->l - z->c;
+ if (!(find_among_b(z, a_2, 3))) goto lab2;
+ z->c = z->l - m_test2;
+ }
+ z->bra = z->c;
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ goto lab0;
+ lab2:
+ z->c = z->l - m1;
+ z->ket = z->c;
+ { int m3 = z->l - z->c; (void)m3;
+ if (!(eq_s_b(z, 12, s_15))) goto lab5;
+ goto lab4;
+ lab5:
+ z->c = z->l - m3;
+ if (!(eq_s_b(z, 12, s_16))) goto lab3;
+ }
+ lab4:
+ z->bra = z->c;
+ { int ret = slice_from_s(z, 6, s_17);
+ if (ret < 0) return ret;
+ }
+ goto lab0;
+ lab3:
+ z->c = z->l - m1;
+ z->ket = z->c;
+ if (!(eq_s_b(z, 12, s_18))) goto lab6;
+ z->bra = z->c;
+ { int ret = slice_from_s(z, 6, s_19);
+ if (ret < 0) return ret;
+ }
+ goto lab0;
+ lab6:
+ z->c = z->l - m1;
+ z->ket = z->c;
+ if (!(eq_s_b(z, 12, s_20))) goto lab7;
+ z->bra = z->c;
+ { int ret = slice_from_s(z, 6, s_21);
+ if (ret < 0) return ret;
+ }
+ goto lab0;
+ lab7:
+ z->c = z->l - m1;
+ z->ket = z->c;
+ if (!(eq_s_b(z, 12, s_22))) goto lab8;
+ z->bra = z->c;
+ { int ret = slice_from_s(z, 6, s_23);
+ if (ret < 0) return ret;
+ }
+ goto lab0;
+ lab8:
+ z->c = z->l - m1;
+ if (!(z->I[0])) goto lab9;
+ z->ket = z->c;
+ if (!(eq_s_b(z, 12, s_24))) goto lab9;
+ { int m_test4 = z->l - z->c;
+ { int m5 = z->l - z->c; (void)m5;
+ if (!(eq_s_b(z, 3, s_25))) goto lab10;
+ goto lab9;
+ lab10:
+ z->c = z->l - m5;
+ }
+ z->c = z->l - m_test4;
+ }
+ z->bra = z->c;
+ { int ret = slice_from_s(z, 6, s_26);
+ if (ret < 0) return ret;
+ }
+ z->bra = z->c;
+ goto lab0;
+ lab9:
+ z->c = z->l - m1;
+ z->ket = z->c;
+ { int m6 = z->l - z->c; (void)m6;
+ if (!(eq_s_b(z, 9, s_27))) goto lab13;
+ goto lab12;
+ lab13:
+ z->c = z->l - m6;
+ if (!(eq_s_b(z, 15, s_28))) goto lab11;
+ }
+ lab12:
+ z->bra = z->c;
+ { int ret = slice_from_s(z, 3, s_29);
+ if (ret < 0) return ret;
+ }
+ goto lab0;
+ lab11:
+ z->c = z->l - m1;
+ z->ket = z->c;
+ if (!(eq_s_b(z, 3, s_30))) goto lab14;
+ if (!(find_among_b(z, a_3, 6))) goto lab14;
+ if (!(eq_s_b(z, 3, s_31))) goto lab14;
+ if (!(find_among_b(z, a_4, 6))) goto lab14;
+ z->bra = z->c;
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ goto lab0;
+ lab14:
+ z->c = z->l - m1;
+ z->ket = z->c;
+ if (!(eq_s_b(z, 9, s_32))) goto lab15;
+ z->bra = z->c;
+ { int ret = slice_from_s(z, 3, s_33);
+ if (ret < 0) return ret;
+ }
+ goto lab0;
+ lab15:
+ z->c = z->l - m1;
+ z->ket = z->c;
+ if (!(eq_s_b(z, 3, s_34))) goto lab16;
+ if (!(find_among_b(z, a_5, 6))) goto lab16;
+ z->bra = z->c;
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ goto lab0;
+ lab16:
+ z->c = z->l - m1;
+ z->ket = z->c;
+ if (!(eq_s_b(z, 3, s_35))) goto lab17;
+ { int m7 = z->l - z->c; (void)m7;
+ if (z->c - 2 <= z->lb || z->p[z->c - 1] >> 5 != 5 || !((4030464 >> (z->p[z->c - 1] & 0x1f)) & 1)) goto lab19;
+ if (!(find_among_b(z, a_6, 6))) goto lab19;
+ goto lab18;
+ lab19:
+ z->c = z->l - m7;
+ if (!(find_among_b(z, a_7, 6))) goto lab17;
+ }
+ lab18:
+ if (!(eq_s_b(z, 3, s_36))) goto lab17;
+ z->bra = z->c;
+ { int ret = slice_from_s(z, 3, s_37);
+ if (ret < 0) return ret;
+ }
+ goto lab0;
+ lab17:
+ z->c = z->l - m1;
+ z->ket = z->c;
+ if (!(find_among_b(z, a_8, 3))) goto lab20;
+ z->bra = z->c;
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ goto lab0;
+ lab20:
+ z->c = z->l - m1;
+ z->ket = z->c;
+ if (!(eq_s_b(z, 6, s_38))) goto lab21;
+ { int m_test8 = z->l - z->c;
+ { int m9 = z->l - z->c; (void)m9;
+ if (!(find_among_b(z, a_9, 8))) goto lab22;
+ goto lab21;
+ lab22:
+ z->c = z->l - m9;
+ }
+ z->c = z->l - m_test8;
+ }
+ z->bra = z->c;
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ goto lab0;
+ lab21:
+ z->c = z->l - m1;
+ z->ket = z->c;
+ if (!(eq_s_b(z, 6, s_39))) goto lab23;
+ { int m_test10 = z->l - z->c;
+ { int m11 = z->l - z->c; (void)m11;
+ if (!(eq_s_b(z, 3, s_40))) goto lab24;
+ goto lab23;
+ lab24:
+ z->c = z->l - m11;
+ }
+ z->c = z->l - m_test10;
+ }
+ z->bra = z->c;
+ { int ret = slice_from_s(z, 6, s_41);
+ if (ret < 0) return ret;
+ }
+ goto lab0;
+ lab23:
+ z->c = z->l - m1;
+ z->ket = z->c;
+ if (!(eq_s_b(z, 6, s_42))) goto lab25;
+ z->bra = z->c;
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ goto lab0;
+ lab25:
+ z->c = z->l - m1;
+ z->ket = z->c;
+ if (!(eq_s_b(z, 3, s_43))) return 0;
+ { int m_test12 = z->l - z->c;
+ { int m13 = z->l - z->c; (void)m13;
+ if (!(find_among_b(z, a_10, 8))) goto lab27;
+ goto lab26;
+ lab27:
+ z->c = z->l - m13;
+ if (!(eq_s_b(z, 3, s_44))) return 0;
+ }
+ lab26:
+ z->c = z->l - m_test12;
+ }
+ z->bra = z->c;
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ }
+lab0:
+ z->c = z->lb;
+ return 1;
+}
+
+static int r_remove_pronoun_prefixes(struct SN_env * z) {
+ z->I[1] = 0;
+ z->bra = z->c;
+ if (z->c + 2 >= z->l || z->p[z->c + 2] >> 5 != 4 || !((672 >> (z->p[z->c + 2] & 0x1f)) & 1)) return 0;
+ if (!(find_among(z, a_11, 3))) return 0;
+ if (!(find_among(z, a_12, 10))) return 0;
+ if (!(eq_s(z, 3, s_45))) return 0;
+ z->ket = z->c;
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ z->I[1] = 1;
+ { int c1 = z->c;
+ { int ret = r_fix_va_start(z);
+ if (ret < 0) return ret;
+ }
+ z->c = c1;
+ }
+ return 1;
+}
+
+static int r_remove_plural_suffix(struct SN_env * z) {
+ z->I[1] = 0;
+ z->lb = z->c; z->c = z->l;
+
+ { int m1 = z->l - z->c; (void)m1;
+ z->ket = z->c;
+ if (!(eq_s_b(z, 18, s_46))) goto lab1;
+ { int m_test2 = z->l - z->c;
+ { int m3 = z->l - z->c; (void)m3;
+ if (!(find_among_b(z, a_13, 6))) goto lab2;
+ goto lab1;
+ lab2:
+ z->c = z->l - m3;
+ }
+ z->c = z->l - m_test2;
+ }
+ z->bra = z->c;
+ { int ret = slice_from_s(z, 3, s_47);
+ if (ret < 0) return ret;
+ }
+ goto lab0;
+ lab1:
+ z->c = z->l - m1;
+ z->ket = z->c;
+ if (!(eq_s_b(z, 15, s_48))) goto lab3;
+ z->bra = z->c;
+ { int ret = slice_from_s(z, 6, s_49);
+ if (ret < 0) return ret;
+ }
+ goto lab0;
+ lab3:
+ z->c = z->l - m1;
+ z->ket = z->c;
+ if (!(eq_s_b(z, 15, s_50))) goto lab4;
+ z->bra = z->c;
+ { int ret = slice_from_s(z, 6, s_51);
+ if (ret < 0) return ret;
+ }
+ goto lab0;
+ lab4:
+ z->c = z->l - m1;
+ z->ket = z->c;
+ if (!(eq_s_b(z, 9, s_52))) return 0;
+ z->bra = z->c;
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ }
+lab0:
+ z->I[1] = 1;
+ z->c = z->lb;
+ return 1;
+}
+
+static int r_remove_question_suffixes(struct SN_env * z) {
+ { int ret = r_has_min_length(z);
+ if (ret <= 0) return ret;
+ }
+ z->I[1] = 0;
+ z->lb = z->c; z->c = z->l;
+
+ { int m1 = z->l - z->c; (void)m1;
+ z->ket = z->c;
+ if (!(find_among_b(z, a_14, 3))) goto lab0;
+ z->bra = z->c;
+ { int ret = slice_from_s(z, 3, s_53);
+ if (ret < 0) return ret;
+ }
+ z->I[1] = 1;
+ lab0:
+ z->c = z->l - m1;
+ }
+ z->c = z->lb;
+
+ { int ret = r_fix_endings(z);
+ if (ret < 0) return ret;
+ }
+ return 1;
+}
+
+static int r_remove_command_suffixes(struct SN_env * z) {
+ { int ret = r_has_min_length(z);
+ if (ret <= 0) return ret;
+ }
+ z->I[1] = 0;
+ z->lb = z->c; z->c = z->l;
+
+ z->ket = z->c;
+ if (z->c - 5 <= z->lb || z->p[z->c - 1] != 191) return 0;
+ if (!(find_among_b(z, a_15, 2))) return 0;
+ z->bra = z->c;
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ z->I[1] = 1;
+ z->c = z->lb;
+ return 1;
+}
+
+static int r_remove_um(struct SN_env * z) {
+ z->I[1] = 0;
+ { int ret = r_has_min_length(z);
+ if (ret <= 0) return ret;
+ }
+ z->lb = z->c; z->c = z->l;
+
+ z->ket = z->c;
+ if (!(eq_s_b(z, 9, s_54))) return 0;
+ z->bra = z->c;
+ { int ret = slice_from_s(z, 3, s_55);
+ if (ret < 0) return ret;
+ }
+ z->I[1] = 1;
+ z->c = z->lb;
+ { int c1 = z->c;
+ { int ret = r_fix_ending(z);
+ if (ret < 0) return ret;
+ }
+ z->c = c1;
+ }
+ return 1;
+}
+
+static int r_remove_common_word_endings(struct SN_env * z) {
+ z->I[1] = 0;
+ { int ret = r_has_min_length(z);
+ if (ret <= 0) return ret;
+ }
+ z->lb = z->c; z->c = z->l;
+
+ { int m1 = z->l - z->c; (void)m1;
+ { int m_test2 = z->l - z->c;
+ z->ket = z->c;
+ { int m3 = z->l - z->c; (void)m3;
+ if (!(eq_s_b(z, 12, s_56))) goto lab3;
+ goto lab2;
+ lab3:
+ z->c = z->l - m3;
+ if (!(eq_s_b(z, 15, s_57))) goto lab4;
+ goto lab2;
+ lab4:
+ z->c = z->l - m3;
+ if (!(eq_s_b(z, 12, s_58))) goto lab5;
+ goto lab2;
+ lab5:
+ z->c = z->l - m3;
+ if (!(eq_s_b(z, 15, s_59))) goto lab6;
+ goto lab2;
+ lab6:
+ z->c = z->l - m3;
+ if (!(eq_s_b(z, 9, s_60))) goto lab7;
+ goto lab2;
+ lab7:
+ z->c = z->l - m3;
+ if (!(eq_s_b(z, 12, s_61))) goto lab8;
+ goto lab2;
+ lab8:
+ z->c = z->l - m3;
+ if (!(eq_s_b(z, 15, s_62))) goto lab9;
+ goto lab2;
+ lab9:
+ z->c = z->l - m3;
+ if (!(eq_s_b(z, 12, s_63))) goto lab10;
+ goto lab2;
+ lab10:
+ z->c = z->l - m3;
+ if (!(eq_s_b(z, 12, s_64))) goto lab11;
+ goto lab2;
+ lab11:
+ z->c = z->l - m3;
+ if (!(eq_s_b(z, 9, s_65))) goto lab12;
+ goto lab2;
+ lab12:
+ z->c = z->l - m3;
+ if (!(eq_s_b(z, 15, s_66))) goto lab13;
+ goto lab2;
+ lab13:
+ z->c = z->l - m3;
+ if (!(eq_s_b(z, 9, s_67))) goto lab14;
+ { int m_test4 = z->l - z->c;
+ { int m5 = z->l - z->c; (void)m5;
+ if (!(find_among_b(z, a_16, 8))) goto lab15;
+ goto lab14;
+ lab15:
+ z->c = z->l - m5;
+ }
+ z->c = z->l - m_test4;
+ }
+ goto lab2;
+ lab14:
+ z->c = z->l - m3;
+ if (!(eq_s_b(z, 6, s_68))) goto lab16;
+ goto lab2;
+ lab16:
+ z->c = z->l - m3;
+ if (!(eq_s_b(z, 9, s_69))) goto lab1;
+ }
+ lab2:
+ z->bra = z->c;
+ { int ret = slice_from_s(z, 3, s_70);
+ if (ret < 0) return ret;
+ }
+ z->I[1] = 1;
+ z->c = z->l - m_test2;
+ }
+ goto lab0;
+ lab1:
+ z->c = z->l - m1;
+ { int m_test6 = z->l - z->c;
+ z->ket = z->c;
+ if (!(find_among_b(z, a_17, 13))) return 0;
+ z->bra = z->c;
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ z->I[1] = 1;
+ z->c = z->l - m_test6;
+ }
+ }
+lab0:
+ z->c = z->lb;
+
+ { int ret = r_fix_endings(z);
+ if (ret < 0) return ret;
+ }
+ return 1;
+}
+
+static int r_remove_vetrumai_urupukal(struct SN_env * z) {
+ z->I[1] = 0;
+ z->I[0] = 0;
+ { int ret = r_has_min_length(z);
+ if (ret <= 0) return ret;
+ }
+ z->lb = z->c; z->c = z->l;
+
+ { int m1 = z->l - z->c; (void)m1;
+ { int m_test2 = z->l - z->c;
+ z->ket = z->c;
+ if (!(eq_s_b(z, 6, s_71))) goto lab1;
+ z->bra = z->c;
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ z->c = z->l - m_test2;
+ }
+ goto lab0;
+ lab1:
+ z->c = z->l - m1;
+ { int m_test3 = z->l - z->c;
+ z->ket = z->c;
+ { int m4 = z->l - z->c; (void)m4;
+ { int m5 = z->l - z->c; (void)m5;
+ if (!(eq_s_b(z, 9, s_72))) goto lab6;
+ goto lab5;
+ lab6:
+ z->c = z->l - m5;
+ if (!(eq_s_b(z, 3, s_73))) goto lab4;
+ }
+ lab5:
+ { int m_test6 = z->l - z->c;
+ { int m7 = z->l - z->c; (void)m7;
+ if (!(find_among_b(z, a_18, 6))) goto lab7;
+ goto lab4;
+ lab7:
+ z->c = z->l - m7;
+ }
+ z->c = z->l - m_test6;
+ }
+ goto lab3;
+ lab4:
+ z->c = z->l - m4;
+ if (!(eq_s_b(z, 3, s_74))) goto lab2;
+ { int m_test8 = z->l - z->c;
+ if (!(find_among_b(z, a_19, 6))) goto lab2;
+ if (!(eq_s_b(z, 3, s_75))) goto lab2;
+ z->c = z->l - m_test8;
+ }
+ }
+ lab3:
+ z->bra = z->c;
+ { int ret = slice_from_s(z, 3, s_76);
+ if (ret < 0) return ret;
+ }
+ z->c = z->l - m_test3;
+ }
+ goto lab0;
+ lab2:
+ z->c = z->l - m1;
+ { int m_test9 = z->l - z->c;
+ z->ket = z->c;
+ { int m10 = z->l - z->c; (void)m10;
+ if (!(eq_s_b(z, 9, s_77))) goto lab10;
+ goto lab9;
+ lab10:
+ z->c = z->l - m10;
+ if (!(eq_s_b(z, 9, s_78))) goto lab11;
+ goto lab9;
+ lab11:
+ z->c = z->l - m10;
+ if (!(eq_s_b(z, 9, s_79))) goto lab12;
+ goto lab9;
+ lab12:
+ z->c = z->l - m10;
+ if (!(eq_s_b(z, 9, s_80))) goto lab13;
+ goto lab9;
+ lab13:
+ z->c = z->l - m10;
+ if (!(eq_s_b(z, 9, s_81))) goto lab14;
+ { int m_test11 = z->l - z->c;
+ { int m12 = z->l - z->c; (void)m12;
+ if (!(eq_s_b(z, 3, s_82))) goto lab15;
+ goto lab14;
+ lab15:
+ z->c = z->l - m12;
+ }
+ z->c = z->l - m_test11;
+ }
+ goto lab9;
+ lab14:
+ z->c = z->l - m10;
+ if (!(eq_s_b(z, 15, s_83))) goto lab16;
+ goto lab9;
+ lab16:
+ z->c = z->l - m10;
+ if (!(eq_s_b(z, 21, s_84))) goto lab17;
+ goto lab9;
+ lab17:
+ z->c = z->l - m10;
+ if (!(eq_s_b(z, 9, s_85))) goto lab18;
+ goto lab9;
+ lab18:
+ z->c = z->l - m10;
+ if (!(len_utf8(z->p) >= 7)) goto lab19;
+ if (!(eq_s_b(z, 12, s_86))) goto lab19;
+ goto lab9;
+ lab19:
+ z->c = z->l - m10;
+ if (!(eq_s_b(z, 9, s_87))) goto lab20;
+ goto lab9;
+ lab20:
+ z->c = z->l - m10;
+ if (!(eq_s_b(z, 9, s_88))) goto lab21;
+ goto lab9;
+ lab21:
+ z->c = z->l - m10;
+ if (!(eq_s_b(z, 12, s_89))) goto lab22;
+ goto lab9;
+ lab22:
+ z->c = z->l - m10;
+ if (!(eq_s_b(z, 6, s_90))) goto lab23;
+ { int m_test13 = z->l - z->c;
+ { int m14 = z->l - z->c; (void)m14;
+ if (!(find_among_b(z, a_20, 8))) goto lab24;
+ goto lab23;
+ lab24:
+ z->c = z->l - m14;
+ }
+ z->c = z->l - m_test13;
+ }
+ goto lab9;
+ lab23:
+ z->c = z->l - m10;
+ if (!(eq_s_b(z, 9, s_91))) goto lab8;
+ }
+ lab9:
+ z->bra = z->c;
+ { int ret = slice_from_s(z, 3, s_92);
+ if (ret < 0) return ret;
+ }
+ z->c = z->l - m_test9;
+ }
+ goto lab0;
+ lab8:
+ z->c = z->l - m1;
+ { int m_test15 = z->l - z->c;
+ z->ket = z->c;
+ { int m16 = z->l - z->c; (void)m16;
+ if (!(eq_s_b(z, 9, s_93))) goto lab27;
+ goto lab26;
+ lab27:
+ z->c = z->l - m16;
+ if (!(eq_s_b(z, 12, s_94))) goto lab28;
+ goto lab26;
+ lab28:
+ z->c = z->l - m16;
+ if (!(eq_s_b(z, 12, s_95))) goto lab29;
+ goto lab26;
+ lab29:
+ z->c = z->l - m16;
+ if (!(eq_s_b(z, 12, s_96))) goto lab30;
+ goto lab26;
+ lab30:
+ z->c = z->l - m16;
+ if (!(eq_s_b(z, 12, s_97))) goto lab31;
+ goto lab26;
+ lab31:
+ z->c = z->l - m16;
+ if (!(eq_s_b(z, 12, s_98))) goto lab32;
+ goto lab26;
+ lab32:
+ z->c = z->l - m16;
+ if (!(eq_s_b(z, 6, s_99))) goto lab25;
+ { int m_test17 = z->l - z->c;
+ { int m18 = z->l - z->c; (void)m18;
+ if (!(find_among_b(z, a_21, 8))) goto lab33;
+ goto lab25;
+ lab33:
+ z->c = z->l - m18;
+ }
+ z->c = z->l - m_test17;
+ }
+ }
+ lab26:
+ z->bra = z->c;
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ z->c = z->l - m_test15;
+ }
+ goto lab0;
+ lab25:
+ z->c = z->l - m1;
+ { int m_test19 = z->l - z->c;
+ z->ket = z->c;
+ if (!(eq_s_b(z, 3, s_100))) return 0;
+ z->bra = z->c;
+ { int ret = slice_from_s(z, 3, s_101);
+ if (ret < 0) return ret;
+ }
+ z->c = z->l - m_test19;
+ }
+ }
+lab0:
+ z->I[1] = 1;
+ z->I[0] = 1;
+ { int m20 = z->l - z->c; (void)m20;
+ z->ket = z->c;
+ if (!(eq_s_b(z, 9, s_102))) goto lab34;
+ z->bra = z->c;
+ { int ret = slice_from_s(z, 3, s_103);
+ if (ret < 0) return ret;
+ }
+ lab34:
+ z->c = z->l - m20;
+ }
+ z->c = z->lb;
+
+ { int ret = r_fix_endings(z);
+ if (ret < 0) return ret;
+ }
+ return 1;
+}
+
+static int r_remove_tense_suffixes(struct SN_env * z) {
+ z->I[1] = 1;
+ while(1) {
+ int c1 = z->c;
+ if (!(z->I[1])) goto lab0;
+ { int c2 = z->c;
+ { int ret = r_remove_tense_suffix(z);
+ if (ret < 0) return ret;
+ }
+ z->c = c2;
+ }
+ continue;
+ lab0:
+ z->c = c1;
+ break;
+ }
+ return 1;
+}
+
+static int r_remove_tense_suffix(struct SN_env * z) {
+ z->I[1] = 0;
+ { int ret = r_has_min_length(z);
+ if (ret <= 0) return ret;
+ }
+ z->lb = z->c; z->c = z->l;
+
+ { int m1 = z->l - z->c; (void)m1;
+ { int m2 = z->l - z->c; (void)m2;
+ { int m_test3 = z->l - z->c;
+ z->ket = z->c;
+ if (z->c - 8 <= z->lb || (z->p[z->c - 1] != 129 && z->p[z->c - 1] != 141)) goto lab2;
+ if (!(find_among_b(z, a_22, 2))) goto lab2;
+ z->bra = z->c;
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ z->I[1] = 1;
+ z->c = z->l - m_test3;
+ }
+ goto lab1;
+ lab2:
+ z->c = z->l - m2;
+ { int m_test4 = z->l - z->c;
+ z->ket = z->c;
+ { int m5 = z->l - z->c; (void)m5;
+ if (!(eq_s_b(z, 12, s_104))) goto lab5;
+ goto lab4;
+ lab5:
+ z->c = z->l - m5;
+ if (!(eq_s_b(z, 12, s_105))) goto lab6;
+ goto lab4;
+ lab6:
+ z->c = z->l - m5;
+ if (!(eq_s_b(z, 9, s_106))) goto lab7;
+ goto lab4;
+ lab7:
+ z->c = z->l - m5;
+ if (!(eq_s_b(z, 12, s_107))) goto lab8;
+ goto lab4;
+ lab8:
+ z->c = z->l - m5;
+ if (!(eq_s_b(z, 12, s_108))) goto lab9;
+ goto lab4;
+ lab9:
+ z->c = z->l - m5;
+ if (!(eq_s_b(z, 12, s_109))) goto lab10;
+ goto lab4;
+ lab10:
+ z->c = z->l - m5;
+ if (!(eq_s_b(z, 9, s_110))) goto lab11;
+ { int m_test6 = z->l - z->c;
+ { int m7 = z->l - z->c; (void)m7;
+ if (z->c - 2 <= z->lb || z->p[z->c - 1] >> 5 != 4 || !((1951712 >> (z->p[z->c - 1] & 0x1f)) & 1)) goto lab12;
+ if (!(find_among_b(z, a_23, 12))) goto lab12;
+ goto lab11;
+ lab12:
+ z->c = z->l - m7;
+ }
+ z->c = z->l - m_test6;
+ }
+ goto lab4;
+ lab11:
+ z->c = z->l - m5;
+ if (!(eq_s_b(z, 9, s_111))) goto lab13;
+ goto lab4;
+ lab13:
+ z->c = z->l - m5;
+ if (!(eq_s_b(z, 9, s_112))) goto lab14;
+ goto lab4;
+ lab14:
+ z->c = z->l - m5;
+ if (!(eq_s_b(z, 9, s_113))) goto lab15;
+ goto lab4;
+ lab15:
+ z->c = z->l - m5;
+ if (!(eq_s_b(z, 9, s_114))) goto lab16;
+ goto lab4;
+ lab16:
+ z->c = z->l - m5;
+ if (!(eq_s_b(z, 3, s_115))) goto lab17;
+ goto lab4;
+ lab17:
+ z->c = z->l - m5;
+ if (!(eq_s_b(z, 3, s_116))) goto lab18;
+ goto lab4;
+ lab18:
+ z->c = z->l - m5;
+ if (!(eq_s_b(z, 3, s_117))) goto lab19;
+ goto lab4;
+ lab19:
+ z->c = z->l - m5;
+ if (!(eq_s_b(z, 3, s_118))) goto lab20;
+ goto lab4;
+ lab20:
+ z->c = z->l - m5;
+ if (!(eq_s_b(z, 3, s_119))) goto lab21;
+ goto lab4;
+ lab21:
+ z->c = z->l - m5;
+ if (!(eq_s_b(z, 9, s_120))) goto lab22;
+ goto lab4;
+ lab22:
+ z->c = z->l - m5;
+ if (!(eq_s_b(z, 9, s_121))) goto lab23;
+ goto lab4;
+ lab23:
+ z->c = z->l - m5;
+ if (!(eq_s_b(z, 9, s_122))) goto lab24;
+ goto lab4;
+ lab24:
+ z->c = z->l - m5;
+ if (!(eq_s_b(z, 6, s_123))) goto lab25;
+ { int m_test8 = z->l - z->c;
+ { int m9 = z->l - z->c; (void)m9;
+ if (!(find_among_b(z, a_24, 8))) goto lab26;
+ goto lab25;
+ lab26:
+ z->c = z->l - m9;
+ }
+ z->c = z->l - m_test8;
+ }
+ goto lab4;
+ lab25:
+ z->c = z->l - m5;
+ if (!(eq_s_b(z, 15, s_124))) goto lab27;
+ goto lab4;
+ lab27:
+ z->c = z->l - m5;
+ if (!(eq_s_b(z, 9, s_125))) goto lab28;
+ goto lab4;
+ lab28:
+ z->c = z->l - m5;
+ if (!(eq_s_b(z, 9, s_126))) goto lab29;
+ goto lab4;
+ lab29:
+ z->c = z->l - m5;
+ if (!(eq_s_b(z, 12, s_127))) goto lab30;
+ goto lab4;
+ lab30:
+ z->c = z->l - m5;
+ if (!(eq_s_b(z, 12, s_128))) goto lab31;
+ goto lab4;
+ lab31:
+ z->c = z->l - m5;
+ if (!(eq_s_b(z, 12, s_129))) goto lab32;
+ goto lab4;
+ lab32:
+ z->c = z->l - m5;
+ if (!(eq_s_b(z, 12, s_130))) goto lab33;
+ goto lab4;
+ lab33:
+ z->c = z->l - m5;
+ if (!(eq_s_b(z, 6, s_131))) goto lab34;
+ goto lab4;
+ lab34:
+ z->c = z->l - m5;
+ if (!(eq_s_b(z, 6, s_132))) goto lab3;
+ }
+ lab4:
+ z->bra = z->c;
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ z->I[1] = 1;
+ z->c = z->l - m_test4;
+ }
+ goto lab1;
+ lab3:
+ z->c = z->l - m2;
+ { int m_test10 = z->l - z->c;
+ z->ket = z->c;
+ { int m11 = z->l - z->c; (void)m11;
+ if (!(eq_s_b(z, 9, s_133))) goto lab37;
+ { int m_test12 = z->l - z->c;
+ { int m13 = z->l - z->c; (void)m13;
+ if (!(eq_s_b(z, 3, s_134))) goto lab38;
+ goto lab37;
+ lab38:
+ z->c = z->l - m13;
+ }
+ z->c = z->l - m_test12;
+ }
+ goto lab36;
+ lab37:
+ z->c = z->l - m11;
+ if (!(eq_s_b(z, 9, s_135))) goto lab39;
+ goto lab36;
+ lab39:
+ z->c = z->l - m11;
+ if (!(eq_s_b(z, 9, s_136))) goto lab40;
+ goto lab36;
+ lab40:
+ z->c = z->l - m11;
+ if (!(eq_s_b(z, 9, s_137))) goto lab41;
+ goto lab36;
+ lab41:
+ z->c = z->l - m11;
+ if (!(eq_s_b(z, 3, s_138))) goto lab42;
+ goto lab36;
+ lab42:
+ z->c = z->l - m11;
+ if (!(eq_s_b(z, 9, s_139))) goto lab43;
+ goto lab36;
+ lab43:
+ z->c = z->l - m11;
+ if (!(eq_s_b(z, 9, s_140))) goto lab44;
+ goto lab36;
+ lab44:
+ z->c = z->l - m11;
+ if (!(eq_s_b(z, 9, s_141))) goto lab45;
+ goto lab36;
+ lab45:
+ z->c = z->l - m11;
+ if (!(eq_s_b(z, 9, s_142))) goto lab46;
+ goto lab36;
+ lab46:
+ z->c = z->l - m11;
+ if (!(eq_s_b(z, 12, s_143))) goto lab47;
+ goto lab36;
+ lab47:
+ z->c = z->l - m11;
+ if (!(eq_s_b(z, 12, s_144))) goto lab48;
+ goto lab36;
+ lab48:
+ z->c = z->l - m11;
+ if (!(eq_s_b(z, 12, s_145))) goto lab49;
+ goto lab36;
+ lab49:
+ z->c = z->l - m11;
+ if (!(eq_s_b(z, 12, s_146))) goto lab50;
+ goto lab36;
+ lab50:
+ z->c = z->l - m11;
+ if (!(eq_s_b(z, 9, s_147))) goto lab51;
+ goto lab36;
+ lab51:
+ z->c = z->l - m11;
+ if (!(eq_s_b(z, 12, s_148))) goto lab52;
+ goto lab36;
+ lab52:
+ z->c = z->l - m11;
+ if (!(eq_s_b(z, 12, s_149))) goto lab53;
+ goto lab36;
+ lab53:
+ z->c = z->l - m11;
+ if (!(eq_s_b(z, 9, s_150))) goto lab54;
+ goto lab36;
+ lab54:
+ z->c = z->l - m11;
+ if (!(eq_s_b(z, 12, s_151))) goto lab35;
+ }
+ lab36:
+ z->bra = z->c;
+ { int ret = slice_from_s(z, 3, s_152);
+ if (ret < 0) return ret;
+ }
+ z->I[1] = 1;
+ z->c = z->l - m_test10;
+ }
+ goto lab1;
+ lab35:
+ z->c = z->l - m2;
+ { int m_test14 = z->l - z->c;
+ z->ket = z->c;
+ { int m15 = z->l - z->c; (void)m15;
+ if (!(eq_s_b(z, 6, s_153))) goto lab56;
+ goto lab55;
+ lab56:
+ z->c = z->l - m15;
+ if (!(eq_s_b(z, 6, s_154))) goto lab0;
+ }
+ lab55:
+ { int m_test16 = z->l - z->c;
+ if (!(eq_s_b(z, 3, s_155))) goto lab0;
+ z->c = z->l - m_test16;
+ }
+ z->bra = z->c;
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ z->I[1] = 1;
+ z->c = z->l - m_test14;
+ }
+ }
+ lab1:
+ lab0:
+ z->c = z->l - m1;
+ }
+ { int m17 = z->l - z->c; (void)m17;
+ z->ket = z->c;
+ if (z->c - 8 <= z->lb || (z->p[z->c - 1] != 141 && z->p[z->c - 1] != 177)) goto lab57;
+ if (!(find_among_b(z, a_25, 6))) goto lab57;
+ z->bra = z->c;
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ z->I[1] = 1;
+ lab57:
+ z->c = z->l - m17;
+ }
+ z->c = z->lb;
+
+ { int ret = r_fix_endings(z);
+ if (ret < 0) return ret;
+ }
+ return 1;
+}
+
+extern int tamil_UTF_8_stem(struct SN_env * z) {
+ z->I[0] = 0;
+ { int c1 = z->c;
+ { int ret = r_fix_ending(z);
+ if (ret < 0) return ret;
+ }
+ z->c = c1;
+ }
+ { int ret = r_has_min_length(z);
+ if (ret <= 0) return ret;
+ }
+ { int c2 = z->c;
+ { int ret = r_remove_question_prefixes(z);
+ if (ret < 0) return ret;
+ }
+ z->c = c2;
+ }
+ { int c3 = z->c;
+ { int ret = r_remove_pronoun_prefixes(z);
+ if (ret < 0) return ret;
+ }
+ z->c = c3;
+ }
+ { int c4 = z->c;
+ { int ret = r_remove_question_suffixes(z);
+ if (ret < 0) return ret;
+ }
+ z->c = c4;
+ }
+ { int c5 = z->c;
+ { int ret = r_remove_um(z);
+ if (ret < 0) return ret;
+ }
+ z->c = c5;
+ }
+ { int c6 = z->c;
+ { int ret = r_remove_common_word_endings(z);
+ if (ret < 0) return ret;
+ }
+ z->c = c6;
+ }
+ { int c7 = z->c;
+ { int ret = r_remove_vetrumai_urupukal(z);
+ if (ret < 0) return ret;
+ }
+ z->c = c7;
+ }
+ { int c8 = z->c;
+ { int ret = r_remove_plural_suffix(z);
+ if (ret < 0) return ret;
+ }
+ z->c = c8;
+ }
+ { int c9 = z->c;
+ { int ret = r_remove_command_suffixes(z);
+ if (ret < 0) return ret;
+ }
+ z->c = c9;
+ }
+ { int c10 = z->c;
+ { int ret = r_remove_tense_suffixes(z);
+ if (ret < 0) return ret;
+ }
+ z->c = c10;
+ }
+ return 1;
+}
+
+extern struct SN_env * tamil_UTF_8_create_env(void) { return SN_create_env(0, 2); }
+
+extern void tamil_UTF_8_close_env(struct SN_env * z) { SN_close_env(z, 0); }
+
diff --git a/src/backend/snowball/libstemmer/stem_UTF_8_turkish.c b/src/backend/snowball/libstemmer/stem_UTF_8_turkish.c
new file mode 100644
index 0000000..3d04032
--- /dev/null
+++ b/src/backend/snowball/libstemmer/stem_UTF_8_turkish.c
@@ -0,0 +1,2096 @@
+/* Generated by Snowball 2.2.0 - https://snowballstem.org/ */
+
+#include "header.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+extern int turkish_UTF_8_stem(struct SN_env * z);
+#ifdef __cplusplus
+}
+#endif
+static int r_stem_suffix_chain_before_ki(struct SN_env * z);
+static int r_stem_noun_suffixes(struct SN_env * z);
+static int r_stem_nominal_verb_suffixes(struct SN_env * z);
+static int r_postlude(struct SN_env * z);
+static int r_post_process_last_consonants(struct SN_env * z);
+static int r_more_than_one_syllable_word(struct SN_env * z);
+static int r_mark_suffix_with_optional_s_consonant(struct SN_env * z);
+static int r_mark_suffix_with_optional_n_consonant(struct SN_env * z);
+static int r_mark_suffix_with_optional_U_vowel(struct SN_env * z);
+static int r_mark_suffix_with_optional_y_consonant(struct SN_env * z);
+static int r_mark_ysA(struct SN_env * z);
+static int r_mark_ymUs_(struct SN_env * z);
+static int r_mark_yken(struct SN_env * z);
+static int r_mark_yDU(struct SN_env * z);
+static int r_mark_yUz(struct SN_env * z);
+static int r_mark_yUm(struct SN_env * z);
+static int r_mark_yU(struct SN_env * z);
+static int r_mark_ylA(struct SN_env * z);
+static int r_mark_yA(struct SN_env * z);
+static int r_mark_possessives(struct SN_env * z);
+static int r_mark_sUnUz(struct SN_env * z);
+static int r_mark_sUn(struct SN_env * z);
+static int r_mark_sU(struct SN_env * z);
+static int r_mark_nUz(struct SN_env * z);
+static int r_mark_nUn(struct SN_env * z);
+static int r_mark_nU(struct SN_env * z);
+static int r_mark_ndAn(struct SN_env * z);
+static int r_mark_ndA(struct SN_env * z);
+static int r_mark_ncA(struct SN_env * z);
+static int r_mark_nA(struct SN_env * z);
+static int r_mark_lArI(struct SN_env * z);
+static int r_mark_lAr(struct SN_env * z);
+static int r_mark_ki(struct SN_env * z);
+static int r_mark_DUr(struct SN_env * z);
+static int r_mark_DAn(struct SN_env * z);
+static int r_mark_DA(struct SN_env * z);
+static int r_mark_cAsInA(struct SN_env * z);
+static int r_is_reserved_word(struct SN_env * z);
+static int r_check_vowel_harmony(struct SN_env * z);
+static int r_append_U_to_stems_ending_with_d_or_g(struct SN_env * z);
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+extern struct SN_env * turkish_UTF_8_create_env(void);
+extern void turkish_UTF_8_close_env(struct SN_env * z);
+
+
+#ifdef __cplusplus
+}
+#endif
+static const symbol s_0_0[1] = { 'm' };
+static const symbol s_0_1[1] = { 'n' };
+static const symbol s_0_2[3] = { 'm', 'i', 'z' };
+static const symbol s_0_3[3] = { 'n', 'i', 'z' };
+static const symbol s_0_4[3] = { 'm', 'u', 'z' };
+static const symbol s_0_5[3] = { 'n', 'u', 'z' };
+static const symbol s_0_6[4] = { 'm', 0xC4, 0xB1, 'z' };
+static const symbol s_0_7[4] = { 'n', 0xC4, 0xB1, 'z' };
+static const symbol s_0_8[4] = { 'm', 0xC3, 0xBC, 'z' };
+static const symbol s_0_9[4] = { 'n', 0xC3, 0xBC, 'z' };
+
+static const struct among a_0[10] =
+{
+{ 1, s_0_0, -1, -1, 0},
+{ 1, s_0_1, -1, -1, 0},
+{ 3, s_0_2, -1, -1, 0},
+{ 3, s_0_3, -1, -1, 0},
+{ 3, s_0_4, -1, -1, 0},
+{ 3, s_0_5, -1, -1, 0},
+{ 4, s_0_6, -1, -1, 0},
+{ 4, s_0_7, -1, -1, 0},
+{ 4, s_0_8, -1, -1, 0},
+{ 4, s_0_9, -1, -1, 0}
+};
+
+static const symbol s_1_0[4] = { 'l', 'e', 'r', 'i' };
+static const symbol s_1_1[5] = { 'l', 'a', 'r', 0xC4, 0xB1 };
+
+static const struct among a_1[2] =
+{
+{ 4, s_1_0, -1, -1, 0},
+{ 5, s_1_1, -1, -1, 0}
+};
+
+static const symbol s_2_0[2] = { 'n', 'i' };
+static const symbol s_2_1[2] = { 'n', 'u' };
+static const symbol s_2_2[3] = { 'n', 0xC4, 0xB1 };
+static const symbol s_2_3[3] = { 'n', 0xC3, 0xBC };
+
+static const struct among a_2[4] =
+{
+{ 2, s_2_0, -1, -1, 0},
+{ 2, s_2_1, -1, -1, 0},
+{ 3, s_2_2, -1, -1, 0},
+{ 3, s_2_3, -1, -1, 0}
+};
+
+static const symbol s_3_0[2] = { 'i', 'n' };
+static const symbol s_3_1[2] = { 'u', 'n' };
+static const symbol s_3_2[3] = { 0xC4, 0xB1, 'n' };
+static const symbol s_3_3[3] = { 0xC3, 0xBC, 'n' };
+
+static const struct among a_3[4] =
+{
+{ 2, s_3_0, -1, -1, 0},
+{ 2, s_3_1, -1, -1, 0},
+{ 3, s_3_2, -1, -1, 0},
+{ 3, s_3_3, -1, -1, 0}
+};
+
+static const symbol s_4_0[1] = { 'a' };
+static const symbol s_4_1[1] = { 'e' };
+
+static const struct among a_4[2] =
+{
+{ 1, s_4_0, -1, -1, 0},
+{ 1, s_4_1, -1, -1, 0}
+};
+
+static const symbol s_5_0[2] = { 'n', 'a' };
+static const symbol s_5_1[2] = { 'n', 'e' };
+
+static const struct among a_5[2] =
+{
+{ 2, s_5_0, -1, -1, 0},
+{ 2, s_5_1, -1, -1, 0}
+};
+
+static const symbol s_6_0[2] = { 'd', 'a' };
+static const symbol s_6_1[2] = { 't', 'a' };
+static const symbol s_6_2[2] = { 'd', 'e' };
+static const symbol s_6_3[2] = { 't', 'e' };
+
+static const struct among a_6[4] =
+{
+{ 2, s_6_0, -1, -1, 0},
+{ 2, s_6_1, -1, -1, 0},
+{ 2, s_6_2, -1, -1, 0},
+{ 2, s_6_3, -1, -1, 0}
+};
+
+static const symbol s_7_0[3] = { 'n', 'd', 'a' };
+static const symbol s_7_1[3] = { 'n', 'd', 'e' };
+
+static const struct among a_7[2] =
+{
+{ 3, s_7_0, -1, -1, 0},
+{ 3, s_7_1, -1, -1, 0}
+};
+
+static const symbol s_8_0[3] = { 'd', 'a', 'n' };
+static const symbol s_8_1[3] = { 't', 'a', 'n' };
+static const symbol s_8_2[3] = { 'd', 'e', 'n' };
+static const symbol s_8_3[3] = { 't', 'e', 'n' };
+
+static const struct among a_8[4] =
+{
+{ 3, s_8_0, -1, -1, 0},
+{ 3, s_8_1, -1, -1, 0},
+{ 3, s_8_2, -1, -1, 0},
+{ 3, s_8_3, -1, -1, 0}
+};
+
+static const symbol s_9_0[4] = { 'n', 'd', 'a', 'n' };
+static const symbol s_9_1[4] = { 'n', 'd', 'e', 'n' };
+
+static const struct among a_9[2] =
+{
+{ 4, s_9_0, -1, -1, 0},
+{ 4, s_9_1, -1, -1, 0}
+};
+
+static const symbol s_10_0[2] = { 'l', 'a' };
+static const symbol s_10_1[2] = { 'l', 'e' };
+
+static const struct among a_10[2] =
+{
+{ 2, s_10_0, -1, -1, 0},
+{ 2, s_10_1, -1, -1, 0}
+};
+
+static const symbol s_11_0[2] = { 'c', 'a' };
+static const symbol s_11_1[2] = { 'c', 'e' };
+
+static const struct among a_11[2] =
+{
+{ 2, s_11_0, -1, -1, 0},
+{ 2, s_11_1, -1, -1, 0}
+};
+
+static const symbol s_12_0[2] = { 'i', 'm' };
+static const symbol s_12_1[2] = { 'u', 'm' };
+static const symbol s_12_2[3] = { 0xC4, 0xB1, 'm' };
+static const symbol s_12_3[3] = { 0xC3, 0xBC, 'm' };
+
+static const struct among a_12[4] =
+{
+{ 2, s_12_0, -1, -1, 0},
+{ 2, s_12_1, -1, -1, 0},
+{ 3, s_12_2, -1, -1, 0},
+{ 3, s_12_3, -1, -1, 0}
+};
+
+static const symbol s_13_0[3] = { 's', 'i', 'n' };
+static const symbol s_13_1[3] = { 's', 'u', 'n' };
+static const symbol s_13_2[4] = { 's', 0xC4, 0xB1, 'n' };
+static const symbol s_13_3[4] = { 's', 0xC3, 0xBC, 'n' };
+
+static const struct among a_13[4] =
+{
+{ 3, s_13_0, -1, -1, 0},
+{ 3, s_13_1, -1, -1, 0},
+{ 4, s_13_2, -1, -1, 0},
+{ 4, s_13_3, -1, -1, 0}
+};
+
+static const symbol s_14_0[2] = { 'i', 'z' };
+static const symbol s_14_1[2] = { 'u', 'z' };
+static const symbol s_14_2[3] = { 0xC4, 0xB1, 'z' };
+static const symbol s_14_3[3] = { 0xC3, 0xBC, 'z' };
+
+static const struct among a_14[4] =
+{
+{ 2, s_14_0, -1, -1, 0},
+{ 2, s_14_1, -1, -1, 0},
+{ 3, s_14_2, -1, -1, 0},
+{ 3, s_14_3, -1, -1, 0}
+};
+
+static const symbol s_15_0[5] = { 's', 'i', 'n', 'i', 'z' };
+static const symbol s_15_1[5] = { 's', 'u', 'n', 'u', 'z' };
+static const symbol s_15_2[7] = { 's', 0xC4, 0xB1, 'n', 0xC4, 0xB1, 'z' };
+static const symbol s_15_3[7] = { 's', 0xC3, 0xBC, 'n', 0xC3, 0xBC, 'z' };
+
+static const struct among a_15[4] =
+{
+{ 5, s_15_0, -1, -1, 0},
+{ 5, s_15_1, -1, -1, 0},
+{ 7, s_15_2, -1, -1, 0},
+{ 7, s_15_3, -1, -1, 0}
+};
+
+static const symbol s_16_0[3] = { 'l', 'a', 'r' };
+static const symbol s_16_1[3] = { 'l', 'e', 'r' };
+
+static const struct among a_16[2] =
+{
+{ 3, s_16_0, -1, -1, 0},
+{ 3, s_16_1, -1, -1, 0}
+};
+
+static const symbol s_17_0[3] = { 'n', 'i', 'z' };
+static const symbol s_17_1[3] = { 'n', 'u', 'z' };
+static const symbol s_17_2[4] = { 'n', 0xC4, 0xB1, 'z' };
+static const symbol s_17_3[4] = { 'n', 0xC3, 0xBC, 'z' };
+
+static const struct among a_17[4] =
+{
+{ 3, s_17_0, -1, -1, 0},
+{ 3, s_17_1, -1, -1, 0},
+{ 4, s_17_2, -1, -1, 0},
+{ 4, s_17_3, -1, -1, 0}
+};
+
+static const symbol s_18_0[3] = { 'd', 'i', 'r' };
+static const symbol s_18_1[3] = { 't', 'i', 'r' };
+static const symbol s_18_2[3] = { 'd', 'u', 'r' };
+static const symbol s_18_3[3] = { 't', 'u', 'r' };
+static const symbol s_18_4[4] = { 'd', 0xC4, 0xB1, 'r' };
+static const symbol s_18_5[4] = { 't', 0xC4, 0xB1, 'r' };
+static const symbol s_18_6[4] = { 'd', 0xC3, 0xBC, 'r' };
+static const symbol s_18_7[4] = { 't', 0xC3, 0xBC, 'r' };
+
+static const struct among a_18[8] =
+{
+{ 3, s_18_0, -1, -1, 0},
+{ 3, s_18_1, -1, -1, 0},
+{ 3, s_18_2, -1, -1, 0},
+{ 3, s_18_3, -1, -1, 0},
+{ 4, s_18_4, -1, -1, 0},
+{ 4, s_18_5, -1, -1, 0},
+{ 4, s_18_6, -1, -1, 0},
+{ 4, s_18_7, -1, -1, 0}
+};
+
+static const symbol s_19_0[7] = { 'c', 'a', 's', 0xC4, 0xB1, 'n', 'a' };
+static const symbol s_19_1[6] = { 'c', 'e', 's', 'i', 'n', 'e' };
+
+static const struct among a_19[2] =
+{
+{ 7, s_19_0, -1, -1, 0},
+{ 6, s_19_1, -1, -1, 0}
+};
+
+static const symbol s_20_0[2] = { 'd', 'i' };
+static const symbol s_20_1[2] = { 't', 'i' };
+static const symbol s_20_2[3] = { 'd', 'i', 'k' };
+static const symbol s_20_3[3] = { 't', 'i', 'k' };
+static const symbol s_20_4[3] = { 'd', 'u', 'k' };
+static const symbol s_20_5[3] = { 't', 'u', 'k' };
+static const symbol s_20_6[4] = { 'd', 0xC4, 0xB1, 'k' };
+static const symbol s_20_7[4] = { 't', 0xC4, 0xB1, 'k' };
+static const symbol s_20_8[4] = { 'd', 0xC3, 0xBC, 'k' };
+static const symbol s_20_9[4] = { 't', 0xC3, 0xBC, 'k' };
+static const symbol s_20_10[3] = { 'd', 'i', 'm' };
+static const symbol s_20_11[3] = { 't', 'i', 'm' };
+static const symbol s_20_12[3] = { 'd', 'u', 'm' };
+static const symbol s_20_13[3] = { 't', 'u', 'm' };
+static const symbol s_20_14[4] = { 'd', 0xC4, 0xB1, 'm' };
+static const symbol s_20_15[4] = { 't', 0xC4, 0xB1, 'm' };
+static const symbol s_20_16[4] = { 'd', 0xC3, 0xBC, 'm' };
+static const symbol s_20_17[4] = { 't', 0xC3, 0xBC, 'm' };
+static const symbol s_20_18[3] = { 'd', 'i', 'n' };
+static const symbol s_20_19[3] = { 't', 'i', 'n' };
+static const symbol s_20_20[3] = { 'd', 'u', 'n' };
+static const symbol s_20_21[3] = { 't', 'u', 'n' };
+static const symbol s_20_22[4] = { 'd', 0xC4, 0xB1, 'n' };
+static const symbol s_20_23[4] = { 't', 0xC4, 0xB1, 'n' };
+static const symbol s_20_24[4] = { 'd', 0xC3, 0xBC, 'n' };
+static const symbol s_20_25[4] = { 't', 0xC3, 0xBC, 'n' };
+static const symbol s_20_26[2] = { 'd', 'u' };
+static const symbol s_20_27[2] = { 't', 'u' };
+static const symbol s_20_28[3] = { 'd', 0xC4, 0xB1 };
+static const symbol s_20_29[3] = { 't', 0xC4, 0xB1 };
+static const symbol s_20_30[3] = { 'd', 0xC3, 0xBC };
+static const symbol s_20_31[3] = { 't', 0xC3, 0xBC };
+
+static const struct among a_20[32] =
+{
+{ 2, s_20_0, -1, -1, 0},
+{ 2, s_20_1, -1, -1, 0},
+{ 3, s_20_2, -1, -1, 0},
+{ 3, s_20_3, -1, -1, 0},
+{ 3, s_20_4, -1, -1, 0},
+{ 3, s_20_5, -1, -1, 0},
+{ 4, s_20_6, -1, -1, 0},
+{ 4, s_20_7, -1, -1, 0},
+{ 4, s_20_8, -1, -1, 0},
+{ 4, s_20_9, -1, -1, 0},
+{ 3, s_20_10, -1, -1, 0},
+{ 3, s_20_11, -1, -1, 0},
+{ 3, s_20_12, -1, -1, 0},
+{ 3, s_20_13, -1, -1, 0},
+{ 4, s_20_14, -1, -1, 0},
+{ 4, s_20_15, -1, -1, 0},
+{ 4, s_20_16, -1, -1, 0},
+{ 4, s_20_17, -1, -1, 0},
+{ 3, s_20_18, -1, -1, 0},
+{ 3, s_20_19, -1, -1, 0},
+{ 3, s_20_20, -1, -1, 0},
+{ 3, s_20_21, -1, -1, 0},
+{ 4, s_20_22, -1, -1, 0},
+{ 4, s_20_23, -1, -1, 0},
+{ 4, s_20_24, -1, -1, 0},
+{ 4, s_20_25, -1, -1, 0},
+{ 2, s_20_26, -1, -1, 0},
+{ 2, s_20_27, -1, -1, 0},
+{ 3, s_20_28, -1, -1, 0},
+{ 3, s_20_29, -1, -1, 0},
+{ 3, s_20_30, -1, -1, 0},
+{ 3, s_20_31, -1, -1, 0}
+};
+
+static const symbol s_21_0[2] = { 's', 'a' };
+static const symbol s_21_1[2] = { 's', 'e' };
+static const symbol s_21_2[3] = { 's', 'a', 'k' };
+static const symbol s_21_3[3] = { 's', 'e', 'k' };
+static const symbol s_21_4[3] = { 's', 'a', 'm' };
+static const symbol s_21_5[3] = { 's', 'e', 'm' };
+static const symbol s_21_6[3] = { 's', 'a', 'n' };
+static const symbol s_21_7[3] = { 's', 'e', 'n' };
+
+static const struct among a_21[8] =
+{
+{ 2, s_21_0, -1, -1, 0},
+{ 2, s_21_1, -1, -1, 0},
+{ 3, s_21_2, -1, -1, 0},
+{ 3, s_21_3, -1, -1, 0},
+{ 3, s_21_4, -1, -1, 0},
+{ 3, s_21_5, -1, -1, 0},
+{ 3, s_21_6, -1, -1, 0},
+{ 3, s_21_7, -1, -1, 0}
+};
+
+static const symbol s_22_0[4] = { 'm', 'i', 0xC5, 0x9F };
+static const symbol s_22_1[4] = { 'm', 'u', 0xC5, 0x9F };
+static const symbol s_22_2[5] = { 'm', 0xC4, 0xB1, 0xC5, 0x9F };
+static const symbol s_22_3[5] = { 'm', 0xC3, 0xBC, 0xC5, 0x9F };
+
+static const struct among a_22[4] =
+{
+{ 4, s_22_0, -1, -1, 0},
+{ 4, s_22_1, -1, -1, 0},
+{ 5, s_22_2, -1, -1, 0},
+{ 5, s_22_3, -1, -1, 0}
+};
+
+static const symbol s_23_0[1] = { 'b' };
+static const symbol s_23_1[1] = { 'c' };
+static const symbol s_23_2[1] = { 'd' };
+static const symbol s_23_3[2] = { 0xC4, 0x9F };
+
+static const struct among a_23[4] =
+{
+{ 1, s_23_0, -1, 1, 0},
+{ 1, s_23_1, -1, 2, 0},
+{ 1, s_23_2, -1, 3, 0},
+{ 2, s_23_3, -1, 4, 0}
+};
+
+static const unsigned char g_vowel[] = { 17, 65, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 8, 0, 0, 0, 0, 0, 0, 1 };
+
+static const unsigned char g_U[] = { 1, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 1 };
+
+static const unsigned char g_vowel1[] = { 1, 64, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 };
+
+static const unsigned char g_vowel2[] = { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 130 };
+
+static const unsigned char g_vowel3[] = { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 };
+
+static const unsigned char g_vowel4[] = { 17 };
+
+static const unsigned char g_vowel5[] = { 65 };
+
+static const unsigned char g_vowel6[] = { 65 };
+
+static const symbol s_0[] = { 0xC4, 0xB1 };
+static const symbol s_1[] = { 0xC3, 0xB6 };
+static const symbol s_2[] = { 0xC3, 0xBC };
+static const symbol s_3[] = { 'k', 'i' };
+static const symbol s_4[] = { 'k', 'e', 'n' };
+static const symbol s_5[] = { 'p' };
+static const symbol s_6[] = { 0xC3, 0xA7 };
+static const symbol s_7[] = { 't' };
+static const symbol s_8[] = { 'k' };
+static const symbol s_9[] = { 0xC4, 0xB1 };
+static const symbol s_10[] = { 0xC4, 0xB1 };
+static const symbol s_11[] = { 'i' };
+static const symbol s_12[] = { 'u' };
+static const symbol s_13[] = { 0xC3, 0xB6 };
+static const symbol s_14[] = { 0xC3, 0xBC };
+static const symbol s_15[] = { 0xC3, 0xBC };
+static const symbol s_16[] = { 'a', 'd' };
+static const symbol s_17[] = { 's', 'o', 'y' };
+
+static int r_check_vowel_harmony(struct SN_env * z) {
+ { int m_test1 = z->l - z->c;
+ if (out_grouping_b_U(z, g_vowel, 97, 305, 1) < 0) return 0;
+ { int m2 = z->l - z->c; (void)m2;
+ if (z->c <= z->lb || z->p[z->c - 1] != 'a') goto lab1;
+ z->c--;
+ if (out_grouping_b_U(z, g_vowel1, 97, 305, 1) < 0) goto lab1;
+ goto lab0;
+ lab1:
+ z->c = z->l - m2;
+ if (z->c <= z->lb || z->p[z->c - 1] != 'e') goto lab2;
+ z->c--;
+ if (out_grouping_b_U(z, g_vowel2, 101, 252, 1) < 0) goto lab2;
+ goto lab0;
+ lab2:
+ z->c = z->l - m2;
+ if (!(eq_s_b(z, 2, s_0))) goto lab3;
+ if (out_grouping_b_U(z, g_vowel3, 97, 305, 1) < 0) goto lab3;
+ goto lab0;
+ lab3:
+ z->c = z->l - m2;
+ if (z->c <= z->lb || z->p[z->c - 1] != 'i') goto lab4;
+ z->c--;
+ if (out_grouping_b_U(z, g_vowel4, 101, 105, 1) < 0) goto lab4;
+ goto lab0;
+ lab4:
+ z->c = z->l - m2;
+ if (z->c <= z->lb || z->p[z->c - 1] != 'o') goto lab5;
+ z->c--;
+ if (out_grouping_b_U(z, g_vowel5, 111, 117, 1) < 0) goto lab5;
+ goto lab0;
+ lab5:
+ z->c = z->l - m2;
+ if (!(eq_s_b(z, 2, s_1))) goto lab6;
+ if (out_grouping_b_U(z, g_vowel6, 246, 252, 1) < 0) goto lab6;
+ goto lab0;
+ lab6:
+ z->c = z->l - m2;
+ if (z->c <= z->lb || z->p[z->c - 1] != 'u') goto lab7;
+ z->c--;
+ if (out_grouping_b_U(z, g_vowel5, 111, 117, 1) < 0) goto lab7;
+ goto lab0;
+ lab7:
+ z->c = z->l - m2;
+ if (!(eq_s_b(z, 2, s_2))) return 0;
+ if (out_grouping_b_U(z, g_vowel6, 246, 252, 1) < 0) return 0;
+ }
+ lab0:
+ z->c = z->l - m_test1;
+ }
+ return 1;
+}
+
+static int r_mark_suffix_with_optional_n_consonant(struct SN_env * z) {
+ { int m1 = z->l - z->c; (void)m1;
+ if (z->c <= z->lb || z->p[z->c - 1] != 'n') goto lab1;
+ z->c--;
+ { int m_test2 = z->l - z->c;
+ if (in_grouping_b_U(z, g_vowel, 97, 305, 0)) goto lab1;
+ z->c = z->l - m_test2;
+ }
+ goto lab0;
+ lab1:
+ z->c = z->l - m1;
+ { int m3 = z->l - z->c; (void)m3;
+ { int m_test4 = z->l - z->c;
+ if (z->c <= z->lb || z->p[z->c - 1] != 'n') goto lab2;
+ z->c--;
+ z->c = z->l - m_test4;
+ }
+ return 0;
+ lab2:
+ z->c = z->l - m3;
+ }
+ { int m_test5 = z->l - z->c;
+ { int ret = skip_b_utf8(z->p, z->c, z->lb, 1);
+ if (ret < 0) return 0;
+ z->c = ret;
+ }
+ if (in_grouping_b_U(z, g_vowel, 97, 305, 0)) return 0;
+ z->c = z->l - m_test5;
+ }
+ }
+lab0:
+ return 1;
+}
+
+static int r_mark_suffix_with_optional_s_consonant(struct SN_env * z) {
+ { int m1 = z->l - z->c; (void)m1;
+ if (z->c <= z->lb || z->p[z->c - 1] != 's') goto lab1;
+ z->c--;
+ { int m_test2 = z->l - z->c;
+ if (in_grouping_b_U(z, g_vowel, 97, 305, 0)) goto lab1;
+ z->c = z->l - m_test2;
+ }
+ goto lab0;
+ lab1:
+ z->c = z->l - m1;
+ { int m3 = z->l - z->c; (void)m3;
+ { int m_test4 = z->l - z->c;
+ if (z->c <= z->lb || z->p[z->c - 1] != 's') goto lab2;
+ z->c--;
+ z->c = z->l - m_test4;
+ }
+ return 0;
+ lab2:
+ z->c = z->l - m3;
+ }
+ { int m_test5 = z->l - z->c;
+ { int ret = skip_b_utf8(z->p, z->c, z->lb, 1);
+ if (ret < 0) return 0;
+ z->c = ret;
+ }
+ if (in_grouping_b_U(z, g_vowel, 97, 305, 0)) return 0;
+ z->c = z->l - m_test5;
+ }
+ }
+lab0:
+ return 1;
+}
+
+static int r_mark_suffix_with_optional_y_consonant(struct SN_env * z) {
+ { int m1 = z->l - z->c; (void)m1;
+ if (z->c <= z->lb || z->p[z->c - 1] != 'y') goto lab1;
+ z->c--;
+ { int m_test2 = z->l - z->c;
+ if (in_grouping_b_U(z, g_vowel, 97, 305, 0)) goto lab1;
+ z->c = z->l - m_test2;
+ }
+ goto lab0;
+ lab1:
+ z->c = z->l - m1;
+ { int m3 = z->l - z->c; (void)m3;
+ { int m_test4 = z->l - z->c;
+ if (z->c <= z->lb || z->p[z->c - 1] != 'y') goto lab2;
+ z->c--;
+ z->c = z->l - m_test4;
+ }
+ return 0;
+ lab2:
+ z->c = z->l - m3;
+ }
+ { int m_test5 = z->l - z->c;
+ { int ret = skip_b_utf8(z->p, z->c, z->lb, 1);
+ if (ret < 0) return 0;
+ z->c = ret;
+ }
+ if (in_grouping_b_U(z, g_vowel, 97, 305, 0)) return 0;
+ z->c = z->l - m_test5;
+ }
+ }
+lab0:
+ return 1;
+}
+
+static int r_mark_suffix_with_optional_U_vowel(struct SN_env * z) {
+ { int m1 = z->l - z->c; (void)m1;
+ if (in_grouping_b_U(z, g_U, 105, 305, 0)) goto lab1;
+ { int m_test2 = z->l - z->c;
+ if (out_grouping_b_U(z, g_vowel, 97, 305, 0)) goto lab1;
+ z->c = z->l - m_test2;
+ }
+ goto lab0;
+ lab1:
+ z->c = z->l - m1;
+ { int m3 = z->l - z->c; (void)m3;
+ { int m_test4 = z->l - z->c;
+ if (in_grouping_b_U(z, g_U, 105, 305, 0)) goto lab2;
+ z->c = z->l - m_test4;
+ }
+ return 0;
+ lab2:
+ z->c = z->l - m3;
+ }
+ { int m_test5 = z->l - z->c;
+ { int ret = skip_b_utf8(z->p, z->c, z->lb, 1);
+ if (ret < 0) return 0;
+ z->c = ret;
+ }
+ if (out_grouping_b_U(z, g_vowel, 97, 305, 0)) return 0;
+ z->c = z->l - m_test5;
+ }
+ }
+lab0:
+ return 1;
+}
+
+static int r_mark_possessives(struct SN_env * z) {
+ if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((67133440 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
+ if (!(find_among_b(z, a_0, 10))) return 0;
+ { int ret = r_mark_suffix_with_optional_U_vowel(z);
+ if (ret <= 0) return ret;
+ }
+ return 1;
+}
+
+static int r_mark_sU(struct SN_env * z) {
+ { int ret = r_check_vowel_harmony(z);
+ if (ret <= 0) return ret;
+ }
+ if (in_grouping_b_U(z, g_U, 105, 305, 0)) return 0;
+ { int ret = r_mark_suffix_with_optional_s_consonant(z);
+ if (ret <= 0) return ret;
+ }
+ return 1;
+}
+
+static int r_mark_lArI(struct SN_env * z) {
+ if (z->c - 3 <= z->lb || (z->p[z->c - 1] != 105 && z->p[z->c - 1] != 177)) return 0;
+ if (!(find_among_b(z, a_1, 2))) return 0;
+ return 1;
+}
+
+static int r_mark_yU(struct SN_env * z) {
+ { int ret = r_check_vowel_harmony(z);
+ if (ret <= 0) return ret;
+ }
+ if (in_grouping_b_U(z, g_U, 105, 305, 0)) return 0;
+ { int ret = r_mark_suffix_with_optional_y_consonant(z);
+ if (ret <= 0) return ret;
+ }
+ return 1;
+}
+
+static int r_mark_nU(struct SN_env * z) {
+ { int ret = r_check_vowel_harmony(z);
+ if (ret <= 0) return ret;
+ }
+ if (!(find_among_b(z, a_2, 4))) return 0;
+ return 1;
+}
+
+static int r_mark_nUn(struct SN_env * z) {
+ { int ret = r_check_vowel_harmony(z);
+ if (ret <= 0) return ret;
+ }
+ if (z->c - 1 <= z->lb || z->p[z->c - 1] != 110) return 0;
+ if (!(find_among_b(z, a_3, 4))) return 0;
+ { int ret = r_mark_suffix_with_optional_n_consonant(z);
+ if (ret <= 0) return ret;
+ }
+ return 1;
+}
+
+static int r_mark_yA(struct SN_env * z) {
+ { int ret = r_check_vowel_harmony(z);
+ if (ret <= 0) return ret;
+ }
+ if (z->c <= z->lb || (z->p[z->c - 1] != 97 && z->p[z->c - 1] != 101)) return 0;
+ if (!(find_among_b(z, a_4, 2))) return 0;
+ { int ret = r_mark_suffix_with_optional_y_consonant(z);
+ if (ret <= 0) return ret;
+ }
+ return 1;
+}
+
+static int r_mark_nA(struct SN_env * z) {
+ { int ret = r_check_vowel_harmony(z);
+ if (ret <= 0) return ret;
+ }
+ if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 97 && z->p[z->c - 1] != 101)) return 0;
+ if (!(find_among_b(z, a_5, 2))) return 0;
+ return 1;
+}
+
+static int r_mark_DA(struct SN_env * z) {
+ { int ret = r_check_vowel_harmony(z);
+ if (ret <= 0) return ret;
+ }
+ if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 97 && z->p[z->c - 1] != 101)) return 0;
+ if (!(find_among_b(z, a_6, 4))) return 0;
+ return 1;
+}
+
+static int r_mark_ndA(struct SN_env * z) {
+ { int ret = r_check_vowel_harmony(z);
+ if (ret <= 0) return ret;
+ }
+ if (z->c - 2 <= z->lb || (z->p[z->c - 1] != 97 && z->p[z->c - 1] != 101)) return 0;
+ if (!(find_among_b(z, a_7, 2))) return 0;
+ return 1;
+}
+
+static int r_mark_DAn(struct SN_env * z) {
+ { int ret = r_check_vowel_harmony(z);
+ if (ret <= 0) return ret;
+ }
+ if (z->c - 2 <= z->lb || z->p[z->c - 1] != 110) return 0;
+ if (!(find_among_b(z, a_8, 4))) return 0;
+ return 1;
+}
+
+static int r_mark_ndAn(struct SN_env * z) {
+ { int ret = r_check_vowel_harmony(z);
+ if (ret <= 0) return ret;
+ }
+ if (z->c - 3 <= z->lb || z->p[z->c - 1] != 110) return 0;
+ if (!(find_among_b(z, a_9, 2))) return 0;
+ return 1;
+}
+
+static int r_mark_ylA(struct SN_env * z) {
+ { int ret = r_check_vowel_harmony(z);
+ if (ret <= 0) return ret;
+ }
+ if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 97 && z->p[z->c - 1] != 101)) return 0;
+ if (!(find_among_b(z, a_10, 2))) return 0;
+ { int ret = r_mark_suffix_with_optional_y_consonant(z);
+ if (ret <= 0) return ret;
+ }
+ return 1;
+}
+
+static int r_mark_ki(struct SN_env * z) {
+ if (!(eq_s_b(z, 2, s_3))) return 0;
+ return 1;
+}
+
+static int r_mark_ncA(struct SN_env * z) {
+ { int ret = r_check_vowel_harmony(z);
+ if (ret <= 0) return ret;
+ }
+ if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 97 && z->p[z->c - 1] != 101)) return 0;
+ if (!(find_among_b(z, a_11, 2))) return 0;
+ { int ret = r_mark_suffix_with_optional_n_consonant(z);
+ if (ret <= 0) return ret;
+ }
+ return 1;
+}
+
+static int r_mark_yUm(struct SN_env * z) {
+ { int ret = r_check_vowel_harmony(z);
+ if (ret <= 0) return ret;
+ }
+ if (z->c - 1 <= z->lb || z->p[z->c - 1] != 109) return 0;
+ if (!(find_among_b(z, a_12, 4))) return 0;
+ { int ret = r_mark_suffix_with_optional_y_consonant(z);
+ if (ret <= 0) return ret;
+ }
+ return 1;
+}
+
+static int r_mark_sUn(struct SN_env * z) {
+ { int ret = r_check_vowel_harmony(z);
+ if (ret <= 0) return ret;
+ }
+ if (z->c - 2 <= z->lb || z->p[z->c - 1] != 110) return 0;
+ if (!(find_among_b(z, a_13, 4))) return 0;
+ return 1;
+}
+
+static int r_mark_yUz(struct SN_env * z) {
+ { int ret = r_check_vowel_harmony(z);
+ if (ret <= 0) return ret;
+ }
+ if (z->c - 1 <= z->lb || z->p[z->c - 1] != 122) return 0;
+ if (!(find_among_b(z, a_14, 4))) return 0;
+ { int ret = r_mark_suffix_with_optional_y_consonant(z);
+ if (ret <= 0) return ret;
+ }
+ return 1;
+}
+
+static int r_mark_sUnUz(struct SN_env * z) {
+ if (z->c - 4 <= z->lb || z->p[z->c - 1] != 122) return 0;
+ if (!(find_among_b(z, a_15, 4))) return 0;
+ return 1;
+}
+
+static int r_mark_lAr(struct SN_env * z) {
+ { int ret = r_check_vowel_harmony(z);
+ if (ret <= 0) return ret;
+ }
+ if (z->c - 2 <= z->lb || z->p[z->c - 1] != 114) return 0;
+ if (!(find_among_b(z, a_16, 2))) return 0;
+ return 1;
+}
+
+static int r_mark_nUz(struct SN_env * z) {
+ { int ret = r_check_vowel_harmony(z);
+ if (ret <= 0) return ret;
+ }
+ if (z->c - 2 <= z->lb || z->p[z->c - 1] != 122) return 0;
+ if (!(find_among_b(z, a_17, 4))) return 0;
+ return 1;
+}
+
+static int r_mark_DUr(struct SN_env * z) {
+ { int ret = r_check_vowel_harmony(z);
+ if (ret <= 0) return ret;
+ }
+ if (z->c - 2 <= z->lb || z->p[z->c - 1] != 114) return 0;
+ if (!(find_among_b(z, a_18, 8))) return 0;
+ return 1;
+}
+
+static int r_mark_cAsInA(struct SN_env * z) {
+ if (z->c - 5 <= z->lb || (z->p[z->c - 1] != 97 && z->p[z->c - 1] != 101)) return 0;
+ if (!(find_among_b(z, a_19, 2))) return 0;
+ return 1;
+}
+
+static int r_mark_yDU(struct SN_env * z) {
+ { int ret = r_check_vowel_harmony(z);
+ if (ret <= 0) return ret;
+ }
+ if (!(find_among_b(z, a_20, 32))) return 0;
+ { int ret = r_mark_suffix_with_optional_y_consonant(z);
+ if (ret <= 0) return ret;
+ }
+ return 1;
+}
+
+static int r_mark_ysA(struct SN_env * z) {
+ if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((26658 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
+ if (!(find_among_b(z, a_21, 8))) return 0;
+ { int ret = r_mark_suffix_with_optional_y_consonant(z);
+ if (ret <= 0) return ret;
+ }
+ return 1;
+}
+
+static int r_mark_ymUs_(struct SN_env * z) {
+ { int ret = r_check_vowel_harmony(z);
+ if (ret <= 0) return ret;
+ }
+ if (z->c - 3 <= z->lb || z->p[z->c - 1] != 159) return 0;
+ if (!(find_among_b(z, a_22, 4))) return 0;
+ { int ret = r_mark_suffix_with_optional_y_consonant(z);
+ if (ret <= 0) return ret;
+ }
+ return 1;
+}
+
+static int r_mark_yken(struct SN_env * z) {
+ if (!(eq_s_b(z, 3, s_4))) return 0;
+ { int ret = r_mark_suffix_with_optional_y_consonant(z);
+ if (ret <= 0) return ret;
+ }
+ return 1;
+}
+
+static int r_stem_nominal_verb_suffixes(struct SN_env * z) {
+ z->ket = z->c;
+ z->I[0] = 1;
+ { int m1 = z->l - z->c; (void)m1;
+ { int m2 = z->l - z->c; (void)m2;
+ { int ret = r_mark_ymUs_(z);
+ if (ret == 0) goto lab3;
+ if (ret < 0) return ret;
+ }
+ goto lab2;
+ lab3:
+ z->c = z->l - m2;
+ { int ret = r_mark_yDU(z);
+ if (ret == 0) goto lab4;
+ if (ret < 0) return ret;
+ }
+ goto lab2;
+ lab4:
+ z->c = z->l - m2;
+ { int ret = r_mark_ysA(z);
+ if (ret == 0) goto lab5;
+ if (ret < 0) return ret;
+ }
+ goto lab2;
+ lab5:
+ z->c = z->l - m2;
+ { int ret = r_mark_yken(z);
+ if (ret == 0) goto lab1;
+ if (ret < 0) return ret;
+ }
+ }
+ lab2:
+ goto lab0;
+ lab1:
+ z->c = z->l - m1;
+ { int ret = r_mark_cAsInA(z);
+ if (ret == 0) goto lab6;
+ if (ret < 0) return ret;
+ }
+ { int m3 = z->l - z->c; (void)m3;
+ { int ret = r_mark_sUnUz(z);
+ if (ret == 0) goto lab8;
+ if (ret < 0) return ret;
+ }
+ goto lab7;
+ lab8:
+ z->c = z->l - m3;
+ { int ret = r_mark_lAr(z);
+ if (ret == 0) goto lab9;
+ if (ret < 0) return ret;
+ }
+ goto lab7;
+ lab9:
+ z->c = z->l - m3;
+ { int ret = r_mark_yUm(z);
+ if (ret == 0) goto lab10;
+ if (ret < 0) return ret;
+ }
+ goto lab7;
+ lab10:
+ z->c = z->l - m3;
+ { int ret = r_mark_sUn(z);
+ if (ret == 0) goto lab11;
+ if (ret < 0) return ret;
+ }
+ goto lab7;
+ lab11:
+ z->c = z->l - m3;
+ { int ret = r_mark_yUz(z);
+ if (ret == 0) goto lab12;
+ if (ret < 0) return ret;
+ }
+ goto lab7;
+ lab12:
+ z->c = z->l - m3;
+ }
+ lab7:
+ { int ret = r_mark_ymUs_(z);
+ if (ret == 0) goto lab6;
+ if (ret < 0) return ret;
+ }
+ goto lab0;
+ lab6:
+ z->c = z->l - m1;
+ { int ret = r_mark_lAr(z);
+ if (ret == 0) goto lab13;
+ if (ret < 0) return ret;
+ }
+ z->bra = z->c;
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ { int m4 = z->l - z->c; (void)m4;
+ z->ket = z->c;
+ { int m5 = z->l - z->c; (void)m5;
+ { int ret = r_mark_DUr(z);
+ if (ret == 0) goto lab16;
+ if (ret < 0) return ret;
+ }
+ goto lab15;
+ lab16:
+ z->c = z->l - m5;
+ { int ret = r_mark_yDU(z);
+ if (ret == 0) goto lab17;
+ if (ret < 0) return ret;
+ }
+ goto lab15;
+ lab17:
+ z->c = z->l - m5;
+ { int ret = r_mark_ysA(z);
+ if (ret == 0) goto lab18;
+ if (ret < 0) return ret;
+ }
+ goto lab15;
+ lab18:
+ z->c = z->l - m5;
+ { int ret = r_mark_ymUs_(z);
+ if (ret == 0) { z->c = z->l - m4; goto lab14; }
+ if (ret < 0) return ret;
+ }
+ }
+ lab15:
+ lab14:
+ ;
+ }
+ z->I[0] = 0;
+ goto lab0;
+ lab13:
+ z->c = z->l - m1;
+ { int ret = r_mark_nUz(z);
+ if (ret == 0) goto lab19;
+ if (ret < 0) return ret;
+ }
+ { int m6 = z->l - z->c; (void)m6;
+ { int ret = r_mark_yDU(z);
+ if (ret == 0) goto lab21;
+ if (ret < 0) return ret;
+ }
+ goto lab20;
+ lab21:
+ z->c = z->l - m6;
+ { int ret = r_mark_ysA(z);
+ if (ret == 0) goto lab19;
+ if (ret < 0) return ret;
+ }
+ }
+ lab20:
+ goto lab0;
+ lab19:
+ z->c = z->l - m1;
+ { int m7 = z->l - z->c; (void)m7;
+ { int ret = r_mark_sUnUz(z);
+ if (ret == 0) goto lab24;
+ if (ret < 0) return ret;
+ }
+ goto lab23;
+ lab24:
+ z->c = z->l - m7;
+ { int ret = r_mark_yUz(z);
+ if (ret == 0) goto lab25;
+ if (ret < 0) return ret;
+ }
+ goto lab23;
+ lab25:
+ z->c = z->l - m7;
+ { int ret = r_mark_sUn(z);
+ if (ret == 0) goto lab26;
+ if (ret < 0) return ret;
+ }
+ goto lab23;
+ lab26:
+ z->c = z->l - m7;
+ { int ret = r_mark_yUm(z);
+ if (ret == 0) goto lab22;
+ if (ret < 0) return ret;
+ }
+ }
+ lab23:
+ z->bra = z->c;
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ { int m8 = z->l - z->c; (void)m8;
+ z->ket = z->c;
+ { int ret = r_mark_ymUs_(z);
+ if (ret == 0) { z->c = z->l - m8; goto lab27; }
+ if (ret < 0) return ret;
+ }
+ lab27:
+ ;
+ }
+ goto lab0;
+ lab22:
+ z->c = z->l - m1;
+ { int ret = r_mark_DUr(z);
+ if (ret <= 0) return ret;
+ }
+ z->bra = z->c;
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ { int m9 = z->l - z->c; (void)m9;
+ z->ket = z->c;
+ { int m10 = z->l - z->c; (void)m10;
+ { int ret = r_mark_sUnUz(z);
+ if (ret == 0) goto lab30;
+ if (ret < 0) return ret;
+ }
+ goto lab29;
+ lab30:
+ z->c = z->l - m10;
+ { int ret = r_mark_lAr(z);
+ if (ret == 0) goto lab31;
+ if (ret < 0) return ret;
+ }
+ goto lab29;
+ lab31:
+ z->c = z->l - m10;
+ { int ret = r_mark_yUm(z);
+ if (ret == 0) goto lab32;
+ if (ret < 0) return ret;
+ }
+ goto lab29;
+ lab32:
+ z->c = z->l - m10;
+ { int ret = r_mark_sUn(z);
+ if (ret == 0) goto lab33;
+ if (ret < 0) return ret;
+ }
+ goto lab29;
+ lab33:
+ z->c = z->l - m10;
+ { int ret = r_mark_yUz(z);
+ if (ret == 0) goto lab34;
+ if (ret < 0) return ret;
+ }
+ goto lab29;
+ lab34:
+ z->c = z->l - m10;
+ }
+ lab29:
+ { int ret = r_mark_ymUs_(z);
+ if (ret == 0) { z->c = z->l - m9; goto lab28; }
+ if (ret < 0) return ret;
+ }
+ lab28:
+ ;
+ }
+ }
+lab0:
+ z->bra = z->c;
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ return 1;
+}
+
+static int r_stem_suffix_chain_before_ki(struct SN_env * z) {
+ z->ket = z->c;
+ { int ret = r_mark_ki(z);
+ if (ret <= 0) return ret;
+ }
+ { int m1 = z->l - z->c; (void)m1;
+ { int ret = r_mark_DA(z);
+ if (ret == 0) goto lab1;
+ if (ret < 0) return ret;
+ }
+ z->bra = z->c;
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ { int m2 = z->l - z->c; (void)m2;
+ z->ket = z->c;
+ { int m3 = z->l - z->c; (void)m3;
+ { int ret = r_mark_lAr(z);
+ if (ret == 0) goto lab4;
+ if (ret < 0) return ret;
+ }
+ z->bra = z->c;
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ { int m4 = z->l - z->c; (void)m4;
+ { int ret = r_stem_suffix_chain_before_ki(z);
+ if (ret == 0) { z->c = z->l - m4; goto lab5; }
+ if (ret < 0) return ret;
+ }
+ lab5:
+ ;
+ }
+ goto lab3;
+ lab4:
+ z->c = z->l - m3;
+ { int ret = r_mark_possessives(z);
+ if (ret == 0) { z->c = z->l - m2; goto lab2; }
+ if (ret < 0) return ret;
+ }
+ z->bra = z->c;
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ { int m5 = z->l - z->c; (void)m5;
+ z->ket = z->c;
+ { int ret = r_mark_lAr(z);
+ if (ret == 0) { z->c = z->l - m5; goto lab6; }
+ if (ret < 0) return ret;
+ }
+ z->bra = z->c;
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ { int ret = r_stem_suffix_chain_before_ki(z);
+ if (ret == 0) { z->c = z->l - m5; goto lab6; }
+ if (ret < 0) return ret;
+ }
+ lab6:
+ ;
+ }
+ }
+ lab3:
+ lab2:
+ ;
+ }
+ goto lab0;
+ lab1:
+ z->c = z->l - m1;
+ { int ret = r_mark_nUn(z);
+ if (ret == 0) goto lab7;
+ if (ret < 0) return ret;
+ }
+ z->bra = z->c;
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ { int m6 = z->l - z->c; (void)m6;
+ z->ket = z->c;
+ { int m7 = z->l - z->c; (void)m7;
+ { int ret = r_mark_lArI(z);
+ if (ret == 0) goto lab10;
+ if (ret < 0) return ret;
+ }
+ z->bra = z->c;
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ goto lab9;
+ lab10:
+ z->c = z->l - m7;
+ z->ket = z->c;
+ { int m8 = z->l - z->c; (void)m8;
+ { int ret = r_mark_possessives(z);
+ if (ret == 0) goto lab13;
+ if (ret < 0) return ret;
+ }
+ goto lab12;
+ lab13:
+ z->c = z->l - m8;
+ { int ret = r_mark_sU(z);
+ if (ret == 0) goto lab11;
+ if (ret < 0) return ret;
+ }
+ }
+ lab12:
+ z->bra = z->c;
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ { int m9 = z->l - z->c; (void)m9;
+ z->ket = z->c;
+ { int ret = r_mark_lAr(z);
+ if (ret == 0) { z->c = z->l - m9; goto lab14; }
+ if (ret < 0) return ret;
+ }
+ z->bra = z->c;
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ { int ret = r_stem_suffix_chain_before_ki(z);
+ if (ret == 0) { z->c = z->l - m9; goto lab14; }
+ if (ret < 0) return ret;
+ }
+ lab14:
+ ;
+ }
+ goto lab9;
+ lab11:
+ z->c = z->l - m7;
+ { int ret = r_stem_suffix_chain_before_ki(z);
+ if (ret == 0) { z->c = z->l - m6; goto lab8; }
+ if (ret < 0) return ret;
+ }
+ }
+ lab9:
+ lab8:
+ ;
+ }
+ goto lab0;
+ lab7:
+ z->c = z->l - m1;
+ { int ret = r_mark_ndA(z);
+ if (ret <= 0) return ret;
+ }
+ { int m10 = z->l - z->c; (void)m10;
+ { int ret = r_mark_lArI(z);
+ if (ret == 0) goto lab16;
+ if (ret < 0) return ret;
+ }
+ z->bra = z->c;
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ goto lab15;
+ lab16:
+ z->c = z->l - m10;
+ { int ret = r_mark_sU(z);
+ if (ret == 0) goto lab17;
+ if (ret < 0) return ret;
+ }
+ z->bra = z->c;
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ { int m11 = z->l - z->c; (void)m11;
+ z->ket = z->c;
+ { int ret = r_mark_lAr(z);
+ if (ret == 0) { z->c = z->l - m11; goto lab18; }
+ if (ret < 0) return ret;
+ }
+ z->bra = z->c;
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ { int ret = r_stem_suffix_chain_before_ki(z);
+ if (ret == 0) { z->c = z->l - m11; goto lab18; }
+ if (ret < 0) return ret;
+ }
+ lab18:
+ ;
+ }
+ goto lab15;
+ lab17:
+ z->c = z->l - m10;
+ { int ret = r_stem_suffix_chain_before_ki(z);
+ if (ret <= 0) return ret;
+ }
+ }
+ lab15:
+ ;
+ }
+lab0:
+ return 1;
+}
+
+static int r_stem_noun_suffixes(struct SN_env * z) {
+ { int m1 = z->l - z->c; (void)m1;
+ z->ket = z->c;
+ { int ret = r_mark_lAr(z);
+ if (ret == 0) goto lab1;
+ if (ret < 0) return ret;
+ }
+ z->bra = z->c;
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ { int m2 = z->l - z->c; (void)m2;
+ { int ret = r_stem_suffix_chain_before_ki(z);
+ if (ret == 0) { z->c = z->l - m2; goto lab2; }
+ if (ret < 0) return ret;
+ }
+ lab2:
+ ;
+ }
+ goto lab0;
+ lab1:
+ z->c = z->l - m1;
+ z->ket = z->c;
+ { int ret = r_mark_ncA(z);
+ if (ret == 0) goto lab3;
+ if (ret < 0) return ret;
+ }
+ z->bra = z->c;
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ { int m3 = z->l - z->c; (void)m3;
+ { int m4 = z->l - z->c; (void)m4;
+ z->ket = z->c;
+ { int ret = r_mark_lArI(z);
+ if (ret == 0) goto lab6;
+ if (ret < 0) return ret;
+ }
+ z->bra = z->c;
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ goto lab5;
+ lab6:
+ z->c = z->l - m4;
+ z->ket = z->c;
+ { int m5 = z->l - z->c; (void)m5;
+ { int ret = r_mark_possessives(z);
+ if (ret == 0) goto lab9;
+ if (ret < 0) return ret;
+ }
+ goto lab8;
+ lab9:
+ z->c = z->l - m5;
+ { int ret = r_mark_sU(z);
+ if (ret == 0) goto lab7;
+ if (ret < 0) return ret;
+ }
+ }
+ lab8:
+ z->bra = z->c;
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ { int m6 = z->l - z->c; (void)m6;
+ z->ket = z->c;
+ { int ret = r_mark_lAr(z);
+ if (ret == 0) { z->c = z->l - m6; goto lab10; }
+ if (ret < 0) return ret;
+ }
+ z->bra = z->c;
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ { int ret = r_stem_suffix_chain_before_ki(z);
+ if (ret == 0) { z->c = z->l - m6; goto lab10; }
+ if (ret < 0) return ret;
+ }
+ lab10:
+ ;
+ }
+ goto lab5;
+ lab7:
+ z->c = z->l - m4;
+ z->ket = z->c;
+ { int ret = r_mark_lAr(z);
+ if (ret == 0) { z->c = z->l - m3; goto lab4; }
+ if (ret < 0) return ret;
+ }
+ z->bra = z->c;
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ { int ret = r_stem_suffix_chain_before_ki(z);
+ if (ret == 0) { z->c = z->l - m3; goto lab4; }
+ if (ret < 0) return ret;
+ }
+ }
+ lab5:
+ lab4:
+ ;
+ }
+ goto lab0;
+ lab3:
+ z->c = z->l - m1;
+ z->ket = z->c;
+ { int m7 = z->l - z->c; (void)m7;
+ { int ret = r_mark_ndA(z);
+ if (ret == 0) goto lab13;
+ if (ret < 0) return ret;
+ }
+ goto lab12;
+ lab13:
+ z->c = z->l - m7;
+ { int ret = r_mark_nA(z);
+ if (ret == 0) goto lab11;
+ if (ret < 0) return ret;
+ }
+ }
+ lab12:
+ { int m8 = z->l - z->c; (void)m8;
+ { int ret = r_mark_lArI(z);
+ if (ret == 0) goto lab15;
+ if (ret < 0) return ret;
+ }
+ z->bra = z->c;
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ goto lab14;
+ lab15:
+ z->c = z->l - m8;
+ { int ret = r_mark_sU(z);
+ if (ret == 0) goto lab16;
+ if (ret < 0) return ret;
+ }
+ z->bra = z->c;
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ { int m9 = z->l - z->c; (void)m9;
+ z->ket = z->c;
+ { int ret = r_mark_lAr(z);
+ if (ret == 0) { z->c = z->l - m9; goto lab17; }
+ if (ret < 0) return ret;
+ }
+ z->bra = z->c;
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ { int ret = r_stem_suffix_chain_before_ki(z);
+ if (ret == 0) { z->c = z->l - m9; goto lab17; }
+ if (ret < 0) return ret;
+ }
+ lab17:
+ ;
+ }
+ goto lab14;
+ lab16:
+ z->c = z->l - m8;
+ { int ret = r_stem_suffix_chain_before_ki(z);
+ if (ret == 0) goto lab11;
+ if (ret < 0) return ret;
+ }
+ }
+ lab14:
+ goto lab0;
+ lab11:
+ z->c = z->l - m1;
+ z->ket = z->c;
+ { int m10 = z->l - z->c; (void)m10;
+ { int ret = r_mark_ndAn(z);
+ if (ret == 0) goto lab20;
+ if (ret < 0) return ret;
+ }
+ goto lab19;
+ lab20:
+ z->c = z->l - m10;
+ { int ret = r_mark_nU(z);
+ if (ret == 0) goto lab18;
+ if (ret < 0) return ret;
+ }
+ }
+ lab19:
+ { int m11 = z->l - z->c; (void)m11;
+ { int ret = r_mark_sU(z);
+ if (ret == 0) goto lab22;
+ if (ret < 0) return ret;
+ }
+ z->bra = z->c;
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ { int m12 = z->l - z->c; (void)m12;
+ z->ket = z->c;
+ { int ret = r_mark_lAr(z);
+ if (ret == 0) { z->c = z->l - m12; goto lab23; }
+ if (ret < 0) return ret;
+ }
+ z->bra = z->c;
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ { int ret = r_stem_suffix_chain_before_ki(z);
+ if (ret == 0) { z->c = z->l - m12; goto lab23; }
+ if (ret < 0) return ret;
+ }
+ lab23:
+ ;
+ }
+ goto lab21;
+ lab22:
+ z->c = z->l - m11;
+ { int ret = r_mark_lArI(z);
+ if (ret == 0) goto lab18;
+ if (ret < 0) return ret;
+ }
+ }
+ lab21:
+ goto lab0;
+ lab18:
+ z->c = z->l - m1;
+ z->ket = z->c;
+ { int ret = r_mark_DAn(z);
+ if (ret == 0) goto lab24;
+ if (ret < 0) return ret;
+ }
+ z->bra = z->c;
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ { int m13 = z->l - z->c; (void)m13;
+ z->ket = z->c;
+ { int m14 = z->l - z->c; (void)m14;
+ { int ret = r_mark_possessives(z);
+ if (ret == 0) goto lab27;
+ if (ret < 0) return ret;
+ }
+ z->bra = z->c;
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ { int m15 = z->l - z->c; (void)m15;
+ z->ket = z->c;
+ { int ret = r_mark_lAr(z);
+ if (ret == 0) { z->c = z->l - m15; goto lab28; }
+ if (ret < 0) return ret;
+ }
+ z->bra = z->c;
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ { int ret = r_stem_suffix_chain_before_ki(z);
+ if (ret == 0) { z->c = z->l - m15; goto lab28; }
+ if (ret < 0) return ret;
+ }
+ lab28:
+ ;
+ }
+ goto lab26;
+ lab27:
+ z->c = z->l - m14;
+ { int ret = r_mark_lAr(z);
+ if (ret == 0) goto lab29;
+ if (ret < 0) return ret;
+ }
+ z->bra = z->c;
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ { int m16 = z->l - z->c; (void)m16;
+ { int ret = r_stem_suffix_chain_before_ki(z);
+ if (ret == 0) { z->c = z->l - m16; goto lab30; }
+ if (ret < 0) return ret;
+ }
+ lab30:
+ ;
+ }
+ goto lab26;
+ lab29:
+ z->c = z->l - m14;
+ { int ret = r_stem_suffix_chain_before_ki(z);
+ if (ret == 0) { z->c = z->l - m13; goto lab25; }
+ if (ret < 0) return ret;
+ }
+ }
+ lab26:
+ lab25:
+ ;
+ }
+ goto lab0;
+ lab24:
+ z->c = z->l - m1;
+ z->ket = z->c;
+ { int m17 = z->l - z->c; (void)m17;
+ { int ret = r_mark_nUn(z);
+ if (ret == 0) goto lab33;
+ if (ret < 0) return ret;
+ }
+ goto lab32;
+ lab33:
+ z->c = z->l - m17;
+ { int ret = r_mark_ylA(z);
+ if (ret == 0) goto lab31;
+ if (ret < 0) return ret;
+ }
+ }
+ lab32:
+ z->bra = z->c;
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ { int m18 = z->l - z->c; (void)m18;
+ { int m19 = z->l - z->c; (void)m19;
+ z->ket = z->c;
+ { int ret = r_mark_lAr(z);
+ if (ret == 0) goto lab36;
+ if (ret < 0) return ret;
+ }
+ z->bra = z->c;
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ { int ret = r_stem_suffix_chain_before_ki(z);
+ if (ret == 0) goto lab36;
+ if (ret < 0) return ret;
+ }
+ goto lab35;
+ lab36:
+ z->c = z->l - m19;
+ z->ket = z->c;
+ { int m20 = z->l - z->c; (void)m20;
+ { int ret = r_mark_possessives(z);
+ if (ret == 0) goto lab39;
+ if (ret < 0) return ret;
+ }
+ goto lab38;
+ lab39:
+ z->c = z->l - m20;
+ { int ret = r_mark_sU(z);
+ if (ret == 0) goto lab37;
+ if (ret < 0) return ret;
+ }
+ }
+ lab38:
+ z->bra = z->c;
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ { int m21 = z->l - z->c; (void)m21;
+ z->ket = z->c;
+ { int ret = r_mark_lAr(z);
+ if (ret == 0) { z->c = z->l - m21; goto lab40; }
+ if (ret < 0) return ret;
+ }
+ z->bra = z->c;
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ { int ret = r_stem_suffix_chain_before_ki(z);
+ if (ret == 0) { z->c = z->l - m21; goto lab40; }
+ if (ret < 0) return ret;
+ }
+ lab40:
+ ;
+ }
+ goto lab35;
+ lab37:
+ z->c = z->l - m19;
+ { int ret = r_stem_suffix_chain_before_ki(z);
+ if (ret == 0) { z->c = z->l - m18; goto lab34; }
+ if (ret < 0) return ret;
+ }
+ }
+ lab35:
+ lab34:
+ ;
+ }
+ goto lab0;
+ lab31:
+ z->c = z->l - m1;
+ z->ket = z->c;
+ { int ret = r_mark_lArI(z);
+ if (ret == 0) goto lab41;
+ if (ret < 0) return ret;
+ }
+ z->bra = z->c;
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ goto lab0;
+ lab41:
+ z->c = z->l - m1;
+ { int ret = r_stem_suffix_chain_before_ki(z);
+ if (ret == 0) goto lab42;
+ if (ret < 0) return ret;
+ }
+ goto lab0;
+ lab42:
+ z->c = z->l - m1;
+ z->ket = z->c;
+ { int m22 = z->l - z->c; (void)m22;
+ { int ret = r_mark_DA(z);
+ if (ret == 0) goto lab45;
+ if (ret < 0) return ret;
+ }
+ goto lab44;
+ lab45:
+ z->c = z->l - m22;
+ { int ret = r_mark_yU(z);
+ if (ret == 0) goto lab46;
+ if (ret < 0) return ret;
+ }
+ goto lab44;
+ lab46:
+ z->c = z->l - m22;
+ { int ret = r_mark_yA(z);
+ if (ret == 0) goto lab43;
+ if (ret < 0) return ret;
+ }
+ }
+ lab44:
+ z->bra = z->c;
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ { int m23 = z->l - z->c; (void)m23;
+ z->ket = z->c;
+ { int m24 = z->l - z->c; (void)m24;
+ { int ret = r_mark_possessives(z);
+ if (ret == 0) goto lab49;
+ if (ret < 0) return ret;
+ }
+ z->bra = z->c;
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ { int m25 = z->l - z->c; (void)m25;
+ z->ket = z->c;
+ { int ret = r_mark_lAr(z);
+ if (ret == 0) { z->c = z->l - m25; goto lab50; }
+ if (ret < 0) return ret;
+ }
+ lab50:
+ ;
+ }
+ goto lab48;
+ lab49:
+ z->c = z->l - m24;
+ { int ret = r_mark_lAr(z);
+ if (ret == 0) { z->c = z->l - m23; goto lab47; }
+ if (ret < 0) return ret;
+ }
+ }
+ lab48:
+ z->bra = z->c;
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ z->ket = z->c;
+ { int ret = r_stem_suffix_chain_before_ki(z);
+ if (ret == 0) { z->c = z->l - m23; goto lab47; }
+ if (ret < 0) return ret;
+ }
+ lab47:
+ ;
+ }
+ goto lab0;
+ lab43:
+ z->c = z->l - m1;
+ z->ket = z->c;
+ { int m26 = z->l - z->c; (void)m26;
+ { int ret = r_mark_possessives(z);
+ if (ret == 0) goto lab52;
+ if (ret < 0) return ret;
+ }
+ goto lab51;
+ lab52:
+ z->c = z->l - m26;
+ { int ret = r_mark_sU(z);
+ if (ret <= 0) return ret;
+ }
+ }
+ lab51:
+ z->bra = z->c;
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ { int m27 = z->l - z->c; (void)m27;
+ z->ket = z->c;
+ { int ret = r_mark_lAr(z);
+ if (ret == 0) { z->c = z->l - m27; goto lab53; }
+ if (ret < 0) return ret;
+ }
+ z->bra = z->c;
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ { int ret = r_stem_suffix_chain_before_ki(z);
+ if (ret == 0) { z->c = z->l - m27; goto lab53; }
+ if (ret < 0) return ret;
+ }
+ lab53:
+ ;
+ }
+ }
+lab0:
+ return 1;
+}
+
+static int r_post_process_last_consonants(struct SN_env * z) {
+ int among_var;
+ z->ket = z->c;
+ among_var = find_among_b(z, a_23, 4);
+ if (!(among_var)) return 0;
+ z->bra = z->c;
+ switch (among_var) {
+ case 1:
+ { int ret = slice_from_s(z, 1, s_5);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 2:
+ { int ret = slice_from_s(z, 2, s_6);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 3:
+ { int ret = slice_from_s(z, 1, s_7);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 4:
+ { int ret = slice_from_s(z, 1, s_8);
+ if (ret < 0) return ret;
+ }
+ break;
+ }
+ return 1;
+}
+
+static int r_append_U_to_stems_ending_with_d_or_g(struct SN_env * z) {
+ { int m_test1 = z->l - z->c;
+ { int m2 = z->l - z->c; (void)m2;
+ if (z->c <= z->lb || z->p[z->c - 1] != 'd') goto lab1;
+ z->c--;
+ goto lab0;
+ lab1:
+ z->c = z->l - m2;
+ if (z->c <= z->lb || z->p[z->c - 1] != 'g') return 0;
+ z->c--;
+ }
+ lab0:
+ z->c = z->l - m_test1;
+ }
+ { int m3 = z->l - z->c; (void)m3;
+ { int m_test4 = z->l - z->c;
+ if (out_grouping_b_U(z, g_vowel, 97, 305, 1) < 0) goto lab3;
+ { int m5 = z->l - z->c; (void)m5;
+ if (z->c <= z->lb || z->p[z->c - 1] != 'a') goto lab5;
+ z->c--;
+ goto lab4;
+ lab5:
+ z->c = z->l - m5;
+ if (!(eq_s_b(z, 2, s_9))) goto lab3;
+ }
+ lab4:
+ z->c = z->l - m_test4;
+ }
+ { int ret;
+ { int saved_c = z->c;
+ ret = insert_s(z, z->c, z->c, 2, s_10);
+ z->c = saved_c;
+ }
+ if (ret < 0) return ret;
+ }
+ goto lab2;
+ lab3:
+ z->c = z->l - m3;
+ { int m_test6 = z->l - z->c;
+ if (out_grouping_b_U(z, g_vowel, 97, 305, 1) < 0) goto lab6;
+ { int m7 = z->l - z->c; (void)m7;
+ if (z->c <= z->lb || z->p[z->c - 1] != 'e') goto lab8;
+ z->c--;
+ goto lab7;
+ lab8:
+ z->c = z->l - m7;
+ if (z->c <= z->lb || z->p[z->c - 1] != 'i') goto lab6;
+ z->c--;
+ }
+ lab7:
+ z->c = z->l - m_test6;
+ }
+ { int ret;
+ { int saved_c = z->c;
+ ret = insert_s(z, z->c, z->c, 1, s_11);
+ z->c = saved_c;
+ }
+ if (ret < 0) return ret;
+ }
+ goto lab2;
+ lab6:
+ z->c = z->l - m3;
+ { int m_test8 = z->l - z->c;
+ if (out_grouping_b_U(z, g_vowel, 97, 305, 1) < 0) goto lab9;
+ { int m9 = z->l - z->c; (void)m9;
+ if (z->c <= z->lb || z->p[z->c - 1] != 'o') goto lab11;
+ z->c--;
+ goto lab10;
+ lab11:
+ z->c = z->l - m9;
+ if (z->c <= z->lb || z->p[z->c - 1] != 'u') goto lab9;
+ z->c--;
+ }
+ lab10:
+ z->c = z->l - m_test8;
+ }
+ { int ret;
+ { int saved_c = z->c;
+ ret = insert_s(z, z->c, z->c, 1, s_12);
+ z->c = saved_c;
+ }
+ if (ret < 0) return ret;
+ }
+ goto lab2;
+ lab9:
+ z->c = z->l - m3;
+ { int m_test10 = z->l - z->c;
+ if (out_grouping_b_U(z, g_vowel, 97, 305, 1) < 0) return 0;
+ { int m11 = z->l - z->c; (void)m11;
+ if (!(eq_s_b(z, 2, s_13))) goto lab13;
+ goto lab12;
+ lab13:
+ z->c = z->l - m11;
+ if (!(eq_s_b(z, 2, s_14))) return 0;
+ }
+ lab12:
+ z->c = z->l - m_test10;
+ }
+ { int ret;
+ { int saved_c = z->c;
+ ret = insert_s(z, z->c, z->c, 2, s_15);
+ z->c = saved_c;
+ }
+ if (ret < 0) return ret;
+ }
+ }
+lab2:
+ return 1;
+}
+
+static int r_is_reserved_word(struct SN_env * z) {
+ if (!(eq_s_b(z, 2, s_16))) return 0;
+ { int m1 = z->l - z->c; (void)m1;
+ if (!(eq_s_b(z, 3, s_17))) { z->c = z->l - m1; goto lab0; }
+ lab0:
+ ;
+ }
+ if (z->c > z->lb) return 0;
+ return 1;
+}
+
+static int r_more_than_one_syllable_word(struct SN_env * z) {
+ { int c_test1 = z->c;
+ { int i = 2;
+ while(1) {
+ int c2 = z->c;
+ {
+ int ret = out_grouping_U(z, g_vowel, 97, 305, 1);
+ if (ret < 0) goto lab0;
+ z->c += ret;
+ }
+ i--;
+ continue;
+ lab0:
+ z->c = c2;
+ break;
+ }
+ if (i > 0) return 0;
+ }
+ z->c = c_test1;
+ }
+ return 1;
+}
+
+static int r_postlude(struct SN_env * z) {
+ z->lb = z->c; z->c = z->l;
+
+ { int m1 = z->l - z->c; (void)m1;
+ { int ret = r_is_reserved_word(z);
+ if (ret == 0) goto lab0;
+ if (ret < 0) return ret;
+ }
+ return 0;
+ lab0:
+ z->c = z->l - m1;
+ }
+ { int m2 = z->l - z->c; (void)m2;
+ { int ret = r_append_U_to_stems_ending_with_d_or_g(z);
+ if (ret < 0) return ret;
+ }
+ z->c = z->l - m2;
+ }
+ { int m3 = z->l - z->c; (void)m3;
+ { int ret = r_post_process_last_consonants(z);
+ if (ret < 0) return ret;
+ }
+ z->c = z->l - m3;
+ }
+ z->c = z->lb;
+ return 1;
+}
+
+extern int turkish_UTF_8_stem(struct SN_env * z) {
+ { int ret = r_more_than_one_syllable_word(z);
+ if (ret <= 0) return ret;
+ }
+ z->lb = z->c; z->c = z->l;
+
+ { int m1 = z->l - z->c; (void)m1;
+ { int ret = r_stem_nominal_verb_suffixes(z);
+ if (ret < 0) return ret;
+ }
+ z->c = z->l - m1;
+ }
+ if (!(z->I[0])) return 0;
+ { int m2 = z->l - z->c; (void)m2;
+ { int ret = r_stem_noun_suffixes(z);
+ if (ret < 0) return ret;
+ }
+ z->c = z->l - m2;
+ }
+ z->c = z->lb;
+ { int ret = r_postlude(z);
+ if (ret <= 0) return ret;
+ }
+ return 1;
+}
+
+extern struct SN_env * turkish_UTF_8_create_env(void) { return SN_create_env(0, 1); }
+
+extern void turkish_UTF_8_close_env(struct SN_env * z) { SN_close_env(z, 0); }
+
diff --git a/src/backend/snowball/libstemmer/stem_UTF_8_yiddish.c b/src/backend/snowball/libstemmer/stem_UTF_8_yiddish.c
new file mode 100644
index 0000000..f169e05
--- /dev/null
+++ b/src/backend/snowball/libstemmer/stem_UTF_8_yiddish.c
@@ -0,0 +1,1233 @@
+/* Generated by Snowball 2.2.0 - https://snowballstem.org/ */
+
+#include "header.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+extern int yiddish_UTF_8_stem(struct SN_env * z);
+#ifdef __cplusplus
+}
+#endif
+static int r_standard_suffix(struct SN_env * z);
+static int r_R1plus3(struct SN_env * z);
+static int r_R1(struct SN_env * z);
+static int r_mark_regions(struct SN_env * z);
+static int r_prelude(struct SN_env * z);
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+extern struct SN_env * yiddish_UTF_8_create_env(void);
+extern void yiddish_UTF_8_close_env(struct SN_env * z);
+
+
+#ifdef __cplusplus
+}
+#endif
+static const symbol s_0_0[4] = { 0xD7, 0x95, 0xD7, 0x95 };
+static const symbol s_0_1[4] = { 0xD7, 0x95, 0xD7, 0x99 };
+static const symbol s_0_2[4] = { 0xD7, 0x99, 0xD7, 0x99 };
+static const symbol s_0_3[2] = { 0xD7, 0x9A };
+static const symbol s_0_4[2] = { 0xD7, 0x9D };
+static const symbol s_0_5[2] = { 0xD7, 0x9F };
+static const symbol s_0_6[2] = { 0xD7, 0xA3 };
+static const symbol s_0_7[2] = { 0xD7, 0xA5 };
+
+static const struct among a_0[8] =
+{
+{ 4, s_0_0, -1, 1, 0},
+{ 4, s_0_1, -1, 2, 0},
+{ 4, s_0_2, -1, 3, 0},
+{ 2, s_0_3, -1, 4, 0},
+{ 2, s_0_4, -1, 5, 0},
+{ 2, s_0_5, -1, 6, 0},
+{ 2, s_0_6, -1, 7, 0},
+{ 2, s_0_7, -1, 8, 0}
+};
+
+static const symbol s_1_0[10] = { 0xD7, 0x90, 0xD7, 0x93, 0xD7, 0x95, 0xD7, 0xA8, 0xD7, 0x9B };
+static const symbol s_1_1[8] = { 0xD7, 0x90, 0xD7, 0x94, 0xD7, 0x99, 0xD7, 0xA0 };
+static const symbol s_1_2[8] = { 0xD7, 0x90, 0xD7, 0x94, 0xD7, 0xA2, 0xD7, 0xA8 };
+static const symbol s_1_3[8] = { 0xD7, 0x90, 0xD7, 0x94, 0xD7, 0xB2, 0xD7, 0x9E };
+static const symbol s_1_4[6] = { 0xD7, 0x90, 0xD7, 0x95, 0xD7, 0x9E };
+static const symbol s_1_5[12] = { 0xD7, 0x90, 0xD7, 0x95, 0xD7, 0xA0, 0xD7, 0x98, 0xD7, 0xA2, 0xD7, 0xA8 };
+static const symbol s_1_6[10] = { 0xD7, 0x90, 0xD7, 0x99, 0xD7, 0x91, 0xD7, 0xA2, 0xD7, 0xA8 };
+static const symbol s_1_7[4] = { 0xD7, 0x90, 0xD7, 0xA0 };
+static const symbol s_1_8[6] = { 0xD7, 0x90, 0xD7, 0xA0, 0xD7, 0x98 };
+static const symbol s_1_9[14] = { 0xD7, 0x90, 0xD7, 0xA0, 0xD7, 0x98, 0xD7, 0xA7, 0xD7, 0xA2, 0xD7, 0x92, 0xD7, 0xA0 };
+static const symbol s_1_10[12] = { 0xD7, 0x90, 0xD7, 0xA0, 0xD7, 0x99, 0xD7, 0x93, 0xD7, 0xA2, 0xD7, 0xA8 };
+static const symbol s_1_11[4] = { 0xD7, 0x90, 0xD7, 0xA4 };
+static const symbol s_1_12[8] = { 0xD7, 0x90, 0xD7, 0xA4, 0xD7, 0x99, 0xD7, 0xA8 };
+static const symbol s_1_13[10] = { 0xD7, 0x90, 0xD7, 0xA7, 0xD7, 0xA2, 0xD7, 0x92, 0xD7, 0xA0 };
+static const symbol s_1_14[8] = { 0xD7, 0x90, 0xD7, 0xA8, 0xD7, 0x90, 0xD7, 0xA4 };
+static const symbol s_1_15[8] = { 0xD7, 0x90, 0xD7, 0xA8, 0xD7, 0x95, 0xD7, 0x9E };
+static const symbol s_1_16[14] = { 0xD7, 0x90, 0xD7, 0xA8, 0xD7, 0x95, 0xD7, 0xA0, 0xD7, 0x98, 0xD7, 0xA2, 0xD7, 0xA8 };
+static const symbol s_1_17[12] = { 0xD7, 0x90, 0xD7, 0xA8, 0xD7, 0x99, 0xD7, 0x91, 0xD7, 0xA2, 0xD7, 0xA8 };
+static const symbol s_1_18[8] = { 0xD7, 0x90, 0xD7, 0xA8, 0xD7, 0xB1, 0xD7, 0xA1 };
+static const symbol s_1_19[8] = { 0xD7, 0x90, 0xD7, 0xA8, 0xD7, 0xB1, 0xD7, 0xA4 };
+static const symbol s_1_20[8] = { 0xD7, 0x90, 0xD7, 0xA8, 0xD7, 0xB2, 0xD7, 0xA0 };
+static const symbol s_1_21[8] = { 0xD7, 0x90, 0xD7, 0xB0, 0xD7, 0xA2, 0xD7, 0xA7 };
+static const symbol s_1_22[6] = { 0xD7, 0x90, 0xD7, 0xB1, 0xD7, 0xA1 };
+static const symbol s_1_23[6] = { 0xD7, 0x90, 0xD7, 0xB1, 0xD7, 0xA4 };
+static const symbol s_1_24[6] = { 0xD7, 0x90, 0xD7, 0xB2, 0xD7, 0xA0 };
+static const symbol s_1_25[4] = { 0xD7, 0x91, 0xD7, 0x90 };
+static const symbol s_1_26[4] = { 0xD7, 0x91, 0xD7, 0xB2 };
+static const symbol s_1_27[8] = { 0xD7, 0x93, 0xD7, 0x95, 0xD7, 0xA8, 0xD7, 0x9B };
+static const symbol s_1_28[6] = { 0xD7, 0x93, 0xD7, 0xA2, 0xD7, 0xA8 };
+static const symbol s_1_29[6] = { 0xD7, 0x9E, 0xD7, 0x99, 0xD7, 0x98 };
+static const symbol s_1_30[6] = { 0xD7, 0xA0, 0xD7, 0x90, 0xD7, 0x9B };
+static const symbol s_1_31[6] = { 0xD7, 0xA4, 0xD7, 0x90, 0xD7, 0xA8 };
+static const symbol s_1_32[10] = { 0xD7, 0xA4, 0xD7, 0x90, 0xD7, 0xA8, 0xD7, 0x91, 0xD7, 0xB2 };
+static const symbol s_1_33[10] = { 0xD7, 0xA4, 0xD7, 0x90, 0xD7, 0xA8, 0xD7, 0xB1, 0xD7, 0xA1 };
+static const symbol s_1_34[16] = { 0xD7, 0xA4, 0xD7, 0x95, 0xD7, 0xA0, 0xD7, 0x90, 0xD7, 0xA0, 0xD7, 0x93, 0xD7, 0xA2, 0xD7, 0xA8 };
+static const symbol s_1_35[4] = { 0xD7, 0xA6, 0xD7, 0x95 };
+static const symbol s_1_36[14] = { 0xD7, 0xA6, 0xD7, 0x95, 0xD7, 0x96, 0xD7, 0x90, 0xD7, 0x9E, 0xD7, 0xA2, 0xD7, 0xA0 };
+static const symbol s_1_37[10] = { 0xD7, 0xA6, 0xD7, 0x95, 0xD7, 0xA0, 0xD7, 0xB1, 0xD7, 0xA4 };
+static const symbol s_1_38[10] = { 0xD7, 0xA6, 0xD7, 0x95, 0xD7, 0xA8, 0xD7, 0x99, 0xD7, 0xA7 };
+static const symbol s_1_39[4] = { 0xD7, 0xA6, 0xD7, 0xA2 };
+
+static const struct among a_1[40] =
+{
+{ 10, s_1_0, -1, 1, 0},
+{ 8, s_1_1, -1, 1, 0},
+{ 8, s_1_2, -1, 1, 0},
+{ 8, s_1_3, -1, 1, 0},
+{ 6, s_1_4, -1, 1, 0},
+{ 12, s_1_5, -1, 1, 0},
+{ 10, s_1_6, -1, 1, 0},
+{ 4, s_1_7, -1, 1, 0},
+{ 6, s_1_8, 7, 1, 0},
+{ 14, s_1_9, 8, 1, 0},
+{ 12, s_1_10, 7, 1, 0},
+{ 4, s_1_11, -1, 1, 0},
+{ 8, s_1_12, 11, 1, 0},
+{ 10, s_1_13, -1, 1, 0},
+{ 8, s_1_14, -1, 1, 0},
+{ 8, s_1_15, -1, 1, 0},
+{ 14, s_1_16, -1, 1, 0},
+{ 12, s_1_17, -1, 1, 0},
+{ 8, s_1_18, -1, 1, 0},
+{ 8, s_1_19, -1, 1, 0},
+{ 8, s_1_20, -1, 1, 0},
+{ 8, s_1_21, -1, 1, 0},
+{ 6, s_1_22, -1, 1, 0},
+{ 6, s_1_23, -1, 1, 0},
+{ 6, s_1_24, -1, 1, 0},
+{ 4, s_1_25, -1, 1, 0},
+{ 4, s_1_26, -1, 1, 0},
+{ 8, s_1_27, -1, 1, 0},
+{ 6, s_1_28, -1, 1, 0},
+{ 6, s_1_29, -1, 1, 0},
+{ 6, s_1_30, -1, 1, 0},
+{ 6, s_1_31, -1, 1, 0},
+{ 10, s_1_32, 31, 1, 0},
+{ 10, s_1_33, 31, 1, 0},
+{ 16, s_1_34, -1, 1, 0},
+{ 4, s_1_35, -1, 1, 0},
+{ 14, s_1_36, 35, 1, 0},
+{ 10, s_1_37, 35, 1, 0},
+{ 10, s_1_38, 35, 1, 0},
+{ 4, s_1_39, -1, 1, 0}
+};
+
+static const symbol s_2_0[6] = { 0xD7, 0x93, 0xD7, 0x96, 0xD7, 0xA9 };
+static const symbol s_2_1[6] = { 0xD7, 0xA9, 0xD7, 0x98, 0xD7, 0xA8 };
+static const symbol s_2_2[6] = { 0xD7, 0xA9, 0xD7, 0x98, 0xD7, 0xA9 };
+static const symbol s_2_3[6] = { 0xD7, 0xA9, 0xD7, 0xA4, 0xD7, 0xA8 };
+
+static const struct among a_2[4] =
+{
+{ 6, s_2_0, -1, -1, 0},
+{ 6, s_2_1, -1, -1, 0},
+{ 6, s_2_2, -1, -1, 0},
+{ 6, s_2_3, -1, -1, 0}
+};
+
+static const symbol s_3_0[8] = { 0xD7, 0xA7, 0xD7, 0x9C, 0xD7, 0x99, 0xD7, 0x91 };
+static const symbol s_3_1[6] = { 0xD7, 0xA8, 0xD7, 0x99, 0xD7, 0x91 };
+static const symbol s_3_2[8] = { 0xD7, 0x98, 0xD7, 0xA8, 0xD7, 0x99, 0xD7, 0x91 };
+static const symbol s_3_3[8] = { 0xD7, 0xA9, 0xD7, 0xA8, 0xD7, 0x99, 0xD7, 0x91 };
+static const symbol s_3_4[6] = { 0xD7, 0x94, 0xD7, 0xB1, 0xD7, 0x91 };
+static const symbol s_3_5[8] = { 0xD7, 0xA9, 0xD7, 0xB0, 0xD7, 0x99, 0xD7, 0x92 };
+static const symbol s_3_6[8] = { 0xD7, 0x92, 0xD7, 0x90, 0xD7, 0xA0, 0xD7, 0x92 };
+static const symbol s_3_7[8] = { 0xD7, 0x96, 0xD7, 0x95, 0xD7, 0xA0, 0xD7, 0x92 };
+static const symbol s_3_8[10] = { 0xD7, 0xA9, 0xD7, 0x9C, 0xD7, 0x95, 0xD7, 0xA0, 0xD7, 0x92 };
+static const symbol s_3_9[10] = { 0xD7, 0xA6, 0xD7, 0xB0, 0xD7, 0x95, 0xD7, 0xA0, 0xD7, 0x92 };
+static const symbol s_3_10[6] = { 0xD7, 0x91, 0xD7, 0xB1, 0xD7, 0x92 };
+static const symbol s_3_11[8] = { 0xD7, 0x91, 0xD7, 0x95, 0xD7, 0xA0, 0xD7, 0x93 };
+static const symbol s_3_12[6] = { 0xD7, 0xB0, 0xD7, 0x99, 0xD7, 0x96 };
+static const symbol s_3_13[6] = { 0xD7, 0x91, 0xD7, 0x99, 0xD7, 0x98 };
+static const symbol s_3_14[6] = { 0xD7, 0x9C, 0xD7, 0x99, 0xD7, 0x98 };
+static const symbol s_3_15[6] = { 0xD7, 0x9E, 0xD7, 0x99, 0xD7, 0x98 };
+static const symbol s_3_16[8] = { 0xD7, 0xA9, 0xD7, 0xA0, 0xD7, 0x99, 0xD7, 0x98 };
+static const symbol s_3_17[6] = { 0xD7, 0xA0, 0xD7, 0x95, 0xD7, 0x9E };
+static const symbol s_3_18[8] = { 0xD7, 0xA9, 0xD7, 0x98, 0xD7, 0x90, 0xD7, 0xA0 };
+static const symbol s_3_19[6] = { 0xD7, 0x91, 0xD7, 0x99, 0xD7, 0xA1 };
+static const symbol s_3_20[8] = { 0xD7, 0xA9, 0xD7, 0x9E, 0xD7, 0x99, 0xD7, 0xA1 };
+static const symbol s_3_21[6] = { 0xD7, 0xA8, 0xD7, 0x99, 0xD7, 0xA1 };
+static const symbol s_3_22[10] = { 0xD7, 0x98, 0xD7, 0xA8, 0xD7, 0x95, 0xD7, 0xA0, 0xD7, 0xA7 };
+static const symbol s_3_23[12] = { 0xD7, 0xA4, 0xD7, 0x90, 0xD7, 0xA8, 0xD7, 0x9C, 0xD7, 0xB1, 0xD7, 0xA8 };
+static const symbol s_3_24[8] = { 0xD7, 0xA9, 0xD7, 0xB0, 0xD7, 0xB1, 0xD7, 0xA8 };
+static const symbol s_3_25[8] = { 0xD7, 0xB0, 0xD7, 0x95, 0xD7, 0x98, 0xD7, 0xA9 };
+
+static const struct among a_3[26] =
+{
+{ 8, s_3_0, -1, 9, 0},
+{ 6, s_3_1, -1, 10, 0},
+{ 8, s_3_2, 1, 7, 0},
+{ 8, s_3_3, 1, 15, 0},
+{ 6, s_3_4, -1, 23, 0},
+{ 8, s_3_5, -1, 12, 0},
+{ 8, s_3_6, -1, 1, 0},
+{ 8, s_3_7, -1, 18, 0},
+{ 10, s_3_8, -1, 21, 0},
+{ 10, s_3_9, -1, 20, 0},
+{ 6, s_3_10, -1, 22, 0},
+{ 8, s_3_11, -1, 16, 0},
+{ 6, s_3_12, -1, 6, 0},
+{ 6, s_3_13, -1, 4, 0},
+{ 6, s_3_14, -1, 8, 0},
+{ 6, s_3_15, -1, 3, 0},
+{ 8, s_3_16, -1, 14, 0},
+{ 6, s_3_17, -1, 2, 0},
+{ 8, s_3_18, -1, 25, 0},
+{ 6, s_3_19, -1, 5, 0},
+{ 8, s_3_20, -1, 13, 0},
+{ 6, s_3_21, -1, 11, 0},
+{ 10, s_3_22, -1, 19, 0},
+{ 12, s_3_23, -1, 24, 0},
+{ 8, s_3_24, -1, 26, 0},
+{ 8, s_3_25, -1, 17, 0}
+};
+
+static const symbol s_4_0[6] = { 0xD7, 0x95, 0xD7, 0xA0, 0xD7, 0x92 };
+static const symbol s_4_1[6] = { 0xD7, 0xA1, 0xD7, 0x98, 0xD7, 0x95 };
+static const symbol s_4_2[2] = { 0xD7, 0x98 };
+static const symbol s_4_3[10] = { 0xD7, 0x91, 0xD7, 0xA8, 0xD7, 0x90, 0xD7, 0x9B, 0xD7, 0x98 };
+static const symbol s_4_4[4] = { 0xD7, 0xA1, 0xD7, 0x98 };
+static const symbol s_4_5[6] = { 0xD7, 0x99, 0xD7, 0xA1, 0xD7, 0x98 };
+static const symbol s_4_6[4] = { 0xD7, 0xA2, 0xD7, 0x98 };
+static const symbol s_4_7[8] = { 0xD7, 0xA9, 0xD7, 0x90, 0xD7, 0xA4, 0xD7, 0x98 };
+static const symbol s_4_8[6] = { 0xD7, 0x94, 0xD7, 0xB2, 0xD7, 0x98 };
+static const symbol s_4_9[6] = { 0xD7, 0xA7, 0xD7, 0xB2, 0xD7, 0x98 };
+static const symbol s_4_10[8] = { 0xD7, 0x99, 0xD7, 0xA7, 0xD7, 0xB2, 0xD7, 0x98 };
+static const symbol s_4_11[6] = { 0xD7, 0x9C, 0xD7, 0xA2, 0xD7, 0x9B };
+static const symbol s_4_12[8] = { 0xD7, 0xA2, 0xD7, 0x9C, 0xD7, 0xA2, 0xD7, 0x9B };
+static const symbol s_4_13[6] = { 0xD7, 0x99, 0xD7, 0x96, 0xD7, 0x9E };
+static const symbol s_4_14[4] = { 0xD7, 0x99, 0xD7, 0x9E };
+static const symbol s_4_15[4] = { 0xD7, 0xA2, 0xD7, 0x9E };
+static const symbol s_4_16[8] = { 0xD7, 0xA2, 0xD7, 0xA0, 0xD7, 0xA2, 0xD7, 0x9E };
+static const symbol s_4_17[10] = { 0xD7, 0x98, 0xD7, 0xA2, 0xD7, 0xA0, 0xD7, 0xA2, 0xD7, 0x9E };
+static const symbol s_4_18[2] = { 0xD7, 0xA0 };
+static const symbol s_4_19[10] = { 0xD7, 0xA7, 0xD7, 0x9C, 0xD7, 0x99, 0xD7, 0x91, 0xD7, 0xA0 };
+static const symbol s_4_20[8] = { 0xD7, 0xA8, 0xD7, 0x99, 0xD7, 0x91, 0xD7, 0xA0 };
+static const symbol s_4_21[10] = { 0xD7, 0x98, 0xD7, 0xA8, 0xD7, 0x99, 0xD7, 0x91, 0xD7, 0xA0 };
+static const symbol s_4_22[10] = { 0xD7, 0xA9, 0xD7, 0xA8, 0xD7, 0x99, 0xD7, 0x91, 0xD7, 0xA0 };
+static const symbol s_4_23[8] = { 0xD7, 0x94, 0xD7, 0xB1, 0xD7, 0x91, 0xD7, 0xA0 };
+static const symbol s_4_24[10] = { 0xD7, 0xA9, 0xD7, 0xB0, 0xD7, 0x99, 0xD7, 0x92, 0xD7, 0xA0 };
+static const symbol s_4_25[10] = { 0xD7, 0x96, 0xD7, 0x95, 0xD7, 0xA0, 0xD7, 0x92, 0xD7, 0xA0 };
+static const symbol s_4_26[12] = { 0xD7, 0xA9, 0xD7, 0x9C, 0xD7, 0x95, 0xD7, 0xA0, 0xD7, 0x92, 0xD7, 0xA0 };
+static const symbol s_4_27[12] = { 0xD7, 0xA6, 0xD7, 0xB0, 0xD7, 0x95, 0xD7, 0xA0, 0xD7, 0x92, 0xD7, 0xA0 };
+static const symbol s_4_28[8] = { 0xD7, 0x91, 0xD7, 0xB1, 0xD7, 0x92, 0xD7, 0xA0 };
+static const symbol s_4_29[10] = { 0xD7, 0x91, 0xD7, 0x95, 0xD7, 0xA0, 0xD7, 0x93, 0xD7, 0xA0 };
+static const symbol s_4_30[8] = { 0xD7, 0xB0, 0xD7, 0x99, 0xD7, 0x96, 0xD7, 0xA0 };
+static const symbol s_4_31[4] = { 0xD7, 0x98, 0xD7, 0xA0 };
+static const symbol s_4_32[10] = { 'G', 'E', 0xD7, 0x91, 0xD7, 0x99, 0xD7, 0x98, 0xD7, 0xA0 };
+static const symbol s_4_33[10] = { 'G', 'E', 0xD7, 0x9C, 0xD7, 0x99, 0xD7, 0x98, 0xD7, 0xA0 };
+static const symbol s_4_34[10] = { 'G', 'E', 0xD7, 0x9E, 0xD7, 0x99, 0xD7, 0x98, 0xD7, 0xA0 };
+static const symbol s_4_35[10] = { 0xD7, 0xA9, 0xD7, 0xA0, 0xD7, 0x99, 0xD7, 0x98, 0xD7, 0xA0 };
+static const symbol s_4_36[6] = { 0xD7, 0xA1, 0xD7, 0x98, 0xD7, 0xA0 };
+static const symbol s_4_37[8] = { 0xD7, 0x99, 0xD7, 0xA1, 0xD7, 0x98, 0xD7, 0xA0 };
+static const symbol s_4_38[6] = { 0xD7, 0xA2, 0xD7, 0x98, 0xD7, 0xA0 };
+static const symbol s_4_39[10] = { 'G', 'E', 0xD7, 0x91, 0xD7, 0x99, 0xD7, 0xA1, 0xD7, 0xA0 };
+static const symbol s_4_40[10] = { 0xD7, 0xA9, 0xD7, 0x9E, 0xD7, 0x99, 0xD7, 0xA1, 0xD7, 0xA0 };
+static const symbol s_4_41[10] = { 'G', 'E', 0xD7, 0xA8, 0xD7, 0x99, 0xD7, 0xA1, 0xD7, 0xA0 };
+static const symbol s_4_42[4] = { 0xD7, 0xA2, 0xD7, 0xA0 };
+static const symbol s_4_43[12] = { 0xD7, 0x92, 0xD7, 0x90, 0xD7, 0xA0, 0xD7, 0x92, 0xD7, 0xA2, 0xD7, 0xA0 };
+static const symbol s_4_44[8] = { 0xD7, 0xA2, 0xD7, 0x9C, 0xD7, 0xA2, 0xD7, 0xA0 };
+static const symbol s_4_45[10] = { 0xD7, 0xA0, 0xD7, 0x95, 0xD7, 0x9E, 0xD7, 0xA2, 0xD7, 0xA0 };
+static const symbol s_4_46[10] = { 0xD7, 0x99, 0xD7, 0x96, 0xD7, 0x9E, 0xD7, 0xA2, 0xD7, 0xA0 };
+static const symbol s_4_47[12] = { 0xD7, 0xA9, 0xD7, 0x98, 0xD7, 0x90, 0xD7, 0xA0, 0xD7, 0xA2, 0xD7, 0xA0 };
+static const symbol s_4_48[12] = { 0xD7, 0x98, 0xD7, 0xA8, 0xD7, 0x95, 0xD7, 0xA0, 0xD7, 0xA7, 0xD7, 0xA0 };
+static const symbol s_4_49[14] = { 0xD7, 0xA4, 0xD7, 0x90, 0xD7, 0xA8, 0xD7, 0x9C, 0xD7, 0xB1, 0xD7, 0xA8, 0xD7, 0xA0 };
+static const symbol s_4_50[10] = { 0xD7, 0xA9, 0xD7, 0xB0, 0xD7, 0xB1, 0xD7, 0xA8, 0xD7, 0xA0 };
+static const symbol s_4_51[10] = { 0xD7, 0xB0, 0xD7, 0x95, 0xD7, 0x98, 0xD7, 0xA9, 0xD7, 0xA0 };
+static const symbol s_4_52[6] = { 0xD7, 0x92, 0xD7, 0xB2, 0xD7, 0xA0 };
+static const symbol s_4_53[2] = { 0xD7, 0xA1 };
+static const symbol s_4_54[4] = { 0xD7, 0x98, 0xD7, 0xA1 };
+static const symbol s_4_55[6] = { 0xD7, 0xA2, 0xD7, 0x98, 0xD7, 0xA1 };
+static const symbol s_4_56[4] = { 0xD7, 0xA0, 0xD7, 0xA1 };
+static const symbol s_4_57[6] = { 0xD7, 0x98, 0xD7, 0xA0, 0xD7, 0xA1 };
+static const symbol s_4_58[6] = { 0xD7, 0xA2, 0xD7, 0xA0, 0xD7, 0xA1 };
+static const symbol s_4_59[4] = { 0xD7, 0xA2, 0xD7, 0xA1 };
+static const symbol s_4_60[6] = { 0xD7, 0x99, 0xD7, 0xA2, 0xD7, 0xA1 };
+static const symbol s_4_61[8] = { 0xD7, 0xA2, 0xD7, 0x9C, 0xD7, 0xA2, 0xD7, 0xA1 };
+static const symbol s_4_62[6] = { 0xD7, 0xA2, 0xD7, 0xA8, 0xD7, 0xA1 };
+static const symbol s_4_63[10] = { 0xD7, 0xA2, 0xD7, 0xA0, 0xD7, 0xA2, 0xD7, 0xA8, 0xD7, 0xA1 };
+static const symbol s_4_64[2] = { 0xD7, 0xA2 };
+static const symbol s_4_65[4] = { 0xD7, 0x98, 0xD7, 0xA2 };
+static const symbol s_4_66[6] = { 0xD7, 0xA1, 0xD7, 0x98, 0xD7, 0xA2 };
+static const symbol s_4_67[6] = { 0xD7, 0xA2, 0xD7, 0x98, 0xD7, 0xA2 };
+static const symbol s_4_68[4] = { 0xD7, 0x99, 0xD7, 0xA2 };
+static const symbol s_4_69[6] = { 0xD7, 0xA2, 0xD7, 0x9C, 0xD7, 0xA2 };
+static const symbol s_4_70[6] = { 0xD7, 0xA2, 0xD7, 0xA0, 0xD7, 0xA2 };
+static const symbol s_4_71[8] = { 0xD7, 0x98, 0xD7, 0xA2, 0xD7, 0xA0, 0xD7, 0xA2 };
+static const symbol s_4_72[4] = { 0xD7, 0xA2, 0xD7, 0xA8 };
+static const symbol s_4_73[6] = { 0xD7, 0x98, 0xD7, 0xA2, 0xD7, 0xA8 };
+static const symbol s_4_74[8] = { 0xD7, 0xA1, 0xD7, 0x98, 0xD7, 0xA2, 0xD7, 0xA8 };
+static const symbol s_4_75[8] = { 0xD7, 0xA2, 0xD7, 0x98, 0xD7, 0xA2, 0xD7, 0xA8 };
+static const symbol s_4_76[8] = { 0xD7, 0xA2, 0xD7, 0xA0, 0xD7, 0xA2, 0xD7, 0xA8 };
+static const symbol s_4_77[10] = { 0xD7, 0x98, 0xD7, 0xA2, 0xD7, 0xA0, 0xD7, 0xA2, 0xD7, 0xA8 };
+static const symbol s_4_78[4] = { 0xD7, 0x95, 0xD7, 0xAA };
+
+static const struct among a_4[79] =
+{
+{ 6, s_4_0, -1, 1, 0},
+{ 6, s_4_1, -1, 1, 0},
+{ 2, s_4_2, -1, 1, 0},
+{ 10, s_4_3, 2, 31, 0},
+{ 4, s_4_4, 2, 1, 0},
+{ 6, s_4_5, 4, 33, 0},
+{ 4, s_4_6, 2, 1, 0},
+{ 8, s_4_7, 2, 1, 0},
+{ 6, s_4_8, 2, 1, 0},
+{ 6, s_4_9, 2, 1, 0},
+{ 8, s_4_10, 9, 1, 0},
+{ 6, s_4_11, -1, 1, 0},
+{ 8, s_4_12, 11, 1, 0},
+{ 6, s_4_13, -1, 1, 0},
+{ 4, s_4_14, -1, 1, 0},
+{ 4, s_4_15, -1, 1, 0},
+{ 8, s_4_16, 15, 3, 0},
+{ 10, s_4_17, 16, 4, 0},
+{ 2, s_4_18, -1, 1, 0},
+{ 10, s_4_19, 18, 14, 0},
+{ 8, s_4_20, 18, 15, 0},
+{ 10, s_4_21, 20, 12, 0},
+{ 10, s_4_22, 20, 7, 0},
+{ 8, s_4_23, 18, 27, 0},
+{ 10, s_4_24, 18, 17, 0},
+{ 10, s_4_25, 18, 22, 0},
+{ 12, s_4_26, 18, 25, 0},
+{ 12, s_4_27, 18, 24, 0},
+{ 8, s_4_28, 18, 26, 0},
+{ 10, s_4_29, 18, 20, 0},
+{ 8, s_4_30, 18, 11, 0},
+{ 4, s_4_31, 18, 4, 0},
+{ 10, s_4_32, 31, 9, 0},
+{ 10, s_4_33, 31, 13, 0},
+{ 10, s_4_34, 31, 8, 0},
+{ 10, s_4_35, 31, 19, 0},
+{ 6, s_4_36, 31, 1, 0},
+{ 8, s_4_37, 36, 1, 0},
+{ 6, s_4_38, 31, 1, 0},
+{ 10, s_4_39, 18, 10, 0},
+{ 10, s_4_40, 18, 18, 0},
+{ 10, s_4_41, 18, 16, 0},
+{ 4, s_4_42, 18, 1, 0},
+{ 12, s_4_43, 42, 5, 0},
+{ 8, s_4_44, 42, 1, 0},
+{ 10, s_4_45, 42, 6, 0},
+{ 10, s_4_46, 42, 1, 0},
+{ 12, s_4_47, 42, 29, 0},
+{ 12, s_4_48, 18, 23, 0},
+{ 14, s_4_49, 18, 28, 0},
+{ 10, s_4_50, 18, 30, 0},
+{ 10, s_4_51, 18, 21, 0},
+{ 6, s_4_52, 18, 5, 0},
+{ 2, s_4_53, -1, 1, 0},
+{ 4, s_4_54, 53, 4, 0},
+{ 6, s_4_55, 54, 1, 0},
+{ 4, s_4_56, 53, 1, 0},
+{ 6, s_4_57, 56, 4, 0},
+{ 6, s_4_58, 56, 3, 0},
+{ 4, s_4_59, 53, 1, 0},
+{ 6, s_4_60, 59, 2, 0},
+{ 8, s_4_61, 59, 1, 0},
+{ 6, s_4_62, 53, 1, 0},
+{ 10, s_4_63, 62, 1, 0},
+{ 2, s_4_64, -1, 1, 0},
+{ 4, s_4_65, 64, 4, 0},
+{ 6, s_4_66, 65, 1, 0},
+{ 6, s_4_67, 65, 1, 0},
+{ 4, s_4_68, 64, -1, 0},
+{ 6, s_4_69, 64, 1, 0},
+{ 6, s_4_70, 64, 3, 0},
+{ 8, s_4_71, 70, 4, 0},
+{ 4, s_4_72, -1, 1, 0},
+{ 6, s_4_73, 72, 4, 0},
+{ 8, s_4_74, 73, 1, 0},
+{ 8, s_4_75, 73, 1, 0},
+{ 8, s_4_76, 72, 3, 0},
+{ 10, s_4_77, 76, 4, 0},
+{ 4, s_4_78, -1, 32, 0}
+};
+
+static const symbol s_5_0[6] = { 0xD7, 0x95, 0xD7, 0xA0, 0xD7, 0x92 };
+static const symbol s_5_1[8] = { 0xD7, 0xA9, 0xD7, 0x90, 0xD7, 0xA4, 0xD7, 0x98 };
+static const symbol s_5_2[6] = { 0xD7, 0x94, 0xD7, 0xB2, 0xD7, 0x98 };
+static const symbol s_5_3[6] = { 0xD7, 0xA7, 0xD7, 0xB2, 0xD7, 0x98 };
+static const symbol s_5_4[8] = { 0xD7, 0x99, 0xD7, 0xA7, 0xD7, 0xB2, 0xD7, 0x98 };
+static const symbol s_5_5[2] = { 0xD7, 0x9C };
+
+static const struct among a_5[6] =
+{
+{ 6, s_5_0, -1, 1, 0},
+{ 8, s_5_1, -1, 1, 0},
+{ 6, s_5_2, -1, 1, 0},
+{ 6, s_5_3, -1, 1, 0},
+{ 8, s_5_4, 3, 1, 0},
+{ 2, s_5_5, -1, 2, 0}
+};
+
+static const symbol s_6_0[4] = { 0xD7, 0x99, 0xD7, 0x92 };
+static const symbol s_6_1[4] = { 0xD7, 0x99, 0xD7, 0xA7 };
+static const symbol s_6_2[6] = { 0xD7, 0x93, 0xD7, 0x99, 0xD7, 0xA7 };
+static const symbol s_6_3[8] = { 0xD7, 0xA0, 0xD7, 0x93, 0xD7, 0x99, 0xD7, 0xA7 };
+static const symbol s_6_4[10] = { 0xD7, 0xA2, 0xD7, 0xA0, 0xD7, 0x93, 0xD7, 0x99, 0xD7, 0xA7 };
+static const symbol s_6_5[8] = { 0xD7, 0x91, 0xD7, 0x9C, 0xD7, 0x99, 0xD7, 0xA7 };
+static const symbol s_6_6[8] = { 0xD7, 0x92, 0xD7, 0x9C, 0xD7, 0x99, 0xD7, 0xA7 };
+static const symbol s_6_7[6] = { 0xD7, 0xA0, 0xD7, 0x99, 0xD7, 0xA7 };
+static const symbol s_6_8[4] = { 0xD7, 0x99, 0xD7, 0xA9 };
+
+static const struct among a_6[9] =
+{
+{ 4, s_6_0, -1, 1, 0},
+{ 4, s_6_1, -1, 1, 0},
+{ 6, s_6_2, 1, 1, 0},
+{ 8, s_6_3, 2, 1, 0},
+{ 10, s_6_4, 3, 1, 0},
+{ 8, s_6_5, 1, -1, 0},
+{ 8, s_6_6, 1, -1, 0},
+{ 6, s_6_7, 1, 1, 0},
+{ 4, s_6_8, -1, 1, 0}
+};
+
+static const unsigned char g_niked[] = { 255, 155, 6 };
+
+static const unsigned char g_vowel[] = { 33, 2, 4, 0, 6 };
+
+static const unsigned char g_consonant[] = { 239, 254, 253, 131 };
+
+static const symbol s_0[] = { 0xD6, 0xBC };
+static const symbol s_1[] = { 0xD7, 0xB0 };
+static const symbol s_2[] = { 0xD6, 0xB4 };
+static const symbol s_3[] = { 0xD7, 0xB1 };
+static const symbol s_4[] = { 0xD6, 0xB4 };
+static const symbol s_5[] = { 0xD7, 0xB2 };
+static const symbol s_6[] = { 0xD7, 0x9B };
+static const symbol s_7[] = { 0xD7, 0x9E };
+static const symbol s_8[] = { 0xD7, 0xA0 };
+static const symbol s_9[] = { 0xD7, 0xA4 };
+static const symbol s_10[] = { 0xD7, 0xA6 };
+static const symbol s_11[] = { 0xD7, 0x92, 0xD7, 0xA2 };
+static const symbol s_12[] = { 0xD7, 0x9C, 0xD7, 0x98 };
+static const symbol s_13[] = { 0xD7, 0x91, 0xD7, 0xA0 };
+static const symbol s_14[] = { 'G', 'E' };
+static const symbol s_15[] = { 0xD7, 0xA6, 0xD7, 0x95, 0xD7, 0x92, 0xD7, 0xA0 };
+static const symbol s_16[] = { 0xD7, 0xA6, 0xD7, 0x95, 0xD7, 0xA7, 0xD7, 0x98 };
+static const symbol s_17[] = { 0xD7, 0xA6, 0xD7, 0x95, 0xD7, 0xA7, 0xD7, 0xA0 };
+static const symbol s_18[] = { 0xD7, 0x92, 0xD7, 0xA2, 0xD7, 0x91, 0xD7, 0xA0 };
+static const symbol s_19[] = { 0xD7, 0x92, 0xD7, 0xA2 };
+static const symbol s_20[] = { 'G', 'E' };
+static const symbol s_21[] = { 0xD7, 0xA6, 0xD7, 0x95 };
+static const symbol s_22[] = { 'T', 'S', 'U' };
+static const symbol s_23[] = { 0xD7, 0x99, 0xD7, 0xA2 };
+static const symbol s_24[] = { 0xD7, 0x92, 0xD7, 0xB2 };
+static const symbol s_25[] = { 0xD7, 0xA0, 0xD7, 0xA2, 0xD7, 0x9E };
+static const symbol s_26[] = { 0xD7, 0x9E, 0xD7, 0xB2, 0xD7, 0x93 };
+static const symbol s_27[] = { 0xD7, 0x91, 0xD7, 0xB2, 0xD7, 0x98 };
+static const symbol s_28[] = { 0xD7, 0x91, 0xD7, 0xB2, 0xD7, 0xA1 };
+static const symbol s_29[] = { 0xD7, 0xB0, 0xD7, 0xB2, 0xD7, 0x96 };
+static const symbol s_30[] = { 0xD7, 0x98, 0xD7, 0xA8, 0xD7, 0xB2, 0xD7, 0x91 };
+static const symbol s_31[] = { 0xD7, 0x9C, 0xD7, 0xB2, 0xD7, 0x98 };
+static const symbol s_32[] = { 0xD7, 0xA7, 0xD7, 0x9C, 0xD7, 0xB2, 0xD7, 0x91 };
+static const symbol s_33[] = { 0xD7, 0xA8, 0xD7, 0xB2, 0xD7, 0x91 };
+static const symbol s_34[] = { 0xD7, 0xA8, 0xD7, 0xB2, 0xD7, 0xA1 };
+static const symbol s_35[] = { 0xD7, 0xA9, 0xD7, 0xB0, 0xD7, 0xB2, 0xD7, 0x92 };
+static const symbol s_36[] = { 0xD7, 0xA9, 0xD7, 0x9E, 0xD7, 0xB2, 0xD7, 0xA1 };
+static const symbol s_37[] = { 0xD7, 0xA9, 0xD7, 0xA0, 0xD7, 0xB2, 0xD7, 0x93 };
+static const symbol s_38[] = { 0xD7, 0xA9, 0xD7, 0xA8, 0xD7, 0xB2, 0xD7, 0x91 };
+static const symbol s_39[] = { 0xD7, 0x91, 0xD7, 0x99, 0xD7, 0xA0, 0xD7, 0x93 };
+static const symbol s_40[] = { 0xD7, 0xB0, 0xD7, 0x99, 0xD7, 0x98, 0xD7, 0xA9 };
+static const symbol s_41[] = { 0xD7, 0x96, 0xD7, 0x99, 0xD7, 0xA0, 0xD7, 0x92 };
+static const symbol s_42[] = { 0xD7, 0x98, 0xD7, 0xA8, 0xD7, 0x99, 0xD7, 0xA0, 0xD7, 0xA7 };
+static const symbol s_43[] = { 0xD7, 0xA6, 0xD7, 0xB0, 0xD7, 0x99, 0xD7, 0xA0, 0xD7, 0x92 };
+static const symbol s_44[] = { 0xD7, 0xA9, 0xD7, 0x9C, 0xD7, 0x99, 0xD7, 0xA0, 0xD7, 0x92 };
+static const symbol s_45[] = { 0xD7, 0x91, 0xD7, 0xB2, 0xD7, 0x92 };
+static const symbol s_46[] = { 0xD7, 0x94, 0xD7, 0xB2, 0xD7, 0x91 };
+static const symbol s_47[] = { 0xD7, 0xA4, 0xD7, 0x90, 0xD7, 0xA8, 0xD7, 0x9C, 0xD7, 0x99, 0xD7, 0xA8 };
+static const symbol s_48[] = { 0xD7, 0xA9, 0xD7, 0x98, 0xD7, 0xB2 };
+static const symbol s_49[] = { 0xD7, 0xA9, 0xD7, 0xB0, 0xD7, 0xA2, 0xD7, 0xA8 };
+static const symbol s_50[] = { 0xD7, 0x98 };
+static const symbol s_51[] = { 0xD7, 0x91, 0xD7, 0xA8, 0xD7, 0x90, 0xD7, 0x9B };
+static const symbol s_52[] = { 0xD7, 0x92, 0xD7, 0xA2 };
+static const symbol s_53[] = { 0xD7, 0x91, 0xD7, 0xA8, 0xD7, 0xA2, 0xD7, 0xA0, 0xD7, 0x92 };
+static const symbol s_54[] = { 0xD7, 0x92, 0xD7, 0xB2 };
+static const symbol s_55[] = { 0xD7, 0xA0, 0xD7, 0xA2, 0xD7, 0x9E };
+static const symbol s_56[] = { 0xD7, 0xA9, 0xD7, 0xA8, 0xD7, 0xB2, 0xD7, 0x91 };
+static const symbol s_57[] = { 0xD7, 0x9E, 0xD7, 0xB2, 0xD7, 0x93 };
+static const symbol s_58[] = { 0xD7, 0x91, 0xD7, 0xB2, 0xD7, 0x98 };
+static const symbol s_59[] = { 0xD7, 0x91, 0xD7, 0xB2, 0xD7, 0xA1 };
+static const symbol s_60[] = { 0xD7, 0xB0, 0xD7, 0xB2, 0xD7, 0x96 };
+static const symbol s_61[] = { 0xD7, 0x98, 0xD7, 0xA8, 0xD7, 0xB2, 0xD7, 0x91 };
+static const symbol s_62[] = { 0xD7, 0x9C, 0xD7, 0xB2, 0xD7, 0x98 };
+static const symbol s_63[] = { 0xD7, 0xA7, 0xD7, 0x9C, 0xD7, 0xB2, 0xD7, 0x91 };
+static const symbol s_64[] = { 0xD7, 0xA8, 0xD7, 0xB2, 0xD7, 0x91 };
+static const symbol s_65[] = { 0xD7, 0xA8, 0xD7, 0xB2, 0xD7, 0xA1 };
+static const symbol s_66[] = { 0xD7, 0xA9, 0xD7, 0xB0, 0xD7, 0xB2, 0xD7, 0x92 };
+static const symbol s_67[] = { 0xD7, 0xA9, 0xD7, 0x9E, 0xD7, 0xB2, 0xD7, 0xA1 };
+static const symbol s_68[] = { 0xD7, 0xA9, 0xD7, 0xA0, 0xD7, 0xB2, 0xD7, 0x93 };
+static const symbol s_69[] = { 0xD7, 0x91, 0xD7, 0x99, 0xD7, 0xA0, 0xD7, 0x93 };
+static const symbol s_70[] = { 0xD7, 0xB0, 0xD7, 0x99, 0xD7, 0x98, 0xD7, 0xA9 };
+static const symbol s_71[] = { 0xD7, 0x96, 0xD7, 0x99, 0xD7, 0xA0, 0xD7, 0x92 };
+static const symbol s_72[] = { 0xD7, 0x98, 0xD7, 0xA8, 0xD7, 0x99, 0xD7, 0xA0, 0xD7, 0xA7 };
+static const symbol s_73[] = { 0xD7, 0xA6, 0xD7, 0xB0, 0xD7, 0x99, 0xD7, 0xA0, 0xD7, 0x92 };
+static const symbol s_74[] = { 0xD7, 0xA9, 0xD7, 0x9C, 0xD7, 0x99, 0xD7, 0xA0, 0xD7, 0x92 };
+static const symbol s_75[] = { 0xD7, 0x91, 0xD7, 0xB2, 0xD7, 0x92 };
+static const symbol s_76[] = { 0xD7, 0x94, 0xD7, 0xB2, 0xD7, 0x91 };
+static const symbol s_77[] = { 0xD7, 0xA4, 0xD7, 0x90, 0xD7, 0xA8, 0xD7, 0x9C, 0xD7, 0x99, 0xD7, 0xA8 };
+static const symbol s_78[] = { 0xD7, 0xA9, 0xD7, 0x98, 0xD7, 0xB2 };
+static const symbol s_79[] = { 0xD7, 0xA9, 0xD7, 0xB0, 0xD7, 0xA2, 0xD7, 0xA8 };
+static const symbol s_80[] = { 0xD7, 0x91, 0xD7, 0xA8, 0xD7, 0xA2, 0xD7, 0xA0, 0xD7, 0x92 };
+static const symbol s_81[] = { 0xD7, 0x94 };
+static const symbol s_82[] = { 0xD7, 0x92 };
+static const symbol s_83[] = { 0xD7, 0xA9 };
+static const symbol s_84[] = { 0xD7, 0x99, 0xD7, 0xA1 };
+static const symbol s_85[] = { 'G', 'E' };
+static const symbol s_86[] = { 'T', 'S', 'U' };
+
+static int r_prelude(struct SN_env * z) {
+ int among_var;
+ { int c1 = z->c;
+ while(1) {
+ int c2 = z->c;
+ while(1) {
+ int c3 = z->c;
+ z->bra = z->c;
+ among_var = find_among(z, a_0, 8);
+ if (!(among_var)) goto lab2;
+ z->ket = z->c;
+ switch (among_var) {
+ case 1:
+ { int c4 = z->c;
+ if (!(eq_s(z, 2, s_0))) goto lab3;
+ goto lab2;
+ lab3:
+ z->c = c4;
+ }
+ { int ret = slice_from_s(z, 2, s_1);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 2:
+ { int c5 = z->c;
+ if (!(eq_s(z, 2, s_2))) goto lab4;
+ goto lab2;
+ lab4:
+ z->c = c5;
+ }
+ { int ret = slice_from_s(z, 2, s_3);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 3:
+ { int c6 = z->c;
+ if (!(eq_s(z, 2, s_4))) goto lab5;
+ goto lab2;
+ lab5:
+ z->c = c6;
+ }
+ { int ret = slice_from_s(z, 2, s_5);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 4:
+ { int ret = slice_from_s(z, 2, s_6);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 5:
+ { int ret = slice_from_s(z, 2, s_7);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 6:
+ { int ret = slice_from_s(z, 2, s_8);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 7:
+ { int ret = slice_from_s(z, 2, s_9);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 8:
+ { int ret = slice_from_s(z, 2, s_10);
+ if (ret < 0) return ret;
+ }
+ break;
+ }
+ z->c = c3;
+ break;
+ lab2:
+ z->c = c3;
+ { int ret = skip_utf8(z->p, z->c, z->l, 1);
+ if (ret < 0) goto lab1;
+ z->c = ret;
+ }
+ }
+ continue;
+ lab1:
+ z->c = c2;
+ break;
+ }
+ z->c = c1;
+ }
+ { int c7 = z->c;
+ while(1) {
+ int c8 = z->c;
+ while(1) {
+ int c9 = z->c;
+ z->bra = z->c;
+ if (in_grouping_U(z, g_niked, 1456, 1474, 0)) goto lab8;
+ z->ket = z->c;
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ z->c = c9;
+ break;
+ lab8:
+ z->c = c9;
+ { int ret = skip_utf8(z->p, z->c, z->l, 1);
+ if (ret < 0) goto lab7;
+ z->c = ret;
+ }
+ }
+ continue;
+ lab7:
+ z->c = c8;
+ break;
+ }
+ z->c = c7;
+ }
+ return 1;
+}
+
+static int r_mark_regions(struct SN_env * z) {
+ z->I[1] = z->l;
+ { int c1 = z->c;
+ z->bra = z->c;
+ if (!(eq_s(z, 4, s_11))) { z->c = c1; goto lab0; }
+ z->ket = z->c;
+ { int c2 = z->c;
+ { int c3 = z->c;
+ if (!(eq_s(z, 4, s_12))) goto lab3;
+ goto lab2;
+ lab3:
+ z->c = c3;
+ if (!(eq_s(z, 4, s_13))) goto lab1;
+ }
+ lab2:
+ { z->c = c1; goto lab0; }
+ lab1:
+ z->c = c2;
+ }
+ { int ret = slice_from_s(z, 2, s_14);
+ if (ret < 0) return ret;
+ }
+ lab0:
+ ;
+ }
+ { int c4 = z->c;
+ if (!(find_among(z, a_1, 40))) { z->c = c4; goto lab4; }
+ { int c5 = z->c;
+ { int c_test6 = z->c;
+ { int c7 = z->c;
+ if (!(eq_s(z, 8, s_15))) goto lab8;
+ goto lab7;
+ lab8:
+ z->c = c7;
+ if (!(eq_s(z, 8, s_16))) goto lab9;
+ goto lab7;
+ lab9:
+ z->c = c7;
+ if (!(eq_s(z, 8, s_17))) goto lab6;
+ }
+ lab7:
+ if (z->c < z->l) goto lab6;
+ z->c = c_test6;
+ }
+ goto lab5;
+ lab6:
+ z->c = c5;
+ { int c_test8 = z->c;
+ if (!(eq_s(z, 8, s_18))) goto lab10;
+ z->c = c_test8;
+ }
+ goto lab5;
+ lab10:
+ z->c = c5;
+ z->bra = z->c;
+ if (!(eq_s(z, 4, s_19))) goto lab11;
+ z->ket = z->c;
+ { int ret = slice_from_s(z, 2, s_20);
+ if (ret < 0) return ret;
+ }
+ goto lab5;
+ lab11:
+ z->c = c5;
+ z->bra = z->c;
+ if (!(eq_s(z, 4, s_21))) { z->c = c4; goto lab4; }
+ z->ket = z->c;
+ { int ret = slice_from_s(z, 3, s_22);
+ if (ret < 0) return ret;
+ }
+ }
+ lab5:
+ lab4:
+ ;
+ }
+ { int c_test9 = z->c;
+ { int ret = skip_utf8(z->p, z->c, z->l, 3);
+ if (ret < 0) return 0;
+ z->c = ret;
+ }
+ z->I[0] = z->c;
+ z->c = c_test9;
+ }
+ { int c10 = z->c;
+ if (z->c + 5 >= z->l || (z->p[z->c + 5] != 169 && z->p[z->c + 5] != 168)) { z->c = c10; goto lab12; }
+ if (!(find_among(z, a_2, 4))) { z->c = c10; goto lab12; }
+ lab12:
+ ;
+ }
+ { int c11 = z->c;
+ if (in_grouping_U(z, g_consonant, 1489, 1520, 0)) goto lab13;
+ if (in_grouping_U(z, g_consonant, 1489, 1520, 0)) goto lab13;
+ if (in_grouping_U(z, g_consonant, 1489, 1520, 0)) goto lab13;
+ z->I[1] = z->c;
+ return 0;
+ lab13:
+ z->c = c11;
+ }
+ if (out_grouping_U(z, g_vowel, 1488, 1522, 1) < 0) return 0;
+ while(1) {
+ if (in_grouping_U(z, g_vowel, 1488, 1522, 0)) goto lab14;
+ continue;
+ lab14:
+ break;
+ }
+ z->I[1] = z->c;
+
+ if (!(z->I[1] < z->I[0])) goto lab15;
+ z->I[1] = z->I[0];
+lab15:
+ return 1;
+}
+
+static int r_R1(struct SN_env * z) {
+ if (!(z->I[1] <= z->c)) return 0;
+ return 1;
+}
+
+static int r_R1plus3(struct SN_env * z) {
+ if (!(z->I[1] <= (z->c + 6))) return 0;
+ return 1;
+}
+
+static int r_standard_suffix(struct SN_env * z) {
+ int among_var;
+ { int m1 = z->l - z->c; (void)m1;
+ z->ket = z->c;
+ among_var = find_among_b(z, a_4, 79);
+ if (!(among_var)) goto lab0;
+ z->bra = z->c;
+ switch (among_var) {
+ case 1:
+ { int ret = r_R1(z);
+ if (ret == 0) goto lab0;
+ if (ret < 0) return ret;
+ }
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 2:
+ { int ret = r_R1(z);
+ if (ret == 0) goto lab0;
+ if (ret < 0) return ret;
+ }
+ { int ret = slice_from_s(z, 4, s_23);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 3:
+ { int ret = r_R1(z);
+ if (ret == 0) goto lab0;
+ if (ret < 0) return ret;
+ }
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ z->ket = z->c;
+ among_var = find_among_b(z, a_3, 26);
+ if (!(among_var)) goto lab0;
+ z->bra = z->c;
+ switch (among_var) {
+ case 1:
+ { int ret = slice_from_s(z, 4, s_24);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 2:
+ { int ret = slice_from_s(z, 6, s_25);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 3:
+ { int ret = slice_from_s(z, 6, s_26);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 4:
+ { int ret = slice_from_s(z, 6, s_27);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 5:
+ { int ret = slice_from_s(z, 6, s_28);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 6:
+ { int ret = slice_from_s(z, 6, s_29);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 7:
+ { int ret = slice_from_s(z, 8, s_30);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 8:
+ { int ret = slice_from_s(z, 6, s_31);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 9:
+ { int ret = slice_from_s(z, 8, s_32);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 10:
+ { int ret = slice_from_s(z, 6, s_33);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 11:
+ { int ret = slice_from_s(z, 6, s_34);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 12:
+ { int ret = slice_from_s(z, 8, s_35);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 13:
+ { int ret = slice_from_s(z, 8, s_36);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 14:
+ { int ret = slice_from_s(z, 8, s_37);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 15:
+ { int ret = slice_from_s(z, 8, s_38);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 16:
+ { int ret = slice_from_s(z, 8, s_39);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 17:
+ { int ret = slice_from_s(z, 8, s_40);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 18:
+ { int ret = slice_from_s(z, 8, s_41);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 19:
+ { int ret = slice_from_s(z, 10, s_42);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 20:
+ { int ret = slice_from_s(z, 10, s_43);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 21:
+ { int ret = slice_from_s(z, 10, s_44);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 22:
+ { int ret = slice_from_s(z, 6, s_45);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 23:
+ { int ret = slice_from_s(z, 6, s_46);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 24:
+ { int ret = slice_from_s(z, 12, s_47);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 25:
+ { int ret = slice_from_s(z, 6, s_48);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 26:
+ { int ret = slice_from_s(z, 8, s_49);
+ if (ret < 0) return ret;
+ }
+ break;
+ }
+ break;
+ case 4:
+ { int m2 = z->l - z->c; (void)m2;
+ { int ret = r_R1(z);
+ if (ret == 0) goto lab2;
+ if (ret < 0) return ret;
+ }
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ goto lab1;
+ lab2:
+ z->c = z->l - m2;
+ { int ret = slice_from_s(z, 2, s_50);
+ if (ret < 0) return ret;
+ }
+ }
+ lab1:
+ z->ket = z->c;
+ if (!(eq_s_b(z, 8, s_51))) goto lab0;
+ { int m3 = z->l - z->c; (void)m3;
+ if (!(eq_s_b(z, 4, s_52))) { z->c = z->l - m3; goto lab3; }
+ lab3:
+ ;
+ }
+ z->bra = z->c;
+ { int ret = slice_from_s(z, 10, s_53);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 5:
+ { int ret = slice_from_s(z, 4, s_54);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 6:
+ { int ret = slice_from_s(z, 6, s_55);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 7:
+ { int ret = slice_from_s(z, 8, s_56);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 8:
+ { int ret = slice_from_s(z, 6, s_57);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 9:
+ { int ret = slice_from_s(z, 6, s_58);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 10:
+ { int ret = slice_from_s(z, 6, s_59);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 11:
+ { int ret = slice_from_s(z, 6, s_60);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 12:
+ { int ret = slice_from_s(z, 8, s_61);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 13:
+ { int ret = slice_from_s(z, 6, s_62);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 14:
+ { int ret = slice_from_s(z, 8, s_63);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 15:
+ { int ret = slice_from_s(z, 6, s_64);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 16:
+ { int ret = slice_from_s(z, 6, s_65);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 17:
+ { int ret = slice_from_s(z, 8, s_66);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 18:
+ { int ret = slice_from_s(z, 8, s_67);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 19:
+ { int ret = slice_from_s(z, 8, s_68);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 20:
+ { int ret = slice_from_s(z, 8, s_69);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 21:
+ { int ret = slice_from_s(z, 8, s_70);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 22:
+ { int ret = slice_from_s(z, 8, s_71);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 23:
+ { int ret = slice_from_s(z, 10, s_72);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 24:
+ { int ret = slice_from_s(z, 10, s_73);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 25:
+ { int ret = slice_from_s(z, 10, s_74);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 26:
+ { int ret = slice_from_s(z, 6, s_75);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 27:
+ { int ret = slice_from_s(z, 6, s_76);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 28:
+ { int ret = slice_from_s(z, 12, s_77);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 29:
+ { int ret = slice_from_s(z, 6, s_78);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 30:
+ { int ret = slice_from_s(z, 8, s_79);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 31:
+ { int ret = slice_from_s(z, 10, s_80);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 32:
+ { int ret = r_R1(z);
+ if (ret == 0) goto lab0;
+ if (ret < 0) return ret;
+ }
+ { int ret = slice_from_s(z, 2, s_81);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 33:
+ { int m4 = z->l - z->c; (void)m4;
+ { int m5 = z->l - z->c; (void)m5;
+ if (!(eq_s_b(z, 2, s_82))) goto lab7;
+ goto lab6;
+ lab7:
+ z->c = z->l - m5;
+ if (!(eq_s_b(z, 2, s_83))) goto lab5;
+ }
+ lab6:
+ { int m6 = z->l - z->c; (void)m6;
+ { int ret = r_R1plus3(z);
+ if (ret == 0) { z->c = z->l - m6; goto lab8; }
+ if (ret < 0) return ret;
+ }
+ { int ret = slice_from_s(z, 4, s_84);
+ if (ret < 0) return ret;
+ }
+ lab8:
+ ;
+ }
+ goto lab4;
+ lab5:
+ z->c = z->l - m4;
+ { int ret = r_R1(z);
+ if (ret == 0) goto lab0;
+ if (ret < 0) return ret;
+ }
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ }
+ lab4:
+ break;
+ }
+ lab0:
+ z->c = z->l - m1;
+ }
+ { int m7 = z->l - z->c; (void)m7;
+ z->ket = z->c;
+ if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 4 || !((285474816 >> (z->p[z->c - 1] & 0x1f)) & 1)) goto lab9;
+ among_var = find_among_b(z, a_5, 6);
+ if (!(among_var)) goto lab9;
+ z->bra = z->c;
+ switch (among_var) {
+ case 1:
+ { int ret = r_R1(z);
+ if (ret == 0) goto lab9;
+ if (ret < 0) return ret;
+ }
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ break;
+ case 2:
+ { int ret = r_R1(z);
+ if (ret == 0) goto lab9;
+ if (ret < 0) return ret;
+ }
+ if (in_grouping_b_U(z, g_consonant, 1489, 1520, 0)) goto lab9;
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ break;
+ }
+ lab9:
+ z->c = z->l - m7;
+ }
+ { int m8 = z->l - z->c; (void)m8;
+ z->ket = z->c;
+ among_var = find_among_b(z, a_6, 9);
+ if (!(among_var)) goto lab10;
+ z->bra = z->c;
+ switch (among_var) {
+ case 1:
+ { int ret = r_R1(z);
+ if (ret == 0) goto lab10;
+ if (ret < 0) return ret;
+ }
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ break;
+ }
+ lab10:
+ z->c = z->l - m8;
+ }
+ { int m9 = z->l - z->c; (void)m9;
+ while(1) {
+ int m10 = z->l - z->c; (void)m10;
+ while(1) {
+ int m11 = z->l - z->c; (void)m11;
+ z->ket = z->c;
+ { int m12 = z->l - z->c; (void)m12;
+ if (!(eq_s_b(z, 2, s_85))) goto lab15;
+ goto lab14;
+ lab15:
+ z->c = z->l - m12;
+ if (!(eq_s_b(z, 3, s_86))) goto lab13;
+ }
+ lab14:
+ z->bra = z->c;
+ { int ret = slice_del(z);
+ if (ret < 0) return ret;
+ }
+ z->c = z->l - m11;
+ break;
+ lab13:
+ z->c = z->l - m11;
+ { int ret = skip_b_utf8(z->p, z->c, z->lb, 1);
+ if (ret < 0) goto lab12;
+ z->c = ret;
+ }
+ }
+ continue;
+ lab12:
+ z->c = z->l - m10;
+ break;
+ }
+ z->c = z->l - m9;
+ }
+ return 1;
+}
+
+extern int yiddish_UTF_8_stem(struct SN_env * z) {
+
+ { int ret = r_prelude(z);
+ if (ret < 0) return ret;
+ }
+ { int c1 = z->c;
+ { int ret = r_mark_regions(z);
+ if (ret < 0) return ret;
+ }
+ z->c = c1;
+ }
+ z->lb = z->c; z->c = z->l;
+
+
+ { int ret = r_standard_suffix(z);
+ if (ret < 0) return ret;
+ }
+ z->c = z->lb;
+ return 1;
+}
+
+extern struct SN_env * yiddish_UTF_8_create_env(void) { return SN_create_env(0, 2); }
+
+extern void yiddish_UTF_8_close_env(struct SN_env * z) { SN_close_env(z, 0); }
+
diff --git a/src/backend/snowball/libstemmer/utilities.c b/src/backend/snowball/libstemmer/utilities.c
new file mode 100644
index 0000000..1ecd241
--- /dev/null
+++ b/src/backend/snowball/libstemmer/utilities.c
@@ -0,0 +1,508 @@
+#include "header.h"
+
+#define CREATE_SIZE 1
+
+extern symbol * create_s(void) {
+ symbol * p;
+ void * mem = malloc(HEAD + (CREATE_SIZE + 1) * sizeof(symbol));
+ if (mem == NULL) return NULL;
+ p = (symbol *) (HEAD + (char *) mem);
+ CAPACITY(p) = CREATE_SIZE;
+ SET_SIZE(p, 0);
+ return p;
+}
+
+extern void lose_s(symbol * p) {
+ if (p == NULL) return;
+ free((char *) p - HEAD);
+}
+
+/*
+ new_p = skip_utf8(p, c, l, n); skips n characters forwards from p + c.
+ new_p is the new position, or -1 on failure.
+
+ -- used to implement hop and next in the utf8 case.
+*/
+
+extern int skip_utf8(const symbol * p, int c, int limit, int n) {
+ int b;
+ if (n < 0) return -1;
+ for (; n > 0; n--) {
+ if (c >= limit) return -1;
+ b = p[c++];
+ if (b >= 0xC0) { /* 1100 0000 */
+ while (c < limit) {
+ b = p[c];
+ if (b >= 0xC0 || b < 0x80) break;
+ /* break unless b is 10------ */
+ c++;
+ }
+ }
+ }
+ return c;
+}
+
+/*
+ new_p = skip_b_utf8(p, c, lb, n); skips n characters backwards from p + c - 1
+ new_p is the new position, or -1 on failure.
+
+ -- used to implement hop and next in the utf8 case.
+*/
+
+extern int skip_b_utf8(const symbol * p, int c, int limit, int n) {
+ int b;
+ if (n < 0) return -1;
+ for (; n > 0; n--) {
+ if (c <= limit) return -1;
+ b = p[--c];
+ if (b >= 0x80) { /* 1000 0000 */
+ while (c > limit) {
+ b = p[c];
+ if (b >= 0xC0) break; /* 1100 0000 */
+ c--;
+ }
+ }
+ }
+ return c;
+}
+
+/* Code for character groupings: utf8 cases */
+
+static int get_utf8(const symbol * p, int c, int l, int * slot) {
+ int b0, b1, b2;
+ if (c >= l) return 0;
+ b0 = p[c++];
+ if (b0 < 0xC0 || c == l) { /* 1100 0000 */
+ *slot = b0;
+ return 1;
+ }
+ b1 = p[c++] & 0x3F;
+ if (b0 < 0xE0 || c == l) { /* 1110 0000 */
+ *slot = (b0 & 0x1F) << 6 | b1;
+ return 2;
+ }
+ b2 = p[c++] & 0x3F;
+ if (b0 < 0xF0 || c == l) { /* 1111 0000 */
+ *slot = (b0 & 0xF) << 12 | b1 << 6 | b2;
+ return 3;
+ }
+ *slot = (b0 & 0x7) << 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 a, b;
+ if (c <= lb) return 0;
+ 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;
+ }
+ a |= (b & 0x3F) << 6;
+ b = p[--c];
+ if (b >= 0xE0 || c == lb) { /* 1110 0000 */
+ *slot = (b & 0xF) << 12 | a;
+ return 3;
+ }
+ *slot = (p[--c] & 0x7) << 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) {
+ do {
+ int ch;
+ int w = get_utf8(z->p, z->c, z->l, & ch);
+ if (!w) return -1;
+ if (ch > max || (ch -= min) < 0 || (s[ch >> 3] & (0X1 << (ch & 0X7))) == 0)
+ return w;
+ z->c += w;
+ } while (repeat);
+ return 0;
+}
+
+extern int in_grouping_b_U(struct SN_env * z, const unsigned char * s, int min, int max, int repeat) {
+ do {
+ int ch;
+ int w = get_b_utf8(z->p, z->c, z->lb, & ch);
+ if (!w) return -1;
+ if (ch > max || (ch -= min) < 0 || (s[ch >> 3] & (0X1 << (ch & 0X7))) == 0)
+ return w;
+ z->c -= w;
+ } while (repeat);
+ return 0;
+}
+
+extern int out_grouping_U(struct SN_env * z, const unsigned char * s, int min, int max, int repeat) {
+ do {
+ int ch;
+ int w = get_utf8(z->p, z->c, z->l, & ch);
+ if (!w) return -1;
+ if (!(ch > max || (ch -= min) < 0 || (s[ch >> 3] & (0X1 << (ch & 0X7))) == 0))
+ return w;
+ z->c += w;
+ } while (repeat);
+ return 0;
+}
+
+extern int out_grouping_b_U(struct SN_env * z, const unsigned char * s, int min, int max, int repeat) {
+ do {
+ int ch;
+ int w = get_b_utf8(z->p, z->c, z->lb, & ch);
+ if (!w) return -1;
+ if (!(ch > max || (ch -= min) < 0 || (s[ch >> 3] & (0X1 << (ch & 0X7))) == 0))
+ return w;
+ z->c -= w;
+ } while (repeat);
+ return 0;
+}
+
+/* Code for character groupings: non-utf8 cases */
+
+extern int in_grouping(struct SN_env * z, const unsigned char * s, int min, int max, int repeat) {
+ do {
+ int ch;
+ if (z->c >= z->l) return -1;
+ ch = z->p[z->c];
+ if (ch > max || (ch -= min) < 0 || (s[ch >> 3] & (0X1 << (ch & 0X7))) == 0)
+ return 1;
+ z->c++;
+ } while (repeat);
+ return 0;
+}
+
+extern int in_grouping_b(struct SN_env * z, const unsigned char * s, int min, int max, int repeat) {
+ do {
+ int ch;
+ if (z->c <= z->lb) return -1;
+ ch = z->p[z->c - 1];
+ if (ch > max || (ch -= min) < 0 || (s[ch >> 3] & (0X1 << (ch & 0X7))) == 0)
+ return 1;
+ z->c--;
+ } while (repeat);
+ return 0;
+}
+
+extern int out_grouping(struct SN_env * z, const unsigned char * s, int min, int max, int repeat) {
+ do {
+ int ch;
+ if (z->c >= z->l) return -1;
+ ch = z->p[z->c];
+ if (!(ch > max || (ch -= min) < 0 || (s[ch >> 3] & (0X1 << (ch & 0X7))) == 0))
+ return 1;
+ z->c++;
+ } while (repeat);
+ return 0;
+}
+
+extern int out_grouping_b(struct SN_env * z, const unsigned char * s, int min, int max, int repeat) {
+ do {
+ int ch;
+ if (z->c <= z->lb) return -1;
+ ch = z->p[z->c - 1];
+ if (!(ch > max || (ch -= min) < 0 || (s[ch >> 3] & (0X1 << (ch & 0X7))) == 0))
+ return 1;
+ z->c--;
+ } while (repeat);
+ return 0;
+}
+
+extern int eq_s(struct SN_env * z, int s_size, const symbol * s) {
+ if (z->l - z->c < s_size || memcmp(z->p + z->c, s, s_size * sizeof(symbol)) != 0) return 0;
+ z->c += s_size; return 1;
+}
+
+extern int eq_s_b(struct SN_env * z, int s_size, const symbol * s) {
+ if (z->c - z->lb < s_size || memcmp(z->p + z->c - s_size, s, s_size * sizeof(symbol)) != 0) return 0;
+ z->c -= s_size; return 1;
+}
+
+extern int eq_v(struct SN_env * z, const symbol * p) {
+ return eq_s(z, SIZE(p), p);
+}
+
+extern int eq_v_b(struct SN_env * z, const symbol * p) {
+ return eq_s_b(z, SIZE(p), p);
+}
+
+extern int find_among(struct SN_env * z, const struct among * v, int v_size) {
+
+ int i = 0;
+ int j = v_size;
+
+ int c = z->c; int l = z->l;
+ const symbol * q = z->p + c;
+
+ const struct among * w;
+
+ int common_i = 0;
+ int common_j = 0;
+
+ int first_key_inspected = 0;
+
+ while (1) {
+ int k = i + ((j - i) >> 1);
+ int diff = 0;
+ int common = common_i < common_j ? common_i : common_j; /* smaller */
+ w = v + k;
+ {
+ int i2; for (i2 = common; i2 < w->s_size; i2++) {
+ if (c + common == l) { diff = -1; break; }
+ diff = q[common] - w->s[i2];
+ if (diff != 0) break;
+ 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 */
+
+ /* - but now we need to go round once more to get
+ v->s inspected. This looks messy, but is actually
+ the optimal approach. */
+
+ if (first_key_inspected) break;
+ first_key_inspected = 1;
+ }
+ }
+ while (1) {
+ w = v + i;
+ if (common_i >= w->s_size) {
+ z->c = c + w->s_size;
+ if (w->function == 0) return w->result;
+ {
+ int res = w->function(z);
+ z->c = c + w->s_size;
+ if (res) return w->result;
+ }
+ }
+ i = w->substring_i;
+ if (i < 0) return 0;
+ }
+}
+
+/* find_among_b is for backwards processing. Same comments apply */
+
+extern int find_among_b(struct SN_env * z, const struct among * v, int v_size) {
+
+ int i = 0;
+ int j = v_size;
+
+ int c = z->c; int lb = z->lb;
+ const symbol * q = z->p + c - 1;
+
+ const struct among * w;
+
+ int common_i = 0;
+ int common_j = 0;
+
+ int first_key_inspected = 0;
+
+ while (1) {
+ int k = i + ((j - i) >> 1);
+ int diff = 0;
+ int common = common_i < common_j ? common_i : common_j;
+ w = v + k;
+ {
+ int i2; for (i2 = w->s_size - 1 - common; i2 >= 0; i2--) {
+ if (c - common == lb) { diff = -1; break; }
+ diff = q[- common] - w->s[i2];
+ if (diff != 0) break;
+ common++;
+ }
+ }
+ if (diff < 0) { j = k; common_j = common; }
+ else { i = k; common_i = common; }
+ if (j - i <= 1) {
+ if (i > 0) break;
+ if (j == i) break;
+ if (first_key_inspected) break;
+ first_key_inspected = 1;
+ }
+ }
+ while (1) {
+ w = v + i;
+ if (common_i >= w->s_size) {
+ z->c = c - w->s_size;
+ if (w->function == 0) return w->result;
+ {
+ int res = w->function(z);
+ z->c = c - w->s_size;
+ if (res) return w->result;
+ }
+ }
+ i = w->substring_i;
+ if (i < 0) return 0;
+ }
+}
+
+
+/* Increase the size of the buffer pointed to by p to at least n symbols.
+ * If insufficient memory, returns NULL and frees the old buffer.
+ */
+static symbol * increase_size(symbol * p, int n) {
+ symbol * q;
+ int new_size = n + 20;
+ void * mem = realloc((char *) p - HEAD,
+ HEAD + (new_size + 1) * sizeof(symbol));
+ if (mem == NULL) {
+ lose_s(p);
+ return NULL;
+ }
+ q = (symbol *) (HEAD + (char *)mem);
+ CAPACITY(q) = new_size;
+ return q;
+}
+
+/* to replace symbols between c_bra and c_ket in z->p by the
+ s_size symbols at s.
+ Returns 0 on success, -1 on error.
+ Also, frees z->p (and sets it to NULL) on error.
+*/
+extern int replace_s(struct SN_env * z, int c_bra, int c_ket, int s_size, const symbol * s, int * adjptr)
+{
+ int adjustment;
+ int len;
+ if (z->p == NULL) {
+ z->p = create_s();
+ if (z->p == NULL) return -1;
+ }
+ adjustment = s_size - (c_ket - c_bra);
+ len = SIZE(z->p);
+ if (adjustment != 0) {
+ if (adjustment + len > CAPACITY(z->p)) {
+ z->p = increase_size(z->p, adjustment + len);
+ if (z->p == NULL) return -1;
+ }
+ memmove(z->p + c_ket + adjustment,
+ z->p + c_ket,
+ (len - c_ket) * sizeof(symbol));
+ SET_SIZE(z->p, adjustment + len);
+ z->l += adjustment;
+ if (z->c >= c_ket)
+ z->c += adjustment;
+ 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)
+ *adjptr = adjustment;
+ return 0;
+}
+
+static int slice_check(struct SN_env * z) {
+
+ if (z->bra < 0 ||
+ z->bra > z->ket ||
+ z->ket > z->l ||
+ z->p == NULL ||
+ z->l > SIZE(z->p)) /* this line could be removed */
+ {
+#if 0
+ fprintf(stderr, "faulty slice operation:\n");
+ debug(z, -1, 0);
+#endif
+ return -1;
+ }
+ return 0;
+}
+
+extern int slice_from_s(struct SN_env * z, int s_size, const symbol * s) {
+ if (slice_check(z)) return -1;
+ return replace_s(z, z->bra, z->ket, s_size, s, NULL);
+}
+
+extern int slice_from_v(struct SN_env * z, const symbol * p) {
+ return slice_from_s(z, SIZE(p), p);
+}
+
+extern int slice_del(struct SN_env * z) {
+ return slice_from_s(z, 0, 0);
+}
+
+extern int insert_s(struct SN_env * z, int bra, int ket, int s_size, const symbol * s) {
+ int adjustment;
+ if (replace_s(z, bra, ket, s_size, s, &adjustment))
+ return -1;
+ if (bra <= z->bra) z->bra += adjustment;
+ if (bra <= z->ket) z->ket += adjustment;
+ return 0;
+}
+
+extern int insert_v(struct SN_env * z, int bra, int ket, const symbol * p) {
+ return insert_s(z, bra, ket, SIZE(p), p);
+}
+
+extern symbol * slice_to(struct SN_env * z, symbol * p) {
+ if (slice_check(z)) {
+ lose_s(p);
+ return NULL;
+ }
+ {
+ int len = z->ket - z->bra;
+ if (CAPACITY(p) < len) {
+ p = increase_size(p, len);
+ if (p == NULL)
+ return NULL;
+ }
+ memmove(p, z->p + z->bra, len * sizeof(symbol));
+ SET_SIZE(p, len);
+ }
+ return p;
+}
+
+extern symbol * assign_to(struct SN_env * z, symbol * p) {
+ int len = z->l;
+ if (CAPACITY(p) < len) {
+ p = increase_size(p, len);
+ if (p == NULL)
+ return NULL;
+ }
+ memmove(p, z->p, len * sizeof(symbol));
+ SET_SIZE(p, len);
+ return p;
+}
+
+extern int len_utf8(const symbol * p) {
+ int size = SIZE(p);
+ int len = 0;
+ while (size--) {
+ symbol b = *p++;
+ if (b >= 0xC0 || b < 0x80) ++len;
+ }
+ return len;
+}
+
+#if 0
+extern void debug(struct SN_env * z, int number, int line_count) {
+ int i;
+ int limit = SIZE(z->p);
+ /*if (number >= 0) printf("%3d (line %4d): '", number, line_count);*/
+ if (number >= 0) printf("%3d (line %4d): [%d]'", number, line_count,limit);
+ for (i = 0; i <= limit; i++) {
+ if (z->lb == i) printf("{");
+ if (z->bra == i) printf("[");
+ if (z->c == i) printf("|");
+ if (z->ket == i) printf("]");
+ if (z->l == i) printf("}");
+ if (i < limit)
+ { int ch = z->p[i];
+ if (ch == 0) ch = '#';
+ printf("%c", ch);
+ }
+ }
+ printf("'\n");
+}
+#endif
diff --git a/src/backend/snowball/snowball.sql.in b/src/backend/snowball/snowball.sql.in
new file mode 100644
index 0000000..b133845
--- /dev/null
+++ b/src/backend/snowball/snowball.sql.in
@@ -0,0 +1,42 @@
+/*
+ * text search configuration for _LANGNAME_ language
+ *
+ * Copyright (c) 2007-2022, PostgreSQL Global Development Group
+ *
+ * src/backend/snowball/snowball.sql.in
+ *
+ * _LANGNAME_ and certain other macros are replaced for each language;
+ * see the Makefile for details.
+ *
+ * Note: this file is read in single-user -j mode, which means that the
+ * command terminator is semicolon-newline-newline; whenever the backend
+ * sees that, it stops and executes what it's got. If you write a lot of
+ * statements without empty lines between, they'll all get quoted to you
+ * in any error message about one of them, so don't do that. Also, you
+ * cannot write a semicolon immediately followed by an empty line in a
+ * string literal (including a function body!) or a multiline comment.
+ */
+
+CREATE TEXT SEARCH DICTIONARY _DICTNAME_
+ (TEMPLATE = snowball, Language = _LANGNAME_ _STOPWORDS_);
+
+COMMENT ON TEXT SEARCH DICTIONARY _DICTNAME_ IS 'snowball stemmer for _LANGNAME_ language';
+
+CREATE TEXT SEARCH CONFIGURATION _CFGNAME_
+ (PARSER = default);
+
+COMMENT ON TEXT SEARCH CONFIGURATION _CFGNAME_ IS 'configuration for _LANGNAME_ language';
+
+ALTER TEXT SEARCH CONFIGURATION _CFGNAME_ ADD MAPPING
+ FOR email, url, url_path, host, file, version,
+ sfloat, float, int, uint,
+ numword, hword_numpart, numhword
+ WITH simple;
+
+ALTER TEXT SEARCH CONFIGURATION _CFGNAME_ ADD MAPPING
+ FOR asciiword, hword_asciipart, asciihword
+ WITH _ASCDICTNAME_;
+
+ALTER TEXT SEARCH CONFIGURATION _CFGNAME_ ADD MAPPING
+ FOR word, hword_part, hword
+ WITH _NONASCDICTNAME_;
diff --git a/src/backend/snowball/snowball_func.sql.in b/src/backend/snowball/snowball_func.sql.in
new file mode 100644
index 0000000..c885cb1
--- /dev/null
+++ b/src/backend/snowball/snowball_func.sql.in
@@ -0,0 +1,34 @@
+/*
+ * Create underlying C functions for Snowball stemmers
+ *
+ * Copyright (c) 2007-2022, PostgreSQL Global Development Group
+ *
+ * src/backend/snowball/snowball_func.sql.in
+ *
+ * This file is combined with multiple instances of snowball.sql.in to
+ * build snowball_create.sql, which is executed during initdb.
+ *
+ * Note: this file is read in single-user -j mode, which means that the
+ * command terminator is semicolon-newline-newline; whenever the backend
+ * sees that, it stops and executes what it's got. If you write a lot of
+ * statements without empty lines between, they'll all get quoted to you
+ * in any error message about one of them, so don't do that. Also, you
+ * cannot write a semicolon immediately followed by an empty line in a
+ * string literal (including a function body!) or a multiline comment.
+ */
+
+SET search_path = pg_catalog;
+
+CREATE FUNCTION dsnowball_init(INTERNAL)
+ RETURNS INTERNAL AS '$libdir/dict_snowball', 'dsnowball_init'
+LANGUAGE C STRICT;
+
+CREATE FUNCTION dsnowball_lexize(INTERNAL, INTERNAL, INTERNAL, INTERNAL)
+ RETURNS INTERNAL AS '$libdir/dict_snowball', 'dsnowball_lexize'
+LANGUAGE C STRICT;
+
+CREATE TEXT SEARCH TEMPLATE snowball
+ (INIT = dsnowball_init,
+ LEXIZE = dsnowball_lexize);
+
+COMMENT ON TEXT SEARCH TEMPLATE snowball IS 'snowball stemmer';
diff --git a/src/backend/snowball/stopwords/danish.stop b/src/backend/snowball/stopwords/danish.stop
new file mode 100644
index 0000000..d3edc67
--- /dev/null
+++ b/src/backend/snowball/stopwords/danish.stop
@@ -0,0 +1,94 @@
+og
+i
+jeg
+det
+at
+en
+den
+til
+er
+som
+på
+de
+med
+han
+af
+for
+ikke
+der
+var
+mig
+sig
+men
+et
+har
+om
+vi
+min
+havde
+ham
+hun
+nu
+over
+da
+fra
+du
+ud
+sin
+dem
+os
+op
+man
+hans
+hvor
+eller
+hvad
+skal
+selv
+her
+alle
+vil
+blev
+kunne
+ind
+når
+være
+dog
+noget
+ville
+jo
+deres
+efter
+ned
+skulle
+denne
+end
+dette
+mit
+også
+under
+have
+dig
+anden
+hende
+mine
+alt
+meget
+sit
+sine
+vor
+mod
+disse
+hvis
+din
+nogle
+hos
+blive
+mange
+ad
+bliver
+hendes
+været
+thi
+jer
+sådan
diff --git a/src/backend/snowball/stopwords/dutch.stop b/src/backend/snowball/stopwords/dutch.stop
new file mode 100644
index 0000000..cafa032
--- /dev/null
+++ b/src/backend/snowball/stopwords/dutch.stop
@@ -0,0 +1,101 @@
+de
+en
+van
+ik
+te
+dat
+die
+in
+een
+hij
+het
+niet
+zijn
+is
+was
+op
+aan
+met
+als
+voor
+had
+er
+maar
+om
+hem
+dan
+zou
+of
+wat
+mijn
+men
+dit
+zo
+door
+over
+ze
+zich
+bij
+ook
+tot
+je
+mij
+uit
+der
+daar
+haar
+naar
+heb
+hoe
+heeft
+hebben
+deze
+u
+want
+nog
+zal
+me
+zij
+nu
+ge
+geen
+omdat
+iets
+worden
+toch
+al
+waren
+veel
+meer
+doen
+toen
+moet
+ben
+zonder
+kan
+hun
+dus
+alles
+onder
+ja
+eens
+hier
+wie
+werd
+altijd
+doch
+wordt
+wezen
+kunnen
+ons
+zelf
+tegen
+na
+reeds
+wil
+kon
+niets
+uw
+iemand
+geweest
+andere
diff --git a/src/backend/snowball/stopwords/english.stop b/src/backend/snowball/stopwords/english.stop
new file mode 100644
index 0000000..5b16b50
--- /dev/null
+++ b/src/backend/snowball/stopwords/english.stop
@@ -0,0 +1,127 @@
+i
+me
+my
+myself
+we
+our
+ours
+ourselves
+you
+your
+yours
+yourself
+yourselves
+he
+him
+his
+himself
+she
+her
+hers
+herself
+it
+its
+itself
+they
+them
+their
+theirs
+themselves
+what
+which
+who
+whom
+this
+that
+these
+those
+am
+is
+are
+was
+were
+be
+been
+being
+have
+has
+had
+having
+do
+does
+did
+doing
+a
+an
+the
+and
+but
+if
+or
+because
+as
+until
+while
+of
+at
+by
+for
+with
+about
+against
+between
+into
+through
+during
+before
+after
+above
+below
+to
+from
+up
+down
+in
+out
+on
+off
+over
+under
+again
+further
+then
+once
+here
+there
+when
+where
+why
+how
+all
+any
+both
+each
+few
+more
+most
+other
+some
+such
+no
+nor
+not
+only
+own
+same
+so
+than
+too
+very
+s
+t
+can
+will
+just
+don
+should
+now
diff --git a/src/backend/snowball/stopwords/finnish.stop b/src/backend/snowball/stopwords/finnish.stop
new file mode 100644
index 0000000..47ee200
--- /dev/null
+++ b/src/backend/snowball/stopwords/finnish.stop
@@ -0,0 +1,235 @@
+olla
+olen
+olet
+on
+olemme
+olette
+ovat
+ole
+oli
+olisi
+olisit
+olisin
+olisimme
+olisitte
+olisivat
+olit
+olin
+olimme
+olitte
+olivat
+ollut
+olleet
+en
+et
+ei
+emme
+ette
+eivät
+minä
+minun
+minut
+minua
+minussa
+minusta
+minuun
+minulla
+minulta
+minulle
+sinä
+sinun
+sinut
+sinua
+sinussa
+sinusta
+sinuun
+sinulla
+sinulta
+sinulle
+hän
+hänen
+hänet
+häntä
+hänessä
+hänestä
+häneen
+hänellä
+häneltä
+hänelle
+me
+meidän
+meidät
+meitä
+meissä
+meistä
+meihin
+meillä
+meiltä
+meille
+te
+teidän
+teidät
+teitä
+teissä
+teistä
+teihin
+teillä
+teiltä
+teille
+he
+heidän
+heidät
+heitä
+heissä
+heistä
+heihin
+heillä
+heiltä
+heille
+tämä
+tämän
+tätä
+tässä
+tästä
+tähän
+tallä
+tältä
+tälle
+tänä
+täksi
+tuo
+tuon
+tuotä
+tuossa
+tuosta
+tuohon
+tuolla
+tuolta
+tuolle
+tuona
+tuoksi
+se
+sen
+sitä
+siinä
+siitä
+siihen
+sillä
+siltä
+sille
+sinä
+siksi
+nämä
+näiden
+näitä
+näissä
+näistä
+näihin
+näillä
+näiltä
+näille
+näinä
+näiksi
+nuo
+noiden
+noita
+noissa
+noista
+noihin
+noilla
+noilta
+noille
+noina
+noiksi
+ne
+niiden
+niitä
+niissä
+niistä
+niihin
+niillä
+niiltä
+niille
+niinä
+niiksi
+kuka
+kenen
+kenet
+ketä
+kenessä
+kenestä
+keneen
+kenellä
+keneltä
+kenelle
+kenenä
+keneksi
+ketkä
+keiden
+ketkä
+keitä
+keissä
+keistä
+keihin
+keillä
+keiltä
+keille
+keinä
+keiksi
+mikä
+minkä
+minkä
+mitä
+missä
+mistä
+mihin
+millä
+miltä
+mille
+minä
+miksi
+mitkä
+joka
+jonka
+jota
+jossa
+josta
+johon
+jolla
+jolta
+jolle
+jona
+joksi
+jotka
+joiden
+joita
+joissa
+joista
+joihin
+joilla
+joilta
+joille
+joina
+joiksi
+että
+ja
+jos
+koska
+kuin
+mutta
+niin
+sekä
+sillä
+tai
+vaan
+vai
+vaikka
+kanssa
+mukaan
+noin
+poikki
+yli
+kun
+niin
+nyt
+itse
diff --git a/src/backend/snowball/stopwords/french.stop b/src/backend/snowball/stopwords/french.stop
new file mode 100644
index 0000000..e7cbf4c
--- /dev/null
+++ b/src/backend/snowball/stopwords/french.stop
@@ -0,0 +1,155 @@
+au
+aux
+avec
+ce
+ces
+dans
+de
+des
+du
+elle
+en
+et
+eux
+il
+je
+la
+le
+leur
+lui
+ma
+mais
+me
+même
+mes
+moi
+mon
+ne
+nos
+notre
+nous
+on
+ou
+par
+pas
+pour
+qu
+que
+qui
+sa
+se
+ses
+son
+sur
+ta
+te
+tes
+toi
+ton
+tu
+un
+une
+vos
+votre
+vous
+c
+d
+j
+l
+m
+n
+s
+t
+y
+été
+étée
+étées
+étés
+étant
+étante
+étants
+étantes
+suis
+es
+est
+sommes
+êtes
+sont
+serai
+seras
+sera
+serons
+serez
+seront
+serais
+serait
+serions
+seriez
+seraient
+étais
+était
+étions
+étiez
+étaient
+fus
+fut
+fûmes
+fûtes
+furent
+sois
+soit
+soyons
+soyez
+soient
+fusse
+fusses
+fût
+fussions
+fussiez
+fussent
+ayant
+ayante
+ayantes
+ayants
+eu
+eue
+eues
+eus
+ai
+as
+avons
+avez
+ont
+aurai
+auras
+aura
+aurons
+aurez
+auront
+aurais
+aurait
+aurions
+auriez
+auraient
+avais
+avait
+avions
+aviez
+avaient
+eut
+eûmes
+eûtes
+eurent
+aie
+aies
+ait
+ayons
+ayez
+aient
+eusse
+eusses
+eût
+eussions
+eussiez
+eussent
diff --git a/src/backend/snowball/stopwords/german.stop b/src/backend/snowball/stopwords/german.stop
new file mode 100644
index 0000000..edef220
--- /dev/null
+++ b/src/backend/snowball/stopwords/german.stop
@@ -0,0 +1,231 @@
+aber
+alle
+allem
+allen
+aller
+alles
+als
+also
+am
+an
+ander
+andere
+anderem
+anderen
+anderer
+anderes
+anderm
+andern
+anderr
+anders
+auch
+auf
+aus
+bei
+bin
+bis
+bist
+da
+damit
+dann
+der
+den
+des
+dem
+die
+das
+daß
+derselbe
+derselben
+denselben
+desselben
+demselben
+dieselbe
+dieselben
+dasselbe
+dazu
+dein
+deine
+deinem
+deinen
+deiner
+deines
+denn
+derer
+dessen
+dich
+dir
+du
+dies
+diese
+diesem
+diesen
+dieser
+dieses
+doch
+dort
+durch
+ein
+eine
+einem
+einen
+einer
+eines
+einig
+einige
+einigem
+einigen
+einiger
+einiges
+einmal
+er
+ihn
+ihm
+es
+etwas
+euer
+eure
+eurem
+euren
+eurer
+eures
+für
+gegen
+gewesen
+hab
+habe
+haben
+hat
+hatte
+hatten
+hier
+hin
+hinter
+ich
+mich
+mir
+ihr
+ihre
+ihrem
+ihren
+ihrer
+ihres
+euch
+im
+in
+indem
+ins
+ist
+jede
+jedem
+jeden
+jeder
+jedes
+jene
+jenem
+jenen
+jener
+jenes
+jetzt
+kann
+kein
+keine
+keinem
+keinen
+keiner
+keines
+können
+könnte
+machen
+man
+manche
+manchem
+manchen
+mancher
+manches
+mein
+meine
+meinem
+meinen
+meiner
+meines
+mit
+muss
+musste
+nach
+nicht
+nichts
+noch
+nun
+nur
+ob
+oder
+ohne
+sehr
+sein
+seine
+seinem
+seinen
+seiner
+seines
+selbst
+sich
+sie
+ihnen
+sind
+so
+solche
+solchem
+solchen
+solcher
+solches
+soll
+sollte
+sondern
+sonst
+über
+um
+und
+uns
+unse
+unsem
+unsen
+unser
+unses
+unter
+viel
+vom
+von
+vor
+während
+war
+waren
+warst
+was
+weg
+weil
+weiter
+welche
+welchem
+welchen
+welcher
+welches
+wenn
+werde
+werden
+wie
+wieder
+will
+wir
+wird
+wirst
+wo
+wollen
+wollte
+würde
+würden
+zu
+zum
+zur
+zwar
+zwischen
diff --git a/src/backend/snowball/stopwords/hungarian.stop b/src/backend/snowball/stopwords/hungarian.stop
new file mode 100644
index 0000000..abfd35c
--- /dev/null
+++ b/src/backend/snowball/stopwords/hungarian.stop
@@ -0,0 +1,199 @@
+a
+ahogy
+ahol
+aki
+akik
+akkor
+alatt
+által
+általában
+amely
+amelyek
+amelyekben
+amelyeket
+amelyet
+amelynek
+ami
+amit
+amolyan
+amíg
+amikor
+át
+abban
+ahhoz
+annak
+arra
+arról
+az
+azok
+azon
+azt
+azzal
+azért
+aztán
+azután
+azonban
+bár
+be
+belül
+benne
+cikk
+cikkek
+cikkeket
+csak
+de
+e
+eddig
+egész
+egy
+egyes
+egyetlen
+egyéb
+egyik
+egyre
+ekkor
+el
+elég
+ellen
+elő
+először
+előtt
+első
+én
+éppen
+ebben
+ehhez
+emilyen
+ennek
+erre
+ez
+ezt
+ezek
+ezen
+ezzel
+ezért
+és
+fel
+felé
+hanem
+hiszen
+hogy
+hogyan
+igen
+így
+illetve
+ill.
+ill
+ilyen
+ilyenkor
+ison
+ismét
+itt
+jó
+jól
+jobban
+kell
+kellett
+keresztül
+keressünk
+ki
+kívül
+között
+közül
+legalább
+lehet
+lehetett
+legyen
+lenne
+lenni
+lesz
+lett
+maga
+magát
+majd
+majd
+már
+más
+másik
+meg
+még
+mellett
+mert
+mely
+melyek
+mi
+mit
+míg
+miért
+milyen
+mikor
+minden
+mindent
+mindenki
+mindig
+mint
+mintha
+mivel
+most
+nagy
+nagyobb
+nagyon
+ne
+néha
+nekem
+neki
+nem
+néhány
+nélkül
+nincs
+olyan
+ott
+össze
+ők
+őket
+pedig
+persze
+rá
+s
+saját
+sem
+semmi
+sok
+sokat
+sokkal
+számára
+szemben
+szerint
+szinte
+talán
+tehát
+teljes
+tovább
+továbbá
+több
+úgy
+ugyanis
+új
+újabb
+újra
+után
+utána
+utolsó
+vagy
+vagyis
+valaki
+valami
+valamint
+való
+vagyok
+van
+vannak
+volt
+voltam
+voltak
+voltunk
+vissza
+vele
+viszont
+volna
diff --git a/src/backend/snowball/stopwords/italian.stop b/src/backend/snowball/stopwords/italian.stop
new file mode 100644
index 0000000..6ee02b5
--- /dev/null
+++ b/src/backend/snowball/stopwords/italian.stop
@@ -0,0 +1,279 @@
+ad
+al
+allo
+ai
+agli
+all
+agl
+alla
+alle
+con
+col
+coi
+da
+dal
+dallo
+dai
+dagli
+dall
+dagl
+dalla
+dalle
+di
+del
+dello
+dei
+degli
+dell
+degl
+della
+delle
+in
+nel
+nello
+nei
+negli
+nell
+negl
+nella
+nelle
+su
+sul
+sullo
+sui
+sugli
+sull
+sugl
+sulla
+sulle
+per
+tra
+contro
+io
+tu
+lui
+lei
+noi
+voi
+loro
+mio
+mia
+miei
+mie
+tuo
+tua
+tuoi
+tue
+suo
+sua
+suoi
+sue
+nostro
+nostra
+nostri
+nostre
+vostro
+vostra
+vostri
+vostre
+mi
+ti
+ci
+vi
+lo
+la
+li
+le
+gli
+ne
+il
+un
+uno
+una
+ma
+ed
+se
+perché
+anche
+come
+dov
+dove
+che
+chi
+cui
+non
+più
+quale
+quanto
+quanti
+quanta
+quante
+quello
+quelli
+quella
+quelle
+questo
+questi
+questa
+queste
+si
+tutto
+tutti
+a
+c
+e
+i
+l
+o
+ho
+hai
+ha
+abbiamo
+avete
+hanno
+abbia
+abbiate
+abbiano
+avrò
+avrai
+avrà
+avremo
+avrete
+avranno
+avrei
+avresti
+avrebbe
+avremmo
+avreste
+avrebbero
+avevo
+avevi
+aveva
+avevamo
+avevate
+avevano
+ebbi
+avesti
+ebbe
+avemmo
+aveste
+ebbero
+avessi
+avesse
+avessimo
+avessero
+avendo
+avuto
+avuta
+avuti
+avute
+sono
+sei
+siamo
+siete
+sia
+siate
+siano
+sarò
+sarai
+sarà
+saremo
+sarete
+saranno
+sarei
+saresti
+sarebbe
+saremmo
+sareste
+sarebbero
+ero
+eri
+era
+eravamo
+eravate
+erano
+fui
+fosti
+fu
+fummo
+foste
+furono
+fossi
+fosse
+fossimo
+fossero
+essendo
+faccio
+fai
+facciamo
+fanno
+faccia
+facciate
+facciano
+farò
+farai
+farà
+faremo
+farete
+faranno
+farei
+faresti
+farebbe
+faremmo
+fareste
+farebbero
+facevo
+facevi
+faceva
+facevamo
+facevate
+facevano
+feci
+facesti
+fece
+facemmo
+faceste
+fecero
+facessi
+facesse
+facessimo
+facessero
+facendo
+sto
+stai
+sta
+stiamo
+stanno
+stia
+stiate
+stiano
+starò
+starai
+starà
+staremo
+starete
+staranno
+starei
+staresti
+starebbe
+staremmo
+stareste
+starebbero
+stavo
+stavi
+stava
+stavamo
+stavate
+stavano
+stetti
+stesti
+stette
+stemmo
+steste
+stettero
+stessi
+stesse
+stessimo
+stessero
+stando
diff --git a/src/backend/snowball/stopwords/nepali.stop b/src/backend/snowball/stopwords/nepali.stop
new file mode 100644
index 0000000..42e24a5
--- /dev/null
+++ b/src/backend/snowball/stopwords/nepali.stop
@@ -0,0 +1,304 @@
+अक्सर
+अगाडि
+अगाडी
+अझै
+अनुसार
+अन्तर्गत
+अन्य
+अन्यथा
+अब
+अरु
+अरू
+अर्का
+अर्की
+अर्को
+अर्थात
+अर्थात्
+अर्ब
+अलग
+अलिकति
+असार
+आइतवार
+आए
+आज
+आठ
+आत्म
+आदि
+आफू
+आफ्नै
+आफ्नो
+आयो
+आश्विन
+उदाहरण
+उन
+उप
+उही
+एउटै
+एक
+एकदम
+एकै
+ओठ
+औं
+कति
+कतै
+कत्रा
+कत्री
+कत्रो
+करोड
+कस
+कसरी
+कसै
+कस्ता
+कस्ती
+कस्तो
+कहिल्यै
+कहीं
+का
+कार्तिक
+कि
+किन
+किनभने
+कुन
+कुनै
+कुरा
+कृपया
+के
+केहि
+केही
+को
+कोही
+क्रमशः
+खर्ब
+गयौ
+चाँडै
+चार
+चाले
+चाहनुहुन्छ
+चाहन्छु
+चाहिए
+चैत
+चौथो
+छ
+छन्
+छु
+छू
+छैन
+छौँ
+छौं
+जताततै
+जति
+जत्रा
+जत्री
+जत्रो
+जब
+जबकि
+जस
+जस्ता
+जस्ती
+जस्तो
+जस्तोसुकै
+जहाँ
+जान
+जाहिर
+जुन
+जे
+जेठ
+जो
+जोसुकै
+ठीक
+त
+तत्काल
+तथा
+तदनुसार
+तपाई
+तपाईं
+तर
+तल
+तापनि
+तापनी
+तिन
+तिनी
+तिमी
+तिर
+ती
+तीन
+तुरुन्तै
+तेस्कारण
+तेस्रो
+त्यसकारण
+त्यसपछि
+त्यसमा
+त्यसैले
+त्यहाँ
+त्यो
+त्सपछि
+त्सैले
+थिए
+थिएन
+थिएनन्
+थियो
+थोरै
+दस
+दिए
+दिनुभएको
+दिनुहुन्छ
+दुई
+देख
+देखि
+देखिन्छ
+देखियो
+देखे
+देखेको
+देखेर
+देख्न
+दोश्रो
+दोस्रो
+धेरै
+न
+नजिकै
+नत्र
+नयाँ
+नि
+निम्ति
+निम्न
+निम्नानुसार
+निर्दिष्ट
+नै
+नौ
+पक्का
+पक्कै
+पछि
+पछिल्लो
+पटक
+पनि
+पर्छ
+पर्थ्यो
+पर्याप्त
+पर्सी
+पहिले
+पहिलो
+पहिल्यै
+पाँच
+पाँचौं
+पूर्व
+पौष
+प्रति
+प्रतेक
+प्रत्येक
+प्रथम
+प्लस
+फागुन
+फेरि
+फेरी
+बने
+बन्द
+बन्न
+बरु
+बाटो
+बारे
+बाहिर
+बाहेक
+बिरुद्ध
+बिशेष
+बिहिवार
+बीच
+बुधवार
+भए
+भदौ
+भन्
+भर
+भित्र
+भित्री
+भोलि
+भोली
+म
+मंसिर
+मङ्गलवार
+महिना
+मा
+माघ
+मात्र
+माथि
+मुख्य
+मेरो
+यति
+यत्ति
+यत्रा
+यत्री
+यत्रो
+यथोचित
+यदि
+यद्यपि
+यस
+यसरी
+यसो
+यस्ता
+यस्ती
+यस्तो
+यहाँ
+या
+यिन
+यिनी
+यी
+यो
+र
+रही
+रहेका
+रहेको
+राखे
+राख्छ
+राम्रो
+रूप
+लगभग
+लाई
+लाख
+लागि
+ले
+वरिपरि
+वरीपरी
+वर्ष
+वास्तवमा
+वाहेक
+विरुद्ध
+विशेष
+वैशाख
+शनिवार
+शायद
+शुक्रवार
+सँग
+सँगै
+संग
+संगै
+सक्छ
+सट्टा
+सधै
+सधैं
+सबै
+समय
+सम्भव
+सम्म
+सय
+सही
+साँच्चै
+साउन
+सात
+साथ
+साथै
+सायद
+सारा
+सुन्ना
+सो
+सोध्न
+सोमवार
+सोही
+स्पष्ट
+हजार
+हप्ता
+हरे
+हरेक
+हामी
+हाम्रो
+हिजो
+हुन्छ
+होला
+होस्
diff --git a/src/backend/snowball/stopwords/norwegian.stop b/src/backend/snowball/stopwords/norwegian.stop
new file mode 100644
index 0000000..9ac1abb
--- /dev/null
+++ b/src/backend/snowball/stopwords/norwegian.stop
@@ -0,0 +1,176 @@
+og
+i
+jeg
+det
+at
+en
+et
+den
+til
+er
+som
+på
+de
+med
+han
+av
+ikke
+ikkje
+der
+så
+var
+meg
+seg
+men
+ett
+har
+om
+vi
+min
+mitt
+ha
+hadde
+hun
+nå
+over
+da
+ved
+fra
+du
+ut
+sin
+dem
+oss
+opp
+man
+kan
+hans
+hvor
+eller
+hva
+skal
+selv
+sjøl
+her
+alle
+vil
+bli
+ble
+blei
+blitt
+kunne
+inn
+når
+være
+kom
+noen
+noe
+ville
+dere
+som
+deres
+kun
+ja
+etter
+ned
+skulle
+denne
+for
+deg
+si
+sine
+sitt
+mot
+meget
+hvorfor
+dette
+disse
+uten
+hvordan
+ingen
+din
+ditt
+blir
+samme
+hvilken
+hvilke
+sånn
+inni
+mellom
+vår
+hver
+hvem
+vors
+hvis
+både
+bare
+enn
+fordi
+før
+mange
+også
+slik
+vært
+være
+båe
+begge
+siden
+dykk
+dykkar
+dei
+deira
+deires
+deim
+di
+då
+eg
+ein
+eit
+eitt
+elles
+honom
+hjå
+ho
+hoe
+henne
+hennar
+hennes
+hoss
+hossen
+ikkje
+ingi
+inkje
+korleis
+korso
+kva
+kvar
+kvarhelst
+kven
+kvi
+kvifor
+me
+medan
+mi
+mine
+mykje
+no
+nokon
+noka
+nokor
+noko
+nokre
+si
+sia
+sidan
+so
+somt
+somme
+um
+upp
+vere
+vore
+verte
+vort
+varte
+vart
diff --git a/src/backend/snowball/stopwords/portuguese.stop b/src/backend/snowball/stopwords/portuguese.stop
new file mode 100644
index 0000000..6b24778
--- /dev/null
+++ b/src/backend/snowball/stopwords/portuguese.stop
@@ -0,0 +1,203 @@
+de
+a
+o
+que
+e
+do
+da
+em
+um
+para
+com
+não
+uma
+os
+no
+se
+na
+por
+mais
+as
+dos
+como
+mas
+ao
+ele
+das
+seu
+sua
+ou
+quando
+muito
+nos
+já
+eu
+também
+só
+pelo
+pela
+até
+isso
+ela
+entre
+depois
+sem
+mesmo
+aos
+seus
+quem
+nas
+me
+esse
+eles
+você
+essa
+num
+nem
+suas
+meu
+às
+minha
+numa
+pelos
+elas
+qual
+nós
+lhe
+deles
+essas
+esses
+pelas
+este
+dele
+tu
+te
+vocês
+vos
+lhes
+meus
+minhas
+teu
+tua
+teus
+tuas
+nosso
+nossa
+nossos
+nossas
+dela
+delas
+esta
+estes
+estas
+aquele
+aquela
+aqueles
+aquelas
+isto
+aquilo
+estou
+está
+estamos
+estão
+estive
+esteve
+estivemos
+estiveram
+estava
+estávamos
+estavam
+estivera
+estivéramos
+esteja
+estejamos
+estejam
+estivesse
+estivéssemos
+estivessem
+estiver
+estivermos
+estiverem
+hei
+há
+havemos
+hão
+houve
+houvemos
+houveram
+houvera
+houvéramos
+haja
+hajamos
+hajam
+houvesse
+houvéssemos
+houvessem
+houver
+houvermos
+houverem
+houverei
+houverá
+houveremos
+houverão
+houveria
+houveríamos
+houveriam
+sou
+somos
+são
+era
+éramos
+eram
+fui
+foi
+fomos
+foram
+fora
+fôramos
+seja
+sejamos
+sejam
+fosse
+fôssemos
+fossem
+for
+formos
+forem
+serei
+será
+seremos
+serão
+seria
+seríamos
+seriam
+tenho
+tem
+temos
+tém
+tinha
+tínhamos
+tinham
+tive
+teve
+tivemos
+tiveram
+tivera
+tivéramos
+tenha
+tenhamos
+tenham
+tivesse
+tivéssemos
+tivessem
+tiver
+tivermos
+tiverem
+terei
+terá
+teremos
+terão
+teria
+teríamos
+teriam
diff --git a/src/backend/snowball/stopwords/russian.stop b/src/backend/snowball/stopwords/russian.stop
new file mode 100644
index 0000000..ecb83d4
--- /dev/null
+++ b/src/backend/snowball/stopwords/russian.stop
@@ -0,0 +1,151 @@
+во
+не
+что
+он
+на
+со
+как
+то
+все
+она
+так
+его
+но
+да
+ты
+же
+вы
+за
+бы
+по
+только
+ее
+мне
+было
+вот
+от
+меня
+еще
+нет
+из
+ему
+теперь
+когда
+даже
+ну
+вдруг
+ли
+если
+уже
+или
+ни
+быть
+был
+него
+до
+вас
+нибудь
+опять
+уж
+вам
+ведь
+там
+потом
+себя
+ничего
+ей
+может
+они
+тут
+где
+есть
+надо
+ней
+для
+мы
+тебя
+их
+чем
+была
+сам
+чтоб
+без
+будто
+чего
+раз
+тоже
+себе
+под
+будет
+тогда
+кто
+этот
+того
+потому
+этого
+какой
+совсем
+ним
+здесь
+этом
+один
+почти
+мой
+тем
+чтобы
+нее
+сейчас
+были
+куда
+зачем
+всех
+никогда
+можно
+при
+наконец
+два
+об
+другой
+хоть
+после
+над
+больше
+тот
+через
+эти
+нас
+про
+всего
+них
+какая
+много
+разве
+три
+эту
+моя
+впрочем
+хорошо
+свою
+этой
+перед
+иногда
+лучше
+чуть
+том
+нельзя
+такой
+им
+более
+всегда
+конечно
+всю
+между
diff --git a/src/backend/snowball/stopwords/spanish.stop b/src/backend/snowball/stopwords/spanish.stop
new file mode 100644
index 0000000..59bc786
--- /dev/null
+++ b/src/backend/snowball/stopwords/spanish.stop
@@ -0,0 +1,313 @@
+de
+la
+que
+el
+en
+y
+a
+los
+del
+se
+las
+por
+un
+para
+con
+no
+una
+su
+al
+lo
+como
+más
+pero
+sus
+le
+ya
+o
+este
+sí
+porque
+esta
+entre
+cuando
+muy
+sin
+sobre
+también
+me
+hasta
+hay
+donde
+quien
+desde
+todo
+nos
+durante
+todos
+uno
+les
+ni
+contra
+otros
+ese
+eso
+ante
+ellos
+e
+esto
+mí
+antes
+algunos
+qué
+unos
+yo
+otro
+otras
+otra
+él
+tanto
+esa
+estos
+mucho
+quienes
+nada
+muchos
+cual
+poco
+ella
+estar
+estas
+algunas
+algo
+nosotros
+mi
+mis
+tú
+te
+ti
+tu
+tus
+ellas
+nosotras
+vosostros
+vosostras
+os
+mío
+mía
+míos
+mías
+tuyo
+tuya
+tuyos
+tuyas
+suyo
+suya
+suyos
+suyas
+nuestro
+nuestra
+nuestros
+nuestras
+vuestro
+vuestra
+vuestros
+vuestras
+esos
+esas
+estoy
+estás
+está
+estamos
+estáis
+están
+esté
+estés
+estemos
+estéis
+estén
+estaré
+estarás
+estará
+estaremos
+estaréis
+estarán
+estaría
+estarías
+estaríamos
+estaríais
+estarían
+estaba
+estabas
+estábamos
+estabais
+estaban
+estuve
+estuviste
+estuvo
+estuvimos
+estuvisteis
+estuvieron
+estuviera
+estuvieras
+estuviéramos
+estuvierais
+estuvieran
+estuviese
+estuvieses
+estuviésemos
+estuvieseis
+estuviesen
+estando
+estado
+estada
+estados
+estadas
+estad
+he
+has
+ha
+hemos
+habéis
+han
+haya
+hayas
+hayamos
+hayáis
+hayan
+habré
+habrás
+habrá
+habremos
+habréis
+habrán
+habría
+habrías
+habríamos
+habríais
+habrían
+había
+habías
+habíamos
+habíais
+habían
+hube
+hubiste
+hubo
+hubimos
+hubisteis
+hubieron
+hubiera
+hubieras
+hubiéramos
+hubierais
+hubieran
+hubiese
+hubieses
+hubiésemos
+hubieseis
+hubiesen
+habiendo
+habido
+habida
+habidos
+habidas
+soy
+eres
+es
+somos
+sois
+son
+sea
+seas
+seamos
+seáis
+sean
+seré
+serás
+será
+seremos
+seréis
+serán
+sería
+serías
+seríamos
+seríais
+serían
+era
+eras
+éramos
+erais
+eran
+fui
+fuiste
+fue
+fuimos
+fuisteis
+fueron
+fuera
+fueras
+fuéramos
+fuerais
+fueran
+fuese
+fueses
+fuésemos
+fueseis
+fuesen
+sintiendo
+sentido
+sentida
+sentidos
+sentidas
+siente
+sentid
+tengo
+tienes
+tiene
+tenemos
+tenéis
+tienen
+tenga
+tengas
+tengamos
+tengáis
+tengan
+tendré
+tendrás
+tendrá
+tendremos
+tendréis
+tendrán
+tendría
+tendrías
+tendríamos
+tendríais
+tendrían
+tenía
+tenías
+teníamos
+teníais
+tenían
+tuve
+tuviste
+tuvo
+tuvimos
+tuvisteis
+tuvieron
+tuviera
+tuvieras
+tuviéramos
+tuvierais
+tuvieran
+tuviese
+tuvieses
+tuviésemos
+tuvieseis
+tuviesen
+teniendo
+tenido
+tenida
+tenidos
+tenidas
+tened
diff --git a/src/backend/snowball/stopwords/swedish.stop b/src/backend/snowball/stopwords/swedish.stop
new file mode 100644
index 0000000..742bb62
--- /dev/null
+++ b/src/backend/snowball/stopwords/swedish.stop
@@ -0,0 +1,114 @@
+och
+det
+att
+i
+en
+jag
+hon
+som
+han
+på
+den
+med
+var
+sig
+för
+så
+till
+är
+men
+ett
+om
+hade
+de
+av
+icke
+mig
+du
+henne
+då
+sin
+nu
+har
+inte
+hans
+honom
+skulle
+hennes
+där
+min
+man
+ej
+vid
+kunde
+något
+från
+ut
+när
+efter
+upp
+vi
+dem
+vara
+vad
+över
+än
+dig
+kan
+sina
+här
+ha
+mot
+alla
+under
+någon
+eller
+allt
+mycket
+sedan
+ju
+denna
+själv
+detta
+åt
+utan
+varit
+hur
+ingen
+mitt
+ni
+bli
+blev
+oss
+din
+dessa
+några
+deras
+blir
+mina
+samma
+vilken
+er
+sådan
+vår
+blivit
+dess
+inom
+mellan
+sådant
+varför
+varje
+vilka
+ditt
+vem
+vilket
+sitta
+sådana
+vart
+dina
+vars
+vårt
+våra
+ert
+era
+vilkas
diff --git a/src/backend/snowball/stopwords/turkish.stop b/src/backend/snowball/stopwords/turkish.stop
new file mode 100644
index 0000000..5a48ccc
--- /dev/null
+++ b/src/backend/snowball/stopwords/turkish.stop
@@ -0,0 +1,53 @@
+acaba
+ama
+aslında
+az
+bazı
+belki
+biri
+birkaç
+birşey
+biz
+bu
+çok
+çünkü
+da
+daha
+de
+defa
+diye
+eğer
+en
+gibi
+hem
+hep
+hepsi
+her
+hiç
+için
+ile
+ise
+kez
+ki
+kim
+mı
+mu
+mü
+nasıl
+ne
+neden
+nerde
+nerede
+nereye
+niçin
+niye
+o
+sanki
+şey
+siz
+şu
+tüm
+ve
+veya
+ya
+yani