diff --git a/ibus-HEAD.patch b/ibus-HEAD.patch deleted file mode 100644 index ec88af6..0000000 --- a/ibus-HEAD.patch +++ /dev/null @@ -1,15310 +0,0 @@ -From 026b19ef169dd9612d8a4a1ee34f7c42e7215c9a Mon Sep 17 00:00:00 2001 -From: fujiwarat -Date: Wed, 13 Mar 2019 19:16:17 +0900 -Subject: [PATCH 01/27] setup: Enable to run ibus-setup with a different python - -BUG=https://github.com/ibus/ibus/issues/2086 ---- - setup/ibus-setup.in | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/setup/ibus-setup.in b/setup/ibus-setup.in -index bb5c85cf..4a6830af 100644 ---- a/setup/ibus-setup.in -+++ b/setup/ibus-setup.in -@@ -3,7 +3,7 @@ - # ibus - The Input Bus - # - # Copyright (c) 2007-2010 Peng Huang --# Copyright (c) 2018 Takao Fujiwara -+# Copyright (c) 2018-2019 Takao Fujiwara - # Copyright (c) 2007-2018 Red Hat, Inc. - # - # This library is free software; you can redistribute it and/or -@@ -27,5 +27,5 @@ export IBUS_PREFIX=@prefix@ - export IBUS_DATAROOTDIR=@datarootdir@ - export IBUS_LOCALEDIR=@localedir@ - export IBUS_LIBEXECDIR=${libexecdir} --exec @PYTHON@ @prefix@/share/ibus/setup/main.py $@ -+exec ${PYTHON:-@PYTHON@} @prefix@/share/ibus/setup/main.py $@ - --- -2.21.0 - -From 2825bfc13618d382444aa1f87be22cd86e9bba29 Mon Sep 17 00:00:00 2001 -From: fujiwarat -Date: Wed, 13 Mar 2019 19:35:19 +0900 -Subject: [PATCH 02/27] src: Update ibusunicodegen.h for Unicode UCD 12.0 - ---- - src/ibusunicodegen.h | 36 ++++++++++++++++++++++++++++++++++++ - 1 file changed, 36 insertions(+) - -diff --git a/src/ibusunicodegen.h b/src/ibusunicodegen.h -index 9952fe0a..6a60a5a9 100644 ---- a/src/ibusunicodegen.h -+++ b/src/ibusunicodegen.h -@@ -855,6 +855,10 @@ const static char *unicode_blocks[] = { - the following command: - msgmerge -C gucharmap.po ibus.po ibus.pot */ - N_("Sogdian"), -+ /* TRANSLATORS: You might refer the translations from gucharmap with -+ the following command: -+ msgmerge -C gucharmap.po ibus.po ibus.pot */ -+ N_("Elymaic"), - /* TRANSLATORS: You might refer the translations from gucharmap with - the following command: - msgmerge -C gucharmap.po ibus.po ibus.pot */ -@@ -935,6 +939,10 @@ const static char *unicode_blocks[] = { - the following command: - msgmerge -C gucharmap.po ibus.po ibus.pot */ - N_("Warang Citi"), -+ /* TRANSLATORS: You might refer the translations from gucharmap with -+ the following command: -+ msgmerge -C gucharmap.po ibus.po ibus.pot */ -+ N_("Nandinagari"), - /* TRANSLATORS: You might refer the translations from gucharmap with - the following command: - msgmerge -C gucharmap.po ibus.po ibus.pot */ -@@ -967,6 +975,10 @@ const static char *unicode_blocks[] = { - the following command: - msgmerge -C gucharmap.po ibus.po ibus.pot */ - N_("Makasar"), -+ /* TRANSLATORS: You might refer the translations from gucharmap with -+ the following command: -+ msgmerge -C gucharmap.po ibus.po ibus.pot */ -+ N_("Tamil Supplement"), - /* TRANSLATORS: You might refer the translations from gucharmap with - the following command: - msgmerge -C gucharmap.po ibus.po ibus.pot */ -@@ -983,6 +995,10 @@ const static char *unicode_blocks[] = { - the following command: - msgmerge -C gucharmap.po ibus.po ibus.pot */ - N_("Egyptian Hieroglyphs"), -+ /* TRANSLATORS: You might refer the translations from gucharmap with -+ the following command: -+ msgmerge -C gucharmap.po ibus.po ibus.pot */ -+ N_("Egyptian Hieroglyph Format Controls"), - /* TRANSLATORS: You might refer the translations from gucharmap with - the following command: - msgmerge -C gucharmap.po ibus.po ibus.pot */ -@@ -1031,6 +1047,10 @@ const static char *unicode_blocks[] = { - the following command: - msgmerge -C gucharmap.po ibus.po ibus.pot */ - N_("Kana Extended-A"), -+ /* TRANSLATORS: You might refer the translations from gucharmap with -+ the following command: -+ msgmerge -C gucharmap.po ibus.po ibus.pot */ -+ N_("Small Kana Extension"), - /* TRANSLATORS: You might refer the translations from gucharmap with - the following command: - msgmerge -C gucharmap.po ibus.po ibus.pot */ -@@ -1079,6 +1099,14 @@ const static char *unicode_blocks[] = { - the following command: - msgmerge -C gucharmap.po ibus.po ibus.pot */ - N_("Glagolitic Supplement"), -+ /* TRANSLATORS: You might refer the translations from gucharmap with -+ the following command: -+ msgmerge -C gucharmap.po ibus.po ibus.pot */ -+ N_("Nyiakeng Puachue Hmong"), -+ /* TRANSLATORS: You might refer the translations from gucharmap with -+ the following command: -+ msgmerge -C gucharmap.po ibus.po ibus.pot */ -+ N_("Wancho"), - /* TRANSLATORS: You might refer the translations from gucharmap with - the following command: - msgmerge -C gucharmap.po ibus.po ibus.pot */ -@@ -1091,6 +1119,10 @@ const static char *unicode_blocks[] = { - the following command: - msgmerge -C gucharmap.po ibus.po ibus.pot */ - N_("Indic Siyaq Numbers"), -+ /* TRANSLATORS: You might refer the translations from gucharmap with -+ the following command: -+ msgmerge -C gucharmap.po ibus.po ibus.pot */ -+ N_("Ottoman Siyaq Numbers"), - /* TRANSLATORS: You might refer the translations from gucharmap with - the following command: - msgmerge -C gucharmap.po ibus.po ibus.pot */ -@@ -1151,6 +1183,10 @@ const static char *unicode_blocks[] = { - the following command: - msgmerge -C gucharmap.po ibus.po ibus.pot */ - N_("Chess Symbols"), -+ /* TRANSLATORS: You might refer the translations from gucharmap with -+ the following command: -+ msgmerge -C gucharmap.po ibus.po ibus.pot */ -+ N_("Symbols and Pictographs Extended-A"), - /* TRANSLATORS: You might refer the translations from gucharmap with - the following command: - msgmerge -C gucharmap.po ibus.po ibus.pot */ --- -2.21.0 - -From 6099a45f2e734458202383fdf157aea95b1f35a5 Mon Sep 17 00:00:00 2001 -From: fujiwarat -Date: Wed, 13 Mar 2019 19:36:05 +0900 -Subject: [PATCH 03/27] build: Delete built sources with MAINTAINERCLEANFILES - -BUG=https://github.com/ibus/ibus/issues/2082 ---- - src/Makefile.am | 9 ++++++++- - ui/gtk3/Makefile.am | 6 ++++++ - 2 files changed, 14 insertions(+), 1 deletion(-) - -diff --git a/src/Makefile.am b/src/Makefile.am -index 6a62e0f0..a8e3d07d 100644 ---- a/src/Makefile.am -+++ b/src/Makefile.am -@@ -3,7 +3,7 @@ - # ibus - The Input Bus - # - # Copyright (c) 2007-2015 Peng Huang --# Copyright (c) 2015-2018 Takao Fujiwara -+# Copyright (c) 2015-2019 Takao Fujiwara - # Copyright (c) 2007-2017 Red Hat, Inc. - # - # This library is free software; you can redistribute it and/or -@@ -256,6 +256,10 @@ dicts/emoji-en.dict: emoji-parser - echo "WARNING: Not found $(EMOJI_ANNOTATION_DIR)/en.xml" 1>&2; \ - fi; \ - for f in $(LANG_FILES) ; do \ -+ if test -f dicts/emoji-$$f.dict; then \ -+ echo "Already exists dicts/emoji-$$f.dict"; \ -+ continue; \ -+ fi; \ - if test -f \ - "$(EMOJI_ANNOTATION_DIR)/../annotationsDerived/$$f.xml" ; then \ - xml_derived_option="--xml-derived $(EMOJI_ANNOTATION_DIR)/../annotationsDerived/$$f.xml"; \ -@@ -279,6 +283,9 @@ dicts/emoji-en.dict: emoji-parser - echo "Generated $$plus_comment dicts/emoji-$$f.dict"; \ - done - -+ibusemojigen.h: dicts/emoji-en.dict -+ $(NULL) -+ - install-data-hook: $(dict_DATA) - @$(NORMAL_INSTALL) - $(AM_V_at)list='$(wildcard dicts/*.dict)'; \ -diff --git a/ui/gtk3/Makefile.am b/ui/gtk3/Makefile.am -index 60205aa5..667d51c6 100644 ---- a/ui/gtk3/Makefile.am -+++ b/ui/gtk3/Makefile.am -@@ -130,6 +130,8 @@ CLEANFILES = \ - gtkpanel.xml \ - $(NULL) - -+MAINTAINERCLEANFILES = -+ - emoji_headers = \ - ibusemojidialog.h \ - $(NULL) -@@ -192,6 +194,8 @@ emojierapp.o: $(srcdir)/emojierapp.c - $(AM_V_CC_no)$(COMPILE) -c -o $@ $< - $(NULL) - -+MAINTAINERCLEANFILES += emojierapp.c -+ - component_DATA += gtkextension.xml - CLEANFILES += gtkextension.xml - libexec_PROGRAMS += ibus-extension-gtk3 -@@ -240,6 +244,8 @@ panelbinding.o: $(srcdir)/panelbinding.c - $(AM_V_CC_no)$(COMPILE) -c -o $@ $< - $(NULL) - -+MAINTAINERCLEANFILES += extension.c panelbinding.c -+ - man_seven_files = $(man_seven_in_files:.7.in=.7) - man_seven_DATA =$(man_seven_files:.7=.7.gz) - man_sevendir = $(mandir)/man7 --- -2.21.0 - -From b497de5bc6525769e03b65c73fc991d4aa006223 Mon Sep 17 00:00:00 2001 -From: fujiwarat -Date: Wed, 20 Mar 2019 17:44:26 +0900 -Subject: [PATCH 04/27] test: Set GTK_IM_MODULE in test-console.sh - ---- - src/tests/Makefile.am | 4 ++-- - 1 files changed, 14 insertions(+), 2 deletions(-) - -diff --git a/src/tests/Makefile.am b/src/tests/Makefile.am -index e337a59b..e2ff5ea7 100644 ---- a/src/tests/Makefile.am -+++ b/src/tests/Makefile.am -@@ -3,7 +3,7 @@ - # ibus - The Input Bus - # - # Copyright (c) 2007-2015 Peng Huang --# Copyright (c) 2015-2018 Takao Fujiwara -+# Copyright (c) 2015-2019 Takao Fujiwara - # Copyright (c) 2007-2018 Red Hat, Inc. - # - # This library is free software; you can redistribute it and/or -@@ -78,7 +78,7 @@ TESTS_ENVIRONMENT = \ - - LOG_COMPILER = $(srcdir)/runtest - --EXTRA_DIST = runtest -+EXTRA_DIST = runtest ibus-compose.env - - ibus_bus_SOURCES = ibus-bus.c - ibus_bus_LDADD = $(prog_ldadd) --- -2.21.0 - -From 1cb5032e85d85f496e349236d1b74f17fb8db966 Mon Sep 17 00:00:00 2001 -From: fujiwarat -Date: Tue, 23 Apr 2019 15:40:45 +0900 -Subject: [PATCH 05/27] configure: Move ibus-setup from configure.ac to - Makefile.am - -@localedir@ can be extracted to ${datarootdir}/locale and -it needs datarootdir=/usr/share in case configure.ac is used -and deleting the datarootdir line caused a regression. -All variables can be extracted in Makefile.am with sed. ---- - configure.ac | 1 - - setup/Makefile.am | 13 +++++++++++-- - 2 files changed, 11 insertions(+), 3 deletions(-) - -diff --git a/configure.ac b/configure.ac -index 9518e808..7503f3e8 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -724,7 +724,6 @@ ibus/interface/Makefile - ui/Makefile - ui/gtk3/Makefile - setup/Makefile --setup/ibus-setup - bindings/Makefile - bindings/pygobject/Makefile - bindings/vala/Makefile -diff --git a/setup/Makefile.am b/setup/Makefile.am -index cb4dd8d1..34c8f136 100644 ---- a/setup/Makefile.am -+++ b/setup/Makefile.am -@@ -3,8 +3,8 @@ - # ibus - The Input Bus - # - # Copyright (c) 2007-2014 Peng Huang --# Copyright (c) 2015-2018 Takao Fujiwara --# Copyright (c) 2007-2018 Red Hat, Inc. -+# Copyright (c) 2015-2019 Takao Fujiwara -+# Copyright (c) 2007-2019 Red Hat, Inc. - # - # This library is free software; you can redistribute it and/or - # modify it under the terms of the GNU Lesser General Public -@@ -40,6 +40,15 @@ ibussetup_DATA = \ - bin_SCRIPTS = ibus-setup - ibussetupdir = $(pkgdatadir)/setup - -+ibus-setup: ibus-setup.in -+ $(AM_V_GEN) sed -e "s|\@datarootdir\@|$(datarootdir)|g" \ -+ -e "s|\@localedir\@|$(localedir)|g" \ -+ -e "s|\@libexecdir\@|$(libexecdir)|g" \ -+ -e "s|\@prefix\@|$(prefix)|g" \ -+ -e "s|\@PYTHON\@|$(PYTHON)|g" \ -+ $< > $@.tmp && \ -+ mv $@.tmp $@ -+ - desktop_notrans_files = ibus-setup.desktop - desktop_DATA = org.freedesktop.IBus.Setup.desktop - desktopdir = $(datadir)/applications --- -2.21.0 - -From cc849c20d4dff31f6f88f93789790759bf087b77 Mon Sep 17 00:00:00 2001 -From: fujiwarat -Date: Tue, 23 Apr 2019 17:56:20 +0900 -Subject: [PATCH 06/27] NEWS: Add shortlog - -Update Makefile.am to insert shortlog in NEWS -Update po/Makevars to add multiple COPYRIGHT_HOLDER ---- - Makefile.am | 7 +++++-- - po/Makevars | 3 ++- - 2 files changed, 7 insertions(+), 3 deletions(-) - -diff --git a/Makefile.am b/Makefile.am -index cf7460d6..9ff786dc 100644 ---- a/Makefile.am -+++ b/Makefile.am -@@ -3,8 +3,8 @@ - # ibus - The Input Bus - # - # Copyright (c) 2007-2016 Peng Huang --# Copyright (c) 2015-2017 Takao Fujiwara --# Copyright (c) 2007-2017 Red Hat, Inc. -+# Copyright (c) 2015-2019 Takao Fujiwara -+# Copyright (c) 2007-2019 Red Hat, Inc. - # - # This library is free software; you can redistribute it and/or - # modify it under the terms of the GNU Lesser General Public -@@ -103,6 +103,9 @@ dist-hook: - "$(IBUS_MAJOR_VERSION).$(IBUS_MINOR_VERSION).$$IBUS_PREV_MICRO_VERSION"; \ - echo "Changes in IBus $(IBUS_VERSION)" > $(distdir)/NEWS; \ - echo "" >> $(distdir)/NEWS; \ -+ git shortlog $$IBUS_PREV_VERSION...$(IBUS_VERSION) \ -+ >> $(distdir)/NEWS; \ -+ echo "" >> $(distdir)/NEWS; \ - git log $$IBUS_PREV_VERSION...$(IBUS_VERSION) --reverse \ - --pretty=format:'%s (%an) %h' >> $(distdir)/NEWS; \ - fi -diff --git a/po/Makevars b/po/Makevars -index d3fbeab2..1d16cc98 100644 ---- a/po/Makevars -+++ b/po/Makevars -@@ -20,7 +20,8 @@ XGETTEXT_OPTIONS = --from-code=UTF-8 --keyword=_ --keyword=N_ --keyword=C_:1c,2 - # or entity, or to disclaim their copyright. The empty string stands for - # the public domain; in this case the translators are expected to disclaim - # their copyright. --COPYRIGHT_HOLDER = Peng Huang -+COPYRIGHT_HOLDER = Peng Huang \ -+Takao Fujiwara - - # This is the email address or URL to which the translators shall report - # bugs in the untranslated strings: --- -2.21.0 - -From 1c54fea645b2ec3a385d492e4ca30a70dbb87c3a Mon Sep 17 00:00:00 2001 -From: fujiwarat -Date: Tue, 23 Apr 2019 18:44:45 +0900 -Subject: [PATCH 07/27] data/its: Add ibus.its for IME's component files - -IBusEngineDesc has translatable strings in longname and -description tags and they needs to be extracted by xgettext. - -After you install the ibus.[its|loc] to /usr/share/gettext/its, -each engine's component file needs to renamed with -'.inputMethod.xml' in the source directory suffix. E.g. -Rename 'anthy.xml' to 'anthy.inputMethod.xml' and write the file -path to the engine's POTFILES.in ---- - configure.ac | 1 + - data/Makefile.am | 3 ++- - data/its/Makefile.am | 29 +++++++++++++++++++++++++++++ - data/its/ibus.its | 14 ++++++++++++++ - data/its/ibus.loc | 7 +++++++ - 5 files changed, 53 insertions(+), 1 deletion(-) - create mode 100644 data/its/Makefile.am - create mode 100644 data/its/ibus.its - create mode 100644 data/its/ibus.loc - -diff --git a/configure.ac b/configure.ac -index 7503f3e8..b5a87b56 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -711,6 +711,7 @@ util/IMdkit/Makefile - data/Makefile - data/annotations/Makefile - data/icons/Makefile -+data/its/Makefile - data/keymaps/Makefile - data/dconf/Makefile - docs/Makefile -diff --git a/data/Makefile.am b/data/Makefile.am -index 2533f444..aa3ee466 100644 ---- a/data/Makefile.am -+++ b/data/Makefile.am -@@ -3,7 +3,7 @@ - # ibus - The Input Bus - # - # Copyright (c) 2007-2016 Peng Huang --# Copyright (c) 2007-2018 Red Hat, Inc. -+# Copyright (c) 2007-2019 Red Hat, Inc. - # - # This library is free software; you can redistribute it and/or - # modify it under the terms of the GNU Lesser General Public -@@ -23,6 +23,7 @@ - SUBDIRS = \ - annotations \ - icons \ -+ its \ - keymaps \ - $(NULL) - -diff --git a/data/its/Makefile.am b/data/its/Makefile.am -new file mode 100644 -index 00000000..07c8a96d ---- /dev/null -+++ b/data/its/Makefile.am -@@ -0,0 +1,29 @@ -+# vim:set noet ts=4: -+# -+# ibus - The Input Bus -+# -+# Copyright (c) 2019 Takao Fujiwara -+# Copyright (c) 2019 Red Hat, Inc. -+# -+# This library is free software; you can redistribute it and/or -+# modify it under the terms of the GNU Lesser General Public -+# License as published by the Free Software Foundation; either -+# version 2.1 of the License, or (at your option) any later version. -+# -+# This library is distributed in the hope that it will be useful, -+# but WITHOUT ANY WARRANTY; without even the implied warranty of -+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+# Lesser General Public License for more details. -+# -+# You should have received a copy of the GNU Lesser General Public -+# License along with this library; if not, write to the Free Software -+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 -+# USA -+ -+itsdir = $(datadir)/gettext/its -+its_DATA = \ -+ ibus.its \ -+ ibus.loc \ -+ $(NULL) -+ -+-include $(top_srcdir)/git.mk -diff --git a/data/its/ibus.its b/data/its/ibus.its -new file mode 100644 -index 00000000..30d8d4e2 ---- /dev/null -+++ b/data/its/ibus.its -@@ -0,0 +1,14 @@ -+ -+ -+ -+ -+ -+ -+ -+ -+ -diff --git a/data/its/ibus.loc b/data/its/ibus.loc -new file mode 100644 -index 00000000..5a73798b ---- /dev/null -+++ b/data/its/ibus.loc -@@ -0,0 +1,7 @@ -+ -+ -+ -+ -+ -+ -+ --- -2.21.0 - -From 91a256163427f04eb7763196b4ffe553911d2e01 Mon Sep 17 00:00:00 2001 -From: Gunnar Hjalmarsson -Date: Tue, 7 May 2019 19:42:28 +0900 -Subject: [PATCH 08/27] bus: Indistinguishable address of ibus-daemon - -BUG=https://github.com/ibus/ibus/issues/2095 ---- - bus/global.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/bus/global.c b/bus/global.c -index f147cd6f..2ba8b2a7 100644 ---- a/bus/global.c -+++ b/bus/global.c -@@ -24,7 +24,7 @@ - #include "global.h" - - gchar **g_argv = NULL; --gchar *g_address = "unix:tmpdir=/tmp"; -+gchar *g_address = "unix:tmpdir=/tmp/ibus"; - gchar *g_cache = "auto"; - gboolean g_mempro = FALSE; - gboolean g_verbose = FALSE; --- -2.21.0 - -From 05a10950d635602fb3fcf4ed0021aa0b15dbd698 Mon Sep 17 00:00:00 2001 -From: fujiwarat -Date: Thu, 9 May 2019 15:49:09 +0900 -Subject: [PATCH 09/27] src: Make ISO 639 language names with title - -Danish translations are small in iso-codes-iso-639-2-da.po for the -genral usage but the users ask the title format on UI. -Now ibus_get_language_name() and ibus_get_untranslated_language_name() -return the dynamic allocation instead of the static characters -to make the capital character. - -BUG=https://github.com/ibus/ibus/issues/2079 ---- - src/ibusutil.c | 63 ++++++++++++++++++++++++++++++++++++++++++-------- - src/ibusutil.h | 8 +++---- - 2 files changed, 58 insertions(+), 13 deletions(-) - -diff --git a/src/ibusutil.c b/src/ibusutil.c -index fd1da006..9d003e2e 100644 ---- a/src/ibusutil.c -+++ b/src/ibusutil.c -@@ -2,7 +2,7 @@ - /* vim:set et sts=4: */ - /* bus - The Input Bus - * Copyright (C) 2008-2015 Peng Huang -- * Copyright (C) 2010-2017 Takao Fujiwara -+ * Copyright (C) 2010-2018 Takao Fujiwara - * Copyright (C) 2008-2016 Red Hat, Inc. - * - * This library is free software; you can redistribute it and/or -@@ -125,8 +125,8 @@ _load_lang() - ibus_xml_free (node); - } - --const gchar * --ibus_get_untranslated_language_name (const gchar *_locale) -+const static gchar * -+ibus_get_untranslated_raw_language_name (const gchar *_locale) - { - const gchar *retval; - gchar *p = NULL; -@@ -148,19 +148,64 @@ ibus_get_untranslated_language_name (const gchar *_locale) - return "Other"; - } - --const gchar * -+static char * -+get_first_item_in_semicolon_list (const char *list) -+{ -+ char **items; -+ char *item; -+ -+ items = g_strsplit (list, "; ", 2); -+ -+ item = g_strdup (items[0]); -+ g_strfreev (items); -+ -+ return item; -+} -+ -+static char * -+capitalize_utf8_string (const char *str) -+{ -+ char first[8] = { 0 }; -+ -+ if (!str) -+ return NULL; -+ -+ g_unichar_to_utf8 (g_unichar_totitle (g_utf8_get_char (str)), first); -+ -+ return g_strconcat (first, g_utf8_offset_to_pointer (str, 1), NULL); -+} -+ -+gchar * -+ibus_get_untranslated_language_name (const gchar *_locale) -+{ -+ const gchar *raw = ibus_get_untranslated_raw_language_name (_locale); -+ gchar *tmp = get_first_item_in_semicolon_list (raw); -+ gchar *retval = capitalize_utf8_string (tmp); -+ g_free (tmp); -+ return retval; -+} -+ -+gchar * - ibus_get_language_name (const gchar *_locale) - { -- const gchar *retval = ibus_get_untranslated_language_name (_locale); -+ const gchar *raw = ibus_get_untranslated_raw_language_name (_locale); -+ const gchar *translation = NULL; -+ gchar *tmp; -+ gchar *retval; - - #ifdef ENABLE_NLS -- if (g_strcmp0 (retval, "Other") == 0) -- return dgettext (GETTEXT_PACKAGE, N_("Other")); -+ if (g_strcmp0 (raw, "Other") == 0) -+ return g_strdup (dgettext (GETTEXT_PACKAGE, N_("Other"))); - else -- return dgettext ("iso_639-3", retval); -+ translation = dgettext ("iso_639-3", raw); - #else -- return retval; -+ translation = raw; - #endif -+ -+ tmp = get_first_item_in_semicolon_list (translation); -+ retval = capitalize_utf8_string (tmp); -+ g_free (tmp); -+ return retval; - } - - void -diff --git a/src/ibusutil.h b/src/ibusutil.h -index 226dd7a8..795365f6 100644 ---- a/src/ibusutil.h -+++ b/src/ibusutil.h -@@ -2,8 +2,8 @@ - /* vim:set et sts=4: */ - /* bus - The Input Bus - * Copyright (C) 2008-2015 Peng Huang -- * Copyright (C) 2010-2017 Takao Fujiwara -- * Copyright (C) 2008-2016 Red Hat, Inc. -+ * Copyright (C) 2010-2018 Takao Fujiwara -+ * Copyright (C) 2008-2018 Red Hat, Inc. - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public -@@ -42,7 +42,7 @@ - * - * Returns: untranslated language name - */ --const gchar * ibus_get_untranslated_language_name -+gchar * ibus_get_untranslated_language_name - (const gchar *_locale); - - /** -@@ -51,6 +51,6 @@ const gchar * ibus_get_untranslated_language_name - * - * Returns: translated language name - */ --const gchar * ibus_get_language_name (const gchar *_locale); -+gchar * ibus_get_language_name (const gchar *_locale); - - #endif --- -2.21.0 - -From cebe7a9553de69943b955ec99285f74961c9ee4e Mon Sep 17 00:00:00 2001 -From: fujiwarat -Date: Thu, 9 May 2019 15:49:21 +0900 -Subject: [PATCH 10/27] client/gtk2: Keep preedit cursor_pos and visible in - clearing preedit text - -Clear the preedit_string but keep the preedit_cursor_pos and -preedit_visible because a time lag could happen, firefox commit -the preedit text before the preedit text is cleared and it cause -a double commits of the Hangul preedit in firefox if the preedit -would be located on the URL bar and click on anywhere of firefox -out of the URL bar. ---- - client/gtk2/ibusimcontext.c | 12 ++++++++++-- - 1 file changed, 10 insertions(+), 2 deletions(-) - -diff --git a/client/gtk2/ibusimcontext.c b/client/gtk2/ibusimcontext.c -index 264a747a..5e3457ba 100644 ---- a/client/gtk2/ibusimcontext.c -+++ b/client/gtk2/ibusimcontext.c -@@ -881,10 +881,18 @@ ibus_im_context_clear_preedit_text (IBusIMContext *ibusimcontext) - ibusimcontext->preedit_mode == IBUS_ENGINE_PREEDIT_COMMIT) { - preedit_string = g_strdup (ibusimcontext->preedit_string); - } -+ -+ /* Clear the preedit_string but keep the preedit_cursor_pos and -+ * preedit_visible because a time lag could happen, firefox commit -+ * the preedit text before the preedit text is cleared and it cause -+ * a double commits of the Hangul preedit in firefox if the preedit -+ * would be located on the URL bar and click on anywhere of firefox -+ * out of the URL bar. -+ */ - _ibus_context_update_preedit_text_cb (ibusimcontext->ibuscontext, - ibus_text_new_from_string (""), -- 0, -- FALSE, -+ ibusimcontext->preedit_cursor_pos, -+ ibusimcontext->preedit_visible, - IBUS_ENGINE_PREEDIT_CLEAR, - ibusimcontext); - if (preedit_string) { --- -2.21.0 - -From b59f7f823b7b2051e4ca31834f9299a72f01b339 Mon Sep 17 00:00:00 2001 -From: fujiwarat -Date: Thu, 9 May 2019 17:02:21 +0900 -Subject: [PATCH 14/27] src: Support 32bit and multiple compose outputs -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Compose file in en_US.UTF-8 now includes wide codepoints more than -U+FFFF likes ' : "🖕" U1F595' but the current -gtk_compose_seqs_compact[] is a guint16 array. -To support 32bit and multiple compose outputs, the array is now -separated to 16bit and 32bit arrays and 32bit array is also -separated to gtk_compose_seqs_compact_32bit_first[] for 16bit -key sequences and gtk_compose_seqs_compact_32bit_second[] for -32bit output values. - -BUG=https://github.com/ibus/ibus/issues/2074 ---- - src/gtkimcontextsimpleseqs.h | 9912 +++++++++++++++++---------------- - src/ibuscomposetable.h | 13 +- - src/ibusenginesimple.c | 166 +- - src/ibusenginesimpleprivate.h | 8 +- - 4 files changed, 5380 insertions(+), 4719 deletions(-) - -diff --git a/src/gtkimcontextsimpleseqs.h b/src/gtkimcontextsimpleseqs.h -index 632391a1..ffa5f125 100644 ---- a/src/gtkimcontextsimpleseqs.h -+++ b/src/gtkimcontextsimpleseqs.h -@@ -94,4680 +94,5244 @@ IBUS_KEY_dead_belowdiaeresis, 3705, 3705, 3708, 3708, 3708, - IBUS_KEY_dead_belowcomma, 3708, 3722, 3722, 3722, 3722, - IBUS_KEY_dead_currency, 3722, 3820, 3826, 3826, 3826, - IBUS_KEY_dead_greek, 3826, 3928, 3952, 3952, 3952, --IBUS_KEY_Multi_key, 3952, 3952, 10348, 14044, 15919, --IBUS_KEY_Greek_iota, 0x0390, --IBUS_KEY_Greek_upsilon, 0x03B0, --IBUS_KEY_space, 0x0060, --IBUS_KEY_V, 0x01DB, --IBUS_KEY_v, 0x01DC, --IBUS_KEY_nobreakspace, 0x0300, --IBUS_KEY_Abreve, 0x1EB0, --IBUS_KEY_abreve, 0x1EB1, --IBUS_KEY_Emacron, 0x1E14, --IBUS_KEY_emacron, 0x1E15, --IBUS_KEY_Omacron, 0x1E50, --IBUS_KEY_omacron, 0x1E51, --IBUS_KEY_Cyrillic_ie, 0x0450, --IBUS_KEY_Cyrillic_i, 0x045D, --IBUS_KEY_Cyrillic_IE, 0x0400, --IBUS_KEY_Cyrillic_I, 0x040D, --IBUS_KEY_Greek_iotadieresis, 0x1FD2, --IBUS_KEY_Greek_upsilondieresis, 0x1FE2, --IBUS_KEY_Greek_ALPHA, 0x1FBA, --IBUS_KEY_Greek_EPSILON, 0x1FC8, --IBUS_KEY_Greek_ETA, 0x1FCA, --IBUS_KEY_Greek_IOTA, 0x1FDA, --IBUS_KEY_Greek_OMICRON, 0x1FF8, --IBUS_KEY_Greek_UPSILON, 0x1FEA, --IBUS_KEY_Greek_OMEGA, 0x1FFA, --IBUS_KEY_Greek_alpha, 0x1F70, --IBUS_KEY_Greek_epsilon, 0x1F72, --IBUS_KEY_Greek_eta, 0x1F74, --IBUS_KEY_Greek_iota, 0x1F76, --IBUS_KEY_Greek_omicron, 0x1F78, --IBUS_KEY_Greek_upsilon, 0x1F7A, --IBUS_KEY_Greek_omega, 0x1F7C, --IBUS_KEY_dead_grave, 0x0060, --IBUS_KEY_dead_diaeresis, IBUS_KEY_Greek_iota, 0x1FD2, --IBUS_KEY_dead_diaeresis, IBUS_KEY_Greek_upsilon, 0x1FE2, --IBUS_KEY_dead_psili, IBUS_KEY_Greek_ALPHA, 0x1F0A, --IBUS_KEY_dead_psili, IBUS_KEY_Greek_EPSILON, 0x1F1A, --IBUS_KEY_dead_psili, IBUS_KEY_Greek_ETA, 0x1F2A, --IBUS_KEY_dead_psili, IBUS_KEY_Greek_IOTA, 0x1F3A, --IBUS_KEY_dead_psili, IBUS_KEY_Greek_OMICRON, 0x1F4A, --IBUS_KEY_dead_psili, IBUS_KEY_Greek_OMEGA, 0x1F6A, --IBUS_KEY_dead_psili, IBUS_KEY_Greek_alpha, 0x1F02, --IBUS_KEY_dead_psili, IBUS_KEY_Greek_epsilon, 0x1F12, --IBUS_KEY_dead_psili, IBUS_KEY_Greek_eta, 0x1F22, --IBUS_KEY_dead_psili, IBUS_KEY_Greek_iota, 0x1F32, --IBUS_KEY_dead_psili, IBUS_KEY_Greek_omicron, 0x1F42, --IBUS_KEY_dead_psili, IBUS_KEY_Greek_upsilon, 0x1F52, --IBUS_KEY_dead_psili, IBUS_KEY_Greek_omega, 0x1F62, --IBUS_KEY_dead_dasia, IBUS_KEY_Greek_ALPHA, 0x1F0B, --IBUS_KEY_dead_dasia, IBUS_KEY_Greek_EPSILON, 0x1F1B, --IBUS_KEY_dead_dasia, IBUS_KEY_Greek_ETA, 0x1F2B, --IBUS_KEY_dead_dasia, IBUS_KEY_Greek_IOTA, 0x1F3B, --IBUS_KEY_dead_dasia, IBUS_KEY_Greek_OMICRON, 0x1F4B, --IBUS_KEY_dead_dasia, IBUS_KEY_Greek_UPSILON, 0x1F5B, --IBUS_KEY_dead_dasia, IBUS_KEY_Greek_OMEGA, 0x1F6B, --IBUS_KEY_dead_dasia, IBUS_KEY_Greek_alpha, 0x1F03, --IBUS_KEY_dead_dasia, IBUS_KEY_Greek_epsilon, 0x1F13, --IBUS_KEY_dead_dasia, IBUS_KEY_Greek_eta, 0x1F23, --IBUS_KEY_dead_dasia, IBUS_KEY_Greek_iota, 0x1F33, --IBUS_KEY_dead_dasia, IBUS_KEY_Greek_omicron, 0x1F43, --IBUS_KEY_dead_dasia, IBUS_KEY_Greek_upsilon, 0x1F53, --IBUS_KEY_dead_dasia, IBUS_KEY_Greek_omega, 0x1F63, --IBUS_KEY_Multi_key, IBUS_KEY_quotedbl, IBUS_KEY_U, 0x01DB, --IBUS_KEY_Multi_key, IBUS_KEY_quotedbl, IBUS_KEY_u, 0x01DC, --IBUS_KEY_Multi_key, IBUS_KEY_quotedbl, IBUS_KEY_Greek_iota, 0x1FD2, --IBUS_KEY_Multi_key, IBUS_KEY_quotedbl, IBUS_KEY_Greek_upsilon, 0x1FE2, --IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_ALPHA, 0x1F0B, --IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_EPSILON, 0x1F1B, --IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_ETA, 0x1F2B, --IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_IOTA, 0x1F3B, --IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_OMICRON, 0x1F4B, --IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_UPSILON, 0x1F5B, --IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_OMEGA, 0x1F6B, --IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_alpha, 0x1F03, --IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_epsilon, 0x1F13, --IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_eta, 0x1F23, --IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_iota, 0x1F33, --IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_omicron, 0x1F43, --IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_upsilon, 0x1F53, --IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_omega, 0x1F63, --IBUS_KEY_Multi_key, IBUS_KEY_parenright, IBUS_KEY_Greek_ALPHA, 0x1F0A, --IBUS_KEY_Multi_key, IBUS_KEY_parenright, IBUS_KEY_Greek_EPSILON, 0x1F1A, --IBUS_KEY_Multi_key, IBUS_KEY_parenright, IBUS_KEY_Greek_ETA, 0x1F2A, --IBUS_KEY_Multi_key, IBUS_KEY_parenright, IBUS_KEY_Greek_IOTA, 0x1F3A, --IBUS_KEY_Multi_key, IBUS_KEY_parenright, IBUS_KEY_Greek_OMICRON, 0x1F4A, --IBUS_KEY_Multi_key, IBUS_KEY_parenright, IBUS_KEY_Greek_OMEGA, 0x1F6A, --IBUS_KEY_Multi_key, IBUS_KEY_parenright, IBUS_KEY_Greek_alpha, 0x1F02, --IBUS_KEY_Multi_key, IBUS_KEY_parenright, IBUS_KEY_Greek_epsilon, 0x1F12, --IBUS_KEY_Multi_key, IBUS_KEY_parenright, IBUS_KEY_Greek_eta, 0x1F22, --IBUS_KEY_Multi_key, IBUS_KEY_parenright, IBUS_KEY_Greek_iota, 0x1F32, --IBUS_KEY_Multi_key, IBUS_KEY_parenright, IBUS_KEY_Greek_omicron, 0x1F42, --IBUS_KEY_Multi_key, IBUS_KEY_parenright, IBUS_KEY_Greek_upsilon, 0x1F52, --IBUS_KEY_Multi_key, IBUS_KEY_parenright, IBUS_KEY_Greek_omega, 0x1F62, --IBUS_KEY_Multi_key, IBUS_KEY_plus, IBUS_KEY_O, 0x1EDC, --IBUS_KEY_Multi_key, IBUS_KEY_plus, IBUS_KEY_U, 0x1EEA, --IBUS_KEY_Multi_key, IBUS_KEY_plus, IBUS_KEY_o, 0x1EDD, --IBUS_KEY_Multi_key, IBUS_KEY_plus, IBUS_KEY_u, 0x1EEB, --IBUS_KEY_Multi_key, IBUS_KEY_U, IBUS_KEY_A, 0x1EB0, --IBUS_KEY_Multi_key, IBUS_KEY_U, IBUS_KEY_a, 0x1EB1, --IBUS_KEY_Multi_key, IBUS_KEY_asciicircum, IBUS_KEY_A, 0x1EA6, --IBUS_KEY_Multi_key, IBUS_KEY_asciicircum, IBUS_KEY_E, 0x1EC0, --IBUS_KEY_Multi_key, IBUS_KEY_asciicircum, IBUS_KEY_O, 0x1ED2, --IBUS_KEY_Multi_key, IBUS_KEY_asciicircum, IBUS_KEY_a, 0x1EA7, --IBUS_KEY_Multi_key, IBUS_KEY_asciicircum, IBUS_KEY_e, 0x1EC1, --IBUS_KEY_Multi_key, IBUS_KEY_asciicircum, IBUS_KEY_o, 0x1ED3, --IBUS_KEY_Multi_key, IBUS_KEY_underscore, IBUS_KEY_E, 0x1E14, --IBUS_KEY_Multi_key, IBUS_KEY_underscore, IBUS_KEY_O, 0x1E50, --IBUS_KEY_Multi_key, IBUS_KEY_underscore, IBUS_KEY_e, 0x1E15, --IBUS_KEY_Multi_key, IBUS_KEY_underscore, IBUS_KEY_o, 0x1E51, --IBUS_KEY_Multi_key, IBUS_KEY_b, IBUS_KEY_A, 0x1EB0, --IBUS_KEY_Multi_key, IBUS_KEY_b, IBUS_KEY_a, 0x1EB1, --IBUS_KEY_Multi_key, IBUS_KEY_macron, IBUS_KEY_E, 0x1E14, --IBUS_KEY_Multi_key, IBUS_KEY_macron, IBUS_KEY_O, 0x1E50, --IBUS_KEY_Multi_key, IBUS_KEY_macron, IBUS_KEY_e, 0x1E15, --IBUS_KEY_Multi_key, IBUS_KEY_macron, IBUS_KEY_o, 0x1E51, --IBUS_KEY_space, 0x0027, --IBUS_KEY_V, 0x01D7, --IBUS_KEY_v, 0x01D8, --IBUS_KEY_nobreakspace, 0x0301, --IBUS_KEY_Abreve, 0x1EAE, --IBUS_KEY_abreve, 0x1EAF, --IBUS_KEY_Emacron, 0x1E16, --IBUS_KEY_emacron, 0x1E17, --IBUS_KEY_Utilde, 0x1E78, --IBUS_KEY_omacron, 0x1E53, --IBUS_KEY_utilde, 0x1E79, --IBUS_KEY_Cyrillic_ghe, 0x0453, --IBUS_KEY_Cyrillic_ka, 0x045C, --IBUS_KEY_Cyrillic_GHE, 0x0403, --IBUS_KEY_Cyrillic_KA, 0x040C, --IBUS_KEY_Greek_iotadieresis, 0x0390, --IBUS_KEY_Greek_upsilondieresis, 0x03B0, --IBUS_KEY_Greek_ALPHA, 0x0386, --IBUS_KEY_Greek_EPSILON, 0x0388, --IBUS_KEY_Greek_ETA, 0x0389, --IBUS_KEY_Greek_IOTA, 0x038A, --IBUS_KEY_Greek_OMICRON, 0x038C, --IBUS_KEY_Greek_UPSILON, 0x038E, --IBUS_KEY_Greek_OMEGA, 0x038F, --IBUS_KEY_Greek_alpha, 0x03AC, --IBUS_KEY_Greek_epsilon, 0x03AD, --IBUS_KEY_Greek_eta, 0x03AE, --IBUS_KEY_Greek_iota, 0x03AF, --IBUS_KEY_Greek_omicron, 0x03CC, --IBUS_KEY_Greek_upsilon, 0x03CD, --IBUS_KEY_Greek_omega, 0x03CE, --IBUS_KEY_dead_acute, 0x00B4, --IBUS_KEY_dead_diaeresis, IBUS_KEY_space, 0x0385, --IBUS_KEY_dead_diaeresis, IBUS_KEY_Greek_iota, 0x0390, --IBUS_KEY_dead_diaeresis, IBUS_KEY_Greek_upsilon, 0x03B0, --IBUS_KEY_dead_stroke, IBUS_KEY_O, 0x01FE, --IBUS_KEY_dead_stroke, IBUS_KEY_o, 0x01FF, --IBUS_KEY_dead_psili, IBUS_KEY_Greek_ALPHA, 0x1F0C, --IBUS_KEY_dead_psili, IBUS_KEY_Greek_EPSILON, 0x1F1C, --IBUS_KEY_dead_psili, IBUS_KEY_Greek_ETA, 0x1F2C, --IBUS_KEY_dead_psili, IBUS_KEY_Greek_IOTA, 0x1F3C, --IBUS_KEY_dead_psili, IBUS_KEY_Greek_OMICRON, 0x1F4C, --IBUS_KEY_dead_psili, IBUS_KEY_Greek_OMEGA, 0x1F6C, --IBUS_KEY_dead_psili, IBUS_KEY_Greek_alpha, 0x1F04, --IBUS_KEY_dead_psili, IBUS_KEY_Greek_epsilon, 0x1F14, --IBUS_KEY_dead_psili, IBUS_KEY_Greek_eta, 0x1F24, --IBUS_KEY_dead_psili, IBUS_KEY_Greek_iota, 0x1F34, --IBUS_KEY_dead_psili, IBUS_KEY_Greek_omicron, 0x1F44, --IBUS_KEY_dead_psili, IBUS_KEY_Greek_upsilon, 0x1F54, --IBUS_KEY_dead_psili, IBUS_KEY_Greek_omega, 0x1F64, --IBUS_KEY_dead_dasia, IBUS_KEY_Greek_ALPHA, 0x1F0D, --IBUS_KEY_dead_dasia, IBUS_KEY_Greek_EPSILON, 0x1F1D, --IBUS_KEY_dead_dasia, IBUS_KEY_Greek_ETA, 0x1F2D, --IBUS_KEY_dead_dasia, IBUS_KEY_Greek_IOTA, 0x1F3D, --IBUS_KEY_dead_dasia, IBUS_KEY_Greek_OMICRON, 0x1F4D, --IBUS_KEY_dead_dasia, IBUS_KEY_Greek_UPSILON, 0x1F5D, --IBUS_KEY_dead_dasia, IBUS_KEY_Greek_OMEGA, 0x1F6D, --IBUS_KEY_dead_dasia, IBUS_KEY_Greek_alpha, 0x1F05, --IBUS_KEY_dead_dasia, IBUS_KEY_Greek_epsilon, 0x1F15, --IBUS_KEY_dead_dasia, IBUS_KEY_Greek_eta, 0x1F25, --IBUS_KEY_dead_dasia, IBUS_KEY_Greek_iota, 0x1F35, --IBUS_KEY_dead_dasia, IBUS_KEY_Greek_omicron, 0x1F45, --IBUS_KEY_dead_dasia, IBUS_KEY_Greek_upsilon, 0x1F55, --IBUS_KEY_dead_dasia, IBUS_KEY_Greek_omega, 0x1F65, --IBUS_KEY_Multi_key, IBUS_KEY_quotedbl, IBUS_KEY_I, 0x1E2E, --IBUS_KEY_Multi_key, IBUS_KEY_quotedbl, IBUS_KEY_U, 0x01D7, --IBUS_KEY_Multi_key, IBUS_KEY_quotedbl, IBUS_KEY_i, 0x1E2F, --IBUS_KEY_Multi_key, IBUS_KEY_quotedbl, IBUS_KEY_u, 0x01D8, --IBUS_KEY_Multi_key, IBUS_KEY_quotedbl, IBUS_KEY_Greek_iota, 0x0390, --IBUS_KEY_Multi_key, IBUS_KEY_quotedbl, IBUS_KEY_Greek_upsilon, 0x03B0, --IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_ALPHA, 0x1F0D, --IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_EPSILON, 0x1F1D, --IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_ETA, 0x1F2D, --IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_IOTA, 0x1F3D, --IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_OMICRON, 0x1F4D, --IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_UPSILON, 0x1F5D, --IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_OMEGA, 0x1F6D, --IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_alpha, 0x1F05, --IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_epsilon, 0x1F15, --IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_eta, 0x1F25, --IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_iota, 0x1F35, --IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_omicron, 0x1F45, --IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_upsilon, 0x1F55, --IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_omega, 0x1F65, --IBUS_KEY_Multi_key, IBUS_KEY_parenright, IBUS_KEY_Greek_ALPHA, 0x1F0C, --IBUS_KEY_Multi_key, IBUS_KEY_parenright, IBUS_KEY_Greek_EPSILON, 0x1F1C, --IBUS_KEY_Multi_key, IBUS_KEY_parenright, IBUS_KEY_Greek_ETA, 0x1F2C, --IBUS_KEY_Multi_key, IBUS_KEY_parenright, IBUS_KEY_Greek_IOTA, 0x1F3C, --IBUS_KEY_Multi_key, IBUS_KEY_parenright, IBUS_KEY_Greek_OMICRON, 0x1F4C, --IBUS_KEY_Multi_key, IBUS_KEY_parenright, IBUS_KEY_Greek_OMEGA, 0x1F6C, --IBUS_KEY_Multi_key, IBUS_KEY_parenright, IBUS_KEY_Greek_alpha, 0x1F04, --IBUS_KEY_Multi_key, IBUS_KEY_parenright, IBUS_KEY_Greek_epsilon, 0x1F14, --IBUS_KEY_Multi_key, IBUS_KEY_parenright, IBUS_KEY_Greek_eta, 0x1F24, --IBUS_KEY_Multi_key, IBUS_KEY_parenright, IBUS_KEY_Greek_iota, 0x1F34, --IBUS_KEY_Multi_key, IBUS_KEY_parenright, IBUS_KEY_Greek_omicron, 0x1F44, --IBUS_KEY_Multi_key, IBUS_KEY_parenright, IBUS_KEY_Greek_upsilon, 0x1F54, --IBUS_KEY_Multi_key, IBUS_KEY_parenright, IBUS_KEY_Greek_omega, 0x1F64, --IBUS_KEY_Multi_key, IBUS_KEY_plus, IBUS_KEY_O, 0x1EDA, --IBUS_KEY_Multi_key, IBUS_KEY_plus, IBUS_KEY_U, 0x1EE8, --IBUS_KEY_Multi_key, IBUS_KEY_plus, IBUS_KEY_o, 0x1EDB, --IBUS_KEY_Multi_key, IBUS_KEY_plus, IBUS_KEY_u, 0x1EE9, --IBUS_KEY_Multi_key, IBUS_KEY_comma, IBUS_KEY_C, 0x1E08, --IBUS_KEY_Multi_key, IBUS_KEY_comma, IBUS_KEY_c, 0x1E09, --IBUS_KEY_Multi_key, IBUS_KEY_slash, IBUS_KEY_O, 0x01FE, --IBUS_KEY_Multi_key, IBUS_KEY_slash, IBUS_KEY_o, 0x01FF, --IBUS_KEY_Multi_key, IBUS_KEY_U, IBUS_KEY_A, 0x1EAE, --IBUS_KEY_Multi_key, IBUS_KEY_U, IBUS_KEY_a, 0x1EAF, --IBUS_KEY_Multi_key, IBUS_KEY_asciicircum, IBUS_KEY_A, 0x1EA4, --IBUS_KEY_Multi_key, IBUS_KEY_asciicircum, IBUS_KEY_E, 0x1EBE, --IBUS_KEY_Multi_key, IBUS_KEY_asciicircum, IBUS_KEY_O, 0x1ED0, --IBUS_KEY_Multi_key, IBUS_KEY_asciicircum, IBUS_KEY_a, 0x1EA5, --IBUS_KEY_Multi_key, IBUS_KEY_asciicircum, IBUS_KEY_e, 0x1EBF, --IBUS_KEY_Multi_key, IBUS_KEY_asciicircum, IBUS_KEY_o, 0x1ED1, --IBUS_KEY_Multi_key, IBUS_KEY_underscore, IBUS_KEY_E, 0x1E16, --IBUS_KEY_Multi_key, IBUS_KEY_underscore, IBUS_KEY_O, 0x1E52, --IBUS_KEY_Multi_key, IBUS_KEY_underscore, IBUS_KEY_e, 0x1E17, --IBUS_KEY_Multi_key, IBUS_KEY_underscore, IBUS_KEY_o, 0x1E53, --IBUS_KEY_Multi_key, IBUS_KEY_b, IBUS_KEY_A, 0x1EAE, --IBUS_KEY_Multi_key, IBUS_KEY_b, IBUS_KEY_a, 0x1EAF, --IBUS_KEY_Multi_key, IBUS_KEY_o, IBUS_KEY_A, 0x01FA, --IBUS_KEY_Multi_key, IBUS_KEY_o, IBUS_KEY_a, 0x01FB, --IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, IBUS_KEY_O, 0x1E4C, --IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, IBUS_KEY_U, 0x1E78, --IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, IBUS_KEY_o, 0x1E4D, --IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, IBUS_KEY_u, 0x1E79, --IBUS_KEY_Multi_key, IBUS_KEY_macron, IBUS_KEY_E, 0x1E16, --IBUS_KEY_Multi_key, IBUS_KEY_macron, IBUS_KEY_O, 0x1E52, --IBUS_KEY_Multi_key, IBUS_KEY_macron, IBUS_KEY_e, 0x1E17, --IBUS_KEY_Multi_key, IBUS_KEY_macron, IBUS_KEY_o, 0x1E53, --IBUS_KEY_Multi_key, IBUS_KEY_cedilla, IBUS_KEY_C, 0x1E08, --IBUS_KEY_Multi_key, IBUS_KEY_cedilla, IBUS_KEY_c, 0x1E09, --IBUS_KEY_Multi_key, IBUS_KEY_KP_Divide, IBUS_KEY_O, 0x01FE, --IBUS_KEY_Multi_key, IBUS_KEY_KP_Divide, IBUS_KEY_o, 0x01FF, --IBUS_KEY_space, 0x005E, --IBUS_KEY_parenleft, 0x207D, --IBUS_KEY_parenright, 0x207E, --IBUS_KEY_plus, 0x207A, --IBUS_KEY_minus, 0x207B, --IBUS_KEY_0, 0x2070, --IBUS_KEY_1, 0x00B9, --IBUS_KEY_2, 0x00B2, --IBUS_KEY_3, 0x00B3, --IBUS_KEY_4, 0x2074, --IBUS_KEY_5, 0x2075, --IBUS_KEY_6, 0x2076, --IBUS_KEY_7, 0x2077, --IBUS_KEY_8, 0x2078, --IBUS_KEY_9, 0x2079, --IBUS_KEY_equal, 0x207C, --IBUS_KEY_nobreakspace, 0x0302, --IBUS_KEY_Agrave, 0x1EA6, --IBUS_KEY_Aacute, 0x1EA4, --IBUS_KEY_Atilde, 0x1EAA, --IBUS_KEY_Egrave, 0x1EC0, --IBUS_KEY_Eacute, 0x1EBE, --IBUS_KEY_Ograve, 0x1ED2, --IBUS_KEY_Oacute, 0x1ED0, --IBUS_KEY_Otilde, 0x1ED6, --IBUS_KEY_agrave, 0x1EA7, --IBUS_KEY_aacute, 0x1EA5, --IBUS_KEY_atilde, 0x1EAB, --IBUS_KEY_egrave, 0x1EC1, --IBUS_KEY_eacute, 0x1EBF, --IBUS_KEY_ograve, 0x1ED3, --IBUS_KEY_oacute, 0x1ED1, --IBUS_KEY_otilde, 0x1ED7, --0x2212, 0x207B, --0x4E00, 0x3192, --0x4E01, 0x319C, --0x4E09, 0x3194, --0x4E0A, 0x3196, --0x4E0B, 0x3198, --0x4E19, 0x319B, --0x4E2D, 0x3197, --0x4E59, 0x319A, --0x4E8C, 0x3193, --0x4EBA, 0x319F, --0x56DB, 0x3195, --0x5730, 0x319E, --0x5929, 0x319D, --0x7532, 0x3199, --IBUS_KEY_dead_circumflex, 0x005E, --IBUS_KEY_KP_Space, 0x00B2, --IBUS_KEY_KP_Add, 0x207A, --IBUS_KEY_KP_0, 0x2070, --IBUS_KEY_KP_1, 0x00B9, --IBUS_KEY_KP_2, 0x00B2, --IBUS_KEY_KP_3, 0x00B3, --IBUS_KEY_KP_4, 0x2074, --IBUS_KEY_KP_5, 0x2075, --IBUS_KEY_KP_6, 0x2076, --IBUS_KEY_KP_7, 0x2077, --IBUS_KEY_KP_8, 0x2078, --IBUS_KEY_KP_9, 0x2079, --IBUS_KEY_KP_Equal, 0x207C, --IBUS_KEY_Multi_key, IBUS_KEY_exclam, IBUS_KEY_A, 0x1EAC, --IBUS_KEY_Multi_key, IBUS_KEY_exclam, IBUS_KEY_E, 0x1EC6, --IBUS_KEY_Multi_key, IBUS_KEY_exclam, IBUS_KEY_O, 0x1ED8, --IBUS_KEY_Multi_key, IBUS_KEY_exclam, IBUS_KEY_a, 0x1EAD, --IBUS_KEY_Multi_key, IBUS_KEY_exclam, IBUS_KEY_e, 0x1EC7, --IBUS_KEY_Multi_key, IBUS_KEY_exclam, IBUS_KEY_o, 0x1ED9, --IBUS_KEY_Multi_key, IBUS_KEY_S, IBUS_KEY_M, 0x2120, --IBUS_KEY_Multi_key, IBUS_KEY_S, IBUS_KEY_m, 0x2120, --IBUS_KEY_Multi_key, IBUS_KEY_T, IBUS_KEY_M, 0x2122, --IBUS_KEY_Multi_key, IBUS_KEY_T, IBUS_KEY_m, 0x2122, --IBUS_KEY_Multi_key, IBUS_KEY_underscore, IBUS_KEY_a, 0x00AA, --IBUS_KEY_Multi_key, IBUS_KEY_underscore, IBUS_KEY_h, 0x02B0, --IBUS_KEY_Multi_key, IBUS_KEY_underscore, IBUS_KEY_i, 0x2071, --IBUS_KEY_Multi_key, IBUS_KEY_underscore, IBUS_KEY_j, 0x02B2, --IBUS_KEY_Multi_key, IBUS_KEY_underscore, IBUS_KEY_l, 0x02E1, --IBUS_KEY_Multi_key, IBUS_KEY_underscore, IBUS_KEY_n, 0x207F, --IBUS_KEY_Multi_key, IBUS_KEY_underscore, IBUS_KEY_o, 0x00BA, --IBUS_KEY_Multi_key, IBUS_KEY_underscore, IBUS_KEY_r, 0x02B3, --IBUS_KEY_Multi_key, IBUS_KEY_underscore, IBUS_KEY_s, 0x02E2, --IBUS_KEY_Multi_key, IBUS_KEY_underscore, IBUS_KEY_w, 0x02B7, --IBUS_KEY_Multi_key, IBUS_KEY_underscore, IBUS_KEY_x, 0x02E3, --IBUS_KEY_Multi_key, IBUS_KEY_underscore, IBUS_KEY_y, 0x02B8, --IBUS_KEY_Multi_key, IBUS_KEY_underscore, 0x0263, 0x02E0, --IBUS_KEY_Multi_key, IBUS_KEY_underscore, 0x0266, 0x02B1, --IBUS_KEY_Multi_key, IBUS_KEY_underscore, 0x0279, 0x02B4, --IBUS_KEY_Multi_key, IBUS_KEY_underscore, 0x027B, 0x02B5, --IBUS_KEY_Multi_key, IBUS_KEY_underscore, 0x0281, 0x02B6, --IBUS_KEY_Multi_key, IBUS_KEY_underscore, 0x0295, 0x02E4, --IBUS_KEY_Multi_key, IBUS_KEY_s, IBUS_KEY_M, 0x2120, --IBUS_KEY_Multi_key, IBUS_KEY_s, IBUS_KEY_m, 0x2120, --IBUS_KEY_Multi_key, IBUS_KEY_t, IBUS_KEY_M, 0x2122, --IBUS_KEY_Multi_key, IBUS_KEY_t, IBUS_KEY_m, 0x2122, --IBUS_KEY_Multi_key, IBUS_KEY_underbar, IBUS_KEY_a, 0x00AA, --IBUS_KEY_Multi_key, IBUS_KEY_underbar, IBUS_KEY_h, 0x02B0, --IBUS_KEY_Multi_key, IBUS_KEY_underbar, IBUS_KEY_i, 0x2071, --IBUS_KEY_Multi_key, IBUS_KEY_underbar, IBUS_KEY_j, 0x02B2, --IBUS_KEY_Multi_key, IBUS_KEY_underbar, IBUS_KEY_l, 0x02E1, --IBUS_KEY_Multi_key, IBUS_KEY_underbar, IBUS_KEY_n, 0x207F, --IBUS_KEY_Multi_key, IBUS_KEY_underbar, IBUS_KEY_o, 0x00BA, --IBUS_KEY_Multi_key, IBUS_KEY_underbar, IBUS_KEY_r, 0x02B3, --IBUS_KEY_Multi_key, IBUS_KEY_underbar, IBUS_KEY_s, 0x02E2, --IBUS_KEY_Multi_key, IBUS_KEY_underbar, IBUS_KEY_w, 0x02B7, --IBUS_KEY_Multi_key, IBUS_KEY_underbar, IBUS_KEY_x, 0x02E3, --IBUS_KEY_Multi_key, IBUS_KEY_underbar, IBUS_KEY_y, 0x02B8, --IBUS_KEY_Multi_key, IBUS_KEY_underbar, 0x0263, 0x02E0, --IBUS_KEY_Multi_key, IBUS_KEY_underbar, 0x0266, 0x02B1, --IBUS_KEY_Multi_key, IBUS_KEY_underbar, 0x0279, 0x02B4, --IBUS_KEY_Multi_key, IBUS_KEY_underbar, 0x027B, 0x02B5, --IBUS_KEY_Multi_key, IBUS_KEY_underbar, 0x0281, 0x02B6, --IBUS_KEY_Multi_key, IBUS_KEY_underbar, 0x0295, 0x02E4, --IBUS_KEY_space, 0x007E, --IBUS_KEY_less, 0x2272, --IBUS_KEY_equal, 0x2243, --IBUS_KEY_greater, 0x2273, --IBUS_KEY_nobreakspace, 0x0303, --IBUS_KEY_Oacute, 0x1E4C, --IBUS_KEY_Odiaeresis, 0x1E4E, --IBUS_KEY_Uacute, 0x1E78, --IBUS_KEY_oacute, 0x1E4D, --IBUS_KEY_odiaeresis, 0x1E4F, --IBUS_KEY_uacute, 0x1E79, --IBUS_KEY_Abreve, 0x1EB4, --IBUS_KEY_abreve, 0x1EB5, --IBUS_KEY_Omacron, 0x022C, --IBUS_KEY_omacron, 0x022D, --IBUS_KEY_Greek_iotadieresis, 0x1FD7, --IBUS_KEY_Greek_upsilondieresis, 0x1FE7, --IBUS_KEY_Greek_alpha, 0x1FB6, --IBUS_KEY_Greek_eta, 0x1FC6, --IBUS_KEY_Greek_iota, 0x1FD6, --IBUS_KEY_Greek_upsilon, 0x1FE6, --IBUS_KEY_Greek_omega, 0x1FF6, --0x1F00, 0x1F06, --0x1F01, 0x1F07, --0x1F08, 0x1F0E, --0x1F09, 0x1F0F, --0x1F20, 0x1F26, --0x1F21, 0x1F27, --0x1F28, 0x1F2E, --0x1F29, 0x1F2F, --0x1F30, 0x1F36, --0x1F31, 0x1F37, --0x1F38, 0x1F3E, --0x1F39, 0x1F3F, --0x1F50, 0x1F56, --0x1F51, 0x1F57, --0x1F59, 0x1F5F, --0x1F60, 0x1F66, --0x1F61, 0x1F67, --0x1F68, 0x1F6E, --0x1F69, 0x1F6F, --IBUS_KEY_dead_tilde, 0x007E, --IBUS_KEY_dead_diaeresis, IBUS_KEY_Greek_iota, 0x1FD7, --IBUS_KEY_dead_diaeresis, IBUS_KEY_Greek_upsilon, 0x1FE7, --IBUS_KEY_dead_psili, IBUS_KEY_Greek_ALPHA, 0x1F0E, --IBUS_KEY_dead_psili, IBUS_KEY_Greek_ETA, 0x1F2E, --IBUS_KEY_dead_psili, IBUS_KEY_Greek_IOTA, 0x1F3E, --IBUS_KEY_dead_psili, IBUS_KEY_Greek_OMEGA, 0x1F6E, --IBUS_KEY_dead_psili, IBUS_KEY_Greek_alpha, 0x1F06, --IBUS_KEY_dead_psili, IBUS_KEY_Greek_eta, 0x1F26, --IBUS_KEY_dead_psili, IBUS_KEY_Greek_iota, 0x1F36, --IBUS_KEY_dead_psili, IBUS_KEY_Greek_upsilon, 0x1F56, --IBUS_KEY_dead_psili, IBUS_KEY_Greek_omega, 0x1F66, --IBUS_KEY_dead_dasia, IBUS_KEY_Greek_ALPHA, 0x1F0F, --IBUS_KEY_dead_dasia, IBUS_KEY_Greek_ETA, 0x1F2F, --IBUS_KEY_dead_dasia, IBUS_KEY_Greek_IOTA, 0x1F3F, --IBUS_KEY_dead_dasia, IBUS_KEY_Greek_UPSILON, 0x1F5F, --IBUS_KEY_dead_dasia, IBUS_KEY_Greek_OMEGA, 0x1F6F, --IBUS_KEY_dead_dasia, IBUS_KEY_Greek_alpha, 0x1F07, --IBUS_KEY_dead_dasia, IBUS_KEY_Greek_eta, 0x1F27, --IBUS_KEY_dead_dasia, IBUS_KEY_Greek_iota, 0x1F37, --IBUS_KEY_dead_dasia, IBUS_KEY_Greek_upsilon, 0x1F57, --IBUS_KEY_dead_dasia, IBUS_KEY_Greek_omega, 0x1F67, --IBUS_KEY_Multi_key, IBUS_KEY_quotedbl, IBUS_KEY_Greek_iota, 0x1FD7, --IBUS_KEY_Multi_key, IBUS_KEY_quotedbl, IBUS_KEY_Greek_upsilon, 0x1FE7, --IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_ALPHA, 0x1F0F, --IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_ETA, 0x1F2F, --IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_IOTA, 0x1F3F, --IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_UPSILON, 0x1F5F, --IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_OMEGA, 0x1F6F, --IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_alpha, 0x1F07, --IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_eta, 0x1F27, --IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_iota, 0x1F37, --IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_upsilon, 0x1F57, --IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_omega, 0x1F67, --IBUS_KEY_Multi_key, IBUS_KEY_parenright, IBUS_KEY_Greek_ALPHA, 0x1F0E, --IBUS_KEY_Multi_key, IBUS_KEY_parenright, IBUS_KEY_Greek_ETA, 0x1F2E, --IBUS_KEY_Multi_key, IBUS_KEY_parenright, IBUS_KEY_Greek_IOTA, 0x1F3E, --IBUS_KEY_Multi_key, IBUS_KEY_parenright, IBUS_KEY_Greek_OMEGA, 0x1F6E, --IBUS_KEY_Multi_key, IBUS_KEY_parenright, IBUS_KEY_Greek_alpha, 0x1F06, --IBUS_KEY_Multi_key, IBUS_KEY_parenright, IBUS_KEY_Greek_eta, 0x1F26, --IBUS_KEY_Multi_key, IBUS_KEY_parenright, IBUS_KEY_Greek_iota, 0x1F36, --IBUS_KEY_Multi_key, IBUS_KEY_parenright, IBUS_KEY_Greek_upsilon, 0x1F56, --IBUS_KEY_Multi_key, IBUS_KEY_parenright, IBUS_KEY_Greek_omega, 0x1F66, --IBUS_KEY_Multi_key, IBUS_KEY_plus, IBUS_KEY_O, 0x1EE0, --IBUS_KEY_Multi_key, IBUS_KEY_plus, IBUS_KEY_U, 0x1EEE, --IBUS_KEY_Multi_key, IBUS_KEY_plus, IBUS_KEY_o, 0x1EE1, --IBUS_KEY_Multi_key, IBUS_KEY_plus, IBUS_KEY_u, 0x1EEF, --IBUS_KEY_Multi_key, IBUS_KEY_U, IBUS_KEY_A, 0x1EB4, --IBUS_KEY_Multi_key, IBUS_KEY_U, IBUS_KEY_a, 0x1EB5, --IBUS_KEY_Multi_key, IBUS_KEY_asciicircum, IBUS_KEY_A, 0x1EAA, --IBUS_KEY_Multi_key, IBUS_KEY_asciicircum, IBUS_KEY_E, 0x1EC4, --IBUS_KEY_Multi_key, IBUS_KEY_asciicircum, IBUS_KEY_O, 0x1ED6, --IBUS_KEY_Multi_key, IBUS_KEY_asciicircum, IBUS_KEY_a, 0x1EAB, --IBUS_KEY_Multi_key, IBUS_KEY_asciicircum, IBUS_KEY_e, 0x1EC5, --IBUS_KEY_Multi_key, IBUS_KEY_asciicircum, IBUS_KEY_o, 0x1ED7, --IBUS_KEY_Multi_key, IBUS_KEY_b, IBUS_KEY_A, 0x1EB4, --IBUS_KEY_Multi_key, IBUS_KEY_b, IBUS_KEY_a, 0x1EB5, --IBUS_KEY_space, 0x00AF, --IBUS_KEY_V, 0x01D5, --IBUS_KEY_v, 0x01D6, --IBUS_KEY_nobreakspace, 0x0304, --IBUS_KEY_Egrave, 0x1E14, --IBUS_KEY_Eacute, 0x1E16, --IBUS_KEY_Ograve, 0x1E50, --IBUS_KEY_Oacute, 0x1E52, --IBUS_KEY_egrave, 0x1E15, --IBUS_KEY_eacute, 0x1E17, --IBUS_KEY_ograve, 0x1E51, --IBUS_KEY_oacute, 0x1E53, --IBUS_KEY_Cyrillic_i, 0x04E3, --IBUS_KEY_Cyrillic_u, 0x04EF, --IBUS_KEY_Cyrillic_I, 0x04E2, --IBUS_KEY_Cyrillic_U, 0x04EE, --IBUS_KEY_Greek_ALPHA, 0x1FB9, --IBUS_KEY_Greek_IOTA, 0x1FD9, --IBUS_KEY_Greek_UPSILON, 0x1FE9, --IBUS_KEY_Greek_alpha, 0x1FB1, --IBUS_KEY_Greek_iota, 0x1FD1, --IBUS_KEY_Greek_upsilon, 0x1FE1, --IBUS_KEY_dead_macron, 0x00AF, --IBUS_KEY_dead_greek, IBUS_KEY_A, 0x1FB9, --IBUS_KEY_dead_greek, IBUS_KEY_I, 0x1FD9, --IBUS_KEY_dead_greek, IBUS_KEY_U, 0x1FE9, --IBUS_KEY_dead_greek, IBUS_KEY_a, 0x1FB1, --IBUS_KEY_dead_greek, IBUS_KEY_i, 0x1FD1, --IBUS_KEY_dead_greek, IBUS_KEY_u, 0x1FE1, --IBUS_KEY_Multi_key, IBUS_KEY_exclam, IBUS_KEY_L, 0x1E38, --IBUS_KEY_Multi_key, IBUS_KEY_exclam, IBUS_KEY_R, 0x1E5C, --IBUS_KEY_Multi_key, IBUS_KEY_exclam, IBUS_KEY_l, 0x1E39, --IBUS_KEY_Multi_key, IBUS_KEY_exclam, IBUS_KEY_r, 0x1E5D, --IBUS_KEY_Multi_key, IBUS_KEY_quotedbl, IBUS_KEY_A, 0x01DE, --IBUS_KEY_Multi_key, IBUS_KEY_quotedbl, IBUS_KEY_O, 0x022A, --IBUS_KEY_Multi_key, IBUS_KEY_quotedbl, IBUS_KEY_U, 0x01D5, --IBUS_KEY_Multi_key, IBUS_KEY_quotedbl, IBUS_KEY_a, 0x01DF, --IBUS_KEY_Multi_key, IBUS_KEY_quotedbl, IBUS_KEY_o, 0x022B, --IBUS_KEY_Multi_key, IBUS_KEY_quotedbl, IBUS_KEY_u, 0x01D6, --IBUS_KEY_Multi_key, IBUS_KEY_period, IBUS_KEY_A, 0x01E0, --IBUS_KEY_Multi_key, IBUS_KEY_period, IBUS_KEY_O, 0x0230, --IBUS_KEY_Multi_key, IBUS_KEY_period, IBUS_KEY_a, 0x01E1, --IBUS_KEY_Multi_key, IBUS_KEY_period, IBUS_KEY_o, 0x0231, --IBUS_KEY_Multi_key, IBUS_KEY_semicolon, IBUS_KEY_O, 0x01EC, --IBUS_KEY_Multi_key, IBUS_KEY_semicolon, IBUS_KEY_o, 0x01ED, --IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, IBUS_KEY_O, 0x022C, --IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, IBUS_KEY_o, 0x022D, --IBUS_KEY_space, 0x02D8, --IBUS_KEY_nobreakspace, 0x0306, --IBUS_KEY_Agrave, 0x1EB0, --IBUS_KEY_Aacute, 0x1EAE, --IBUS_KEY_Atilde, 0x1EB4, --IBUS_KEY_agrave, 0x1EB1, --IBUS_KEY_aacute, 0x1EAF, --IBUS_KEY_atilde, 0x1EB5, --IBUS_KEY_Cyrillic_a, 0x04D1, --IBUS_KEY_Cyrillic_ie, 0x04D7, --IBUS_KEY_Cyrillic_i, 0x0439, --IBUS_KEY_Cyrillic_u, 0x045E, --IBUS_KEY_Cyrillic_zhe, 0x04C2, --IBUS_KEY_Cyrillic_A, 0x04D0, --IBUS_KEY_Cyrillic_IE, 0x04D6, --IBUS_KEY_Cyrillic_I, 0x0419, --IBUS_KEY_Cyrillic_U, 0x040E, --IBUS_KEY_Cyrillic_ZHE, 0x04C1, --IBUS_KEY_Greek_ALPHA, 0x1FB8, --IBUS_KEY_Greek_IOTA, 0x1FD8, --IBUS_KEY_Greek_UPSILON, 0x1FE8, --IBUS_KEY_Greek_alpha, 0x1FB0, --IBUS_KEY_Greek_iota, 0x1FD0, --IBUS_KEY_Greek_upsilon, 0x1FE0, --IBUS_KEY_dead_breve, 0x02D8, --IBUS_KEY_Multi_key, IBUS_KEY_exclam, IBUS_KEY_A, 0x1EB6, --IBUS_KEY_Multi_key, IBUS_KEY_exclam, IBUS_KEY_a, 0x1EB7, --IBUS_KEY_Multi_key, IBUS_KEY_comma, IBUS_KEY_E, 0x1E1C, --IBUS_KEY_Multi_key, IBUS_KEY_comma, IBUS_KEY_e, 0x1E1D, --IBUS_KEY_Multi_key, IBUS_KEY_cedilla, IBUS_KEY_E, 0x1E1C, --IBUS_KEY_Multi_key, IBUS_KEY_cedilla, IBUS_KEY_e, 0x1E1D, --IBUS_KEY_space, 0x02D9, --IBUS_KEY_L, 0x013F, --IBUS_KEY_i, 0x0131, --IBUS_KEY_j, 0x0237, --IBUS_KEY_l, 0x0140, --IBUS_KEY_nobreakspace, 0x0307, --IBUS_KEY_Sacute, 0x1E64, --IBUS_KEY_Scaron, 0x1E66, --IBUS_KEY_sacute, 0x1E65, --IBUS_KEY_scaron, 0x1E67, --IBUS_KEY_Amacron, 0x01E0, --IBUS_KEY_Omacron, 0x0230, --IBUS_KEY_amacron, 0x01E1, --IBUS_KEY_omacron, 0x0231, --IBUS_KEY_dead_abovedot, 0x02D9, --IBUS_KEY_dead_stroke, IBUS_KEY_j, 0x025F, --IBUS_KEY_Multi_key, IBUS_KEY_exclam, IBUS_KEY_S, 0x1E68, --IBUS_KEY_Multi_key, IBUS_KEY_exclam, IBUS_KEY_s, 0x1E69, --IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, IBUS_KEY_S, 0x1E64, --IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, IBUS_KEY_s, 0x1E65, --IBUS_KEY_Multi_key, IBUS_KEY_c, IBUS_KEY_S, 0x1E66, --IBUS_KEY_Multi_key, IBUS_KEY_c, IBUS_KEY_s, 0x1E67, --IBUS_KEY_Multi_key, IBUS_KEY_f, IBUS_KEY_s, 0x1E9B, --IBUS_KEY_Multi_key, IBUS_KEY_acute, IBUS_KEY_S, 0x1E64, --IBUS_KEY_Multi_key, IBUS_KEY_acute, IBUS_KEY_s, 0x1E65, --IBUS_KEY_space, 0x0022, --IBUS_KEY_apostrophe, 0x0344, --IBUS_KEY_nobreakspace, 0x0308, --IBUS_KEY_acute, 0x0344, --IBUS_KEY_Iacute, 0x1E2E, --IBUS_KEY_Ugrave, 0x01DB, --IBUS_KEY_Uacute, 0x01D7, --IBUS_KEY_iacute, 0x1E2F, --IBUS_KEY_ugrave, 0x01DC, --IBUS_KEY_uacute, 0x01D8, --0x01D3, 0x01D9, --0x01D4, 0x01DA, --IBUS_KEY_Amacron, 0x01DE, --IBUS_KEY_Umacron, 0x1E7A, --IBUS_KEY_amacron, 0x01DF, --IBUS_KEY_omacron, 0x022B, --IBUS_KEY_umacron, 0x1E7B, --IBUS_KEY_Ukrainian_i, 0x0457, --IBUS_KEY_Ukrainian_I, 0x0407, --IBUS_KEY_Cyrillic_a, 0x04D3, --IBUS_KEY_Cyrillic_ie, 0x0451, --IBUS_KEY_Cyrillic_i, 0x04E5, --IBUS_KEY_Cyrillic_o, 0x04E7, --IBUS_KEY_Cyrillic_u, 0x04F1, --IBUS_KEY_Cyrillic_zhe, 0x04DD, --IBUS_KEY_Cyrillic_yeru, 0x04F9, --IBUS_KEY_Cyrillic_ze, 0x04DF, --IBUS_KEY_Cyrillic_e, 0x04ED, --IBUS_KEY_Cyrillic_che, 0x04F5, --IBUS_KEY_Cyrillic_A, 0x04D2, --IBUS_KEY_Cyrillic_IE, 0x0401, --IBUS_KEY_Cyrillic_I, 0x04E4, --IBUS_KEY_Cyrillic_O, 0x04E6, --IBUS_KEY_Cyrillic_U, 0x04F0, --IBUS_KEY_Cyrillic_ZHE, 0x04DC, --IBUS_KEY_Cyrillic_YERU, 0x04F8, --IBUS_KEY_Cyrillic_ZE, 0x04DE, --IBUS_KEY_Cyrillic_E, 0x04EC, --IBUS_KEY_Cyrillic_CHE, 0x04F4, --IBUS_KEY_Greek_IOTA, 0x03AA, --IBUS_KEY_Greek_UPSILON, 0x03AB, --IBUS_KEY_Greek_iota, 0x03CA, --IBUS_KEY_Greek_upsilon, 0x03CB, --IBUS_KEY_dead_diaeresis, 0x00A8, --IBUS_KEY_dead_acute, IBUS_KEY_space, 0x0385, --IBUS_KEY_dead_acute, IBUS_KEY_Greek_iota, 0x0390, --IBUS_KEY_dead_acute, IBUS_KEY_Greek_upsilon, 0x03B0, --IBUS_KEY_dead_belowdiaeresis, IBUS_KEY_equal, 0x2A77, --IBUS_KEY_Multi_key, IBUS_KEY_underscore, IBUS_KEY_U, 0x1E7A, --IBUS_KEY_Multi_key, IBUS_KEY_underscore, IBUS_KEY_u, 0x1E7B, --IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, IBUS_KEY_O, 0x1E4E, --IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, IBUS_KEY_o, 0x1E4F, --IBUS_KEY_Multi_key, IBUS_KEY_macron, IBUS_KEY_U, 0x1E7A, --IBUS_KEY_Multi_key, IBUS_KEY_macron, IBUS_KEY_u, 0x1E7B, --IBUS_KEY_space, 0x00B0, --IBUS_KEY_nobreakspace, 0x030A, --IBUS_KEY_Aacute, 0x01FA, --IBUS_KEY_aacute, 0x01FB, --IBUS_KEY_dead_abovering, 0x00B0, --IBUS_KEY_space, 0x02DD, --IBUS_KEY_nobreakspace, 0x030B, --IBUS_KEY_Cyrillic_u, 0x04F3, --IBUS_KEY_Cyrillic_U, 0x04F2, --IBUS_KEY_dead_doubleacute, 0x02DD, --IBUS_KEY_space, 0x02C7, --IBUS_KEY_parenleft, 0x208D, --IBUS_KEY_parenright, 0x208E, --IBUS_KEY_plus, 0x208A, --IBUS_KEY_minus, 0x208B, --IBUS_KEY_0, 0x2080, --IBUS_KEY_1, 0x2081, --IBUS_KEY_2, 0x2082, --IBUS_KEY_3, 0x2083, --IBUS_KEY_4, 0x2084, --IBUS_KEY_5, 0x2085, --IBUS_KEY_6, 0x2086, --IBUS_KEY_7, 0x2087, --IBUS_KEY_8, 0x2088, --IBUS_KEY_9, 0x2089, --IBUS_KEY_equal, 0x208C, --IBUS_KEY_V, 0x01D9, --IBUS_KEY_v, 0x01DA, --IBUS_KEY_nobreakspace, 0x030C, --0x01F2, 0x01C5, --IBUS_KEY_dead_caron, 0x02C7, --IBUS_KEY_Multi_key, IBUS_KEY_quotedbl, IBUS_KEY_U, 0x01D9, --IBUS_KEY_Multi_key, IBUS_KEY_quotedbl, IBUS_KEY_u, 0x01DA, --IBUS_KEY_space, 0x00B8, --IBUS_KEY_nobreakspace, 0x0327, --IBUS_KEY_cent, 0x20B5, --IBUS_KEY_Cacute, 0x1E08, --IBUS_KEY_cacute, 0x1E09, --IBUS_KEY_dead_cedilla, 0x00B8, --IBUS_KEY_dead_currency, IBUS_KEY_C, 0x20B5, --IBUS_KEY_dead_currency, IBUS_KEY_c, 0x20B5, --IBUS_KEY_space, 0x02DB, --IBUS_KEY_nobreakspace, 0x0328, --IBUS_KEY_Omacron, 0x01EC, --IBUS_KEY_omacron, 0x01ED, --IBUS_KEY_dead_ogonek, 0x02DB, --IBUS_KEY_space, 0x037A, --IBUS_KEY_Greek_alphaaccent, 0x1FB4, --IBUS_KEY_Greek_etaaccent, 0x1FC4, --IBUS_KEY_Greek_omegaaccent, 0x1FF4, --IBUS_KEY_Greek_ALPHA, 0x1FBC, --IBUS_KEY_Greek_ETA, 0x1FCC, --IBUS_KEY_Greek_OMEGA, 0x1FFC, --IBUS_KEY_Greek_alpha, 0x1FB3, --IBUS_KEY_Greek_eta, 0x1FC3, --IBUS_KEY_Greek_omega, 0x1FF3, --IBUS_KEY_dead_iota, 0x037A, --IBUS_KEY_dead_grave, IBUS_KEY_Greek_alpha, 0x1FB2, --IBUS_KEY_dead_grave, IBUS_KEY_Greek_eta, 0x1FC2, --IBUS_KEY_dead_grave, IBUS_KEY_Greek_omega, 0x1FF2, --IBUS_KEY_dead_acute, IBUS_KEY_Greek_alpha, 0x1FB4, --IBUS_KEY_dead_acute, IBUS_KEY_Greek_eta, 0x1FC4, --IBUS_KEY_dead_acute, IBUS_KEY_Greek_omega, 0x1FF4, --IBUS_KEY_dead_tilde, IBUS_KEY_Greek_alpha, 0x1FB7, --IBUS_KEY_dead_tilde, IBUS_KEY_Greek_eta, 0x1FC7, --IBUS_KEY_dead_tilde, IBUS_KEY_Greek_omega, 0x1FF7, --IBUS_KEY_dead_tilde, 0x1F00, 0x1F86, --IBUS_KEY_dead_tilde, 0x1F01, 0x1F87, --IBUS_KEY_dead_tilde, 0x1F08, 0x1F8E, --IBUS_KEY_dead_tilde, 0x1F09, 0x1F8F, --IBUS_KEY_dead_tilde, 0x1F20, 0x1F96, --IBUS_KEY_dead_tilde, 0x1F21, 0x1F97, --IBUS_KEY_dead_tilde, 0x1F28, 0x1F9E, --IBUS_KEY_dead_tilde, 0x1F29, 0x1F9F, --IBUS_KEY_dead_tilde, 0x1F60, 0x1FA6, --IBUS_KEY_dead_tilde, 0x1F61, 0x1FA7, --IBUS_KEY_dead_tilde, 0x1F68, 0x1FAE, --IBUS_KEY_dead_tilde, 0x1F69, 0x1FAF, --IBUS_KEY_dead_psili, IBUS_KEY_Greek_ALPHA, 0x1F88, --IBUS_KEY_dead_psili, IBUS_KEY_Greek_ETA, 0x1F98, --IBUS_KEY_dead_psili, IBUS_KEY_Greek_OMEGA, 0x1FA8, --IBUS_KEY_dead_psili, IBUS_KEY_Greek_alpha, 0x1F80, --IBUS_KEY_dead_psili, IBUS_KEY_Greek_eta, 0x1F90, --IBUS_KEY_dead_psili, IBUS_KEY_Greek_omega, 0x1FA0, --IBUS_KEY_dead_dasia, IBUS_KEY_Greek_ALPHA, 0x1F89, --IBUS_KEY_dead_dasia, IBUS_KEY_Greek_ETA, 0x1F99, --IBUS_KEY_dead_dasia, IBUS_KEY_Greek_OMEGA, 0x1FA9, --IBUS_KEY_dead_dasia, IBUS_KEY_Greek_alpha, 0x1F81, --IBUS_KEY_dead_dasia, IBUS_KEY_Greek_eta, 0x1F91, --IBUS_KEY_dead_dasia, IBUS_KEY_Greek_omega, 0x1FA1, --IBUS_KEY_dead_grave, IBUS_KEY_dead_psili, IBUS_KEY_Greek_ALPHA, 0x1F8A, --IBUS_KEY_dead_grave, IBUS_KEY_dead_psili, IBUS_KEY_Greek_ETA, 0x1F9A, --IBUS_KEY_dead_grave, IBUS_KEY_dead_psili, IBUS_KEY_Greek_OMEGA, 0x1FAA, --IBUS_KEY_dead_grave, IBUS_KEY_dead_psili, IBUS_KEY_Greek_alpha, 0x1F82, --IBUS_KEY_dead_grave, IBUS_KEY_dead_psili, IBUS_KEY_Greek_eta, 0x1F92, --IBUS_KEY_dead_grave, IBUS_KEY_dead_psili, IBUS_KEY_Greek_omega, 0x1FA2, --IBUS_KEY_dead_grave, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_ALPHA, 0x1F8B, --IBUS_KEY_dead_grave, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_ETA, 0x1F9B, --IBUS_KEY_dead_grave, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_OMEGA, 0x1FAB, --IBUS_KEY_dead_grave, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_alpha, 0x1F83, --IBUS_KEY_dead_grave, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_eta, 0x1F93, --IBUS_KEY_dead_grave, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_omega, 0x1FA3, --IBUS_KEY_dead_acute, IBUS_KEY_dead_psili, IBUS_KEY_Greek_ALPHA, 0x1F8C, --IBUS_KEY_dead_acute, IBUS_KEY_dead_psili, IBUS_KEY_Greek_ETA, 0x1F9C, --IBUS_KEY_dead_acute, IBUS_KEY_dead_psili, IBUS_KEY_Greek_OMEGA, 0x1FAC, --IBUS_KEY_dead_acute, IBUS_KEY_dead_psili, IBUS_KEY_Greek_alpha, 0x1F84, --IBUS_KEY_dead_acute, IBUS_KEY_dead_psili, IBUS_KEY_Greek_eta, 0x1F94, --IBUS_KEY_dead_acute, IBUS_KEY_dead_psili, IBUS_KEY_Greek_omega, 0x1FA4, --IBUS_KEY_dead_acute, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_ALPHA, 0x1F8D, --IBUS_KEY_dead_acute, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_ETA, 0x1F9D, --IBUS_KEY_dead_acute, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_OMEGA, 0x1FAD, --IBUS_KEY_dead_acute, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_alpha, 0x1F85, --IBUS_KEY_dead_acute, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_eta, 0x1F95, --IBUS_KEY_dead_acute, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_omega, 0x1FA5, --IBUS_KEY_dead_tilde, IBUS_KEY_dead_psili, IBUS_KEY_Greek_ALPHA, 0x1F8E, --IBUS_KEY_dead_tilde, IBUS_KEY_dead_psili, IBUS_KEY_Greek_ETA, 0x1F9E, --IBUS_KEY_dead_tilde, IBUS_KEY_dead_psili, IBUS_KEY_Greek_OMEGA, 0x1FAE, --IBUS_KEY_dead_tilde, IBUS_KEY_dead_psili, IBUS_KEY_Greek_alpha, 0x1F86, --IBUS_KEY_dead_tilde, IBUS_KEY_dead_psili, IBUS_KEY_Greek_eta, 0x1F96, --IBUS_KEY_dead_tilde, IBUS_KEY_dead_psili, IBUS_KEY_Greek_omega, 0x1FA6, --IBUS_KEY_dead_tilde, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_ALPHA, 0x1F8F, --IBUS_KEY_dead_tilde, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_ETA, 0x1F9F, --IBUS_KEY_dead_tilde, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_OMEGA, 0x1FAF, --IBUS_KEY_dead_tilde, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_alpha, 0x1F87, --IBUS_KEY_dead_tilde, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_eta, 0x1F97, --IBUS_KEY_dead_tilde, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_omega, 0x1FA7, --IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, IBUS_KEY_Greek_alpha, 0x1FB4, --IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, IBUS_KEY_Greek_eta, 0x1FC4, --IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, IBUS_KEY_Greek_omega, 0x1FF4, --IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, 0x1F00, 0x1F84, --IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, 0x1F01, 0x1F85, --IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, 0x1F08, 0x1F8C, --IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, 0x1F09, 0x1F8D, --IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, 0x1F20, 0x1F94, --IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, 0x1F21, 0x1F95, --IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, 0x1F28, 0x1F9C, --IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, 0x1F29, 0x1F9D, --IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, 0x1F60, 0x1FA4, --IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, 0x1F61, 0x1FA5, --IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, 0x1F68, 0x1FAC, --IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, 0x1F69, 0x1FAD, --IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_ALPHA, 0x1F89, --IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_ETA, 0x1F99, --IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_OMEGA, 0x1FA9, --IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_alpha, 0x1F81, --IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_eta, 0x1F91, --IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_omega, 0x1FA1, --IBUS_KEY_Multi_key, IBUS_KEY_parenright, IBUS_KEY_Greek_ALPHA, 0x1F88, --IBUS_KEY_Multi_key, IBUS_KEY_parenright, IBUS_KEY_Greek_ETA, 0x1F98, --IBUS_KEY_Multi_key, IBUS_KEY_parenright, IBUS_KEY_Greek_OMEGA, 0x1FA8, --IBUS_KEY_Multi_key, IBUS_KEY_parenright, IBUS_KEY_Greek_alpha, 0x1F80, --IBUS_KEY_Multi_key, IBUS_KEY_parenright, IBUS_KEY_Greek_eta, 0x1F90, --IBUS_KEY_Multi_key, IBUS_KEY_parenright, IBUS_KEY_Greek_omega, 0x1FA0, --IBUS_KEY_Multi_key, IBUS_KEY_grave, IBUS_KEY_Greek_alpha, 0x1FB2, --IBUS_KEY_Multi_key, IBUS_KEY_grave, IBUS_KEY_Greek_eta, 0x1FC2, --IBUS_KEY_Multi_key, IBUS_KEY_grave, IBUS_KEY_Greek_omega, 0x1FF2, --IBUS_KEY_Multi_key, IBUS_KEY_grave, 0x1F00, 0x1F82, --IBUS_KEY_Multi_key, IBUS_KEY_grave, 0x1F01, 0x1F83, --IBUS_KEY_Multi_key, IBUS_KEY_grave, 0x1F08, 0x1F8A, --IBUS_KEY_Multi_key, IBUS_KEY_grave, 0x1F09, 0x1F8B, --IBUS_KEY_Multi_key, IBUS_KEY_grave, 0x1F20, 0x1F92, --IBUS_KEY_Multi_key, IBUS_KEY_grave, 0x1F21, 0x1F93, --IBUS_KEY_Multi_key, IBUS_KEY_grave, 0x1F28, 0x1F9A, --IBUS_KEY_Multi_key, IBUS_KEY_grave, 0x1F29, 0x1F9B, --IBUS_KEY_Multi_key, IBUS_KEY_grave, 0x1F60, 0x1FA2, --IBUS_KEY_Multi_key, IBUS_KEY_grave, 0x1F61, 0x1FA3, --IBUS_KEY_Multi_key, IBUS_KEY_grave, 0x1F68, 0x1FAA, --IBUS_KEY_Multi_key, IBUS_KEY_grave, 0x1F69, 0x1FAB, --IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, IBUS_KEY_Greek_alpha, 0x1FB7, --IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, IBUS_KEY_Greek_eta, 0x1FC7, --IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, IBUS_KEY_Greek_omega, 0x1FF7, --IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, 0x1F00, 0x1F86, --IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, 0x1F01, 0x1F87, --IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, 0x1F08, 0x1F8E, --IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, 0x1F09, 0x1F8F, --IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, 0x1F20, 0x1F96, --IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, 0x1F21, 0x1F97, --IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, 0x1F28, 0x1F9E, --IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, 0x1F29, 0x1F9F, --IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, 0x1F60, 0x1FA6, --IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, 0x1F61, 0x1FA7, --IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, 0x1F68, 0x1FAE, --IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, 0x1F69, 0x1FAF, --IBUS_KEY_Multi_key, IBUS_KEY_acute, IBUS_KEY_Greek_alpha, 0x1FB4, --IBUS_KEY_Multi_key, IBUS_KEY_acute, IBUS_KEY_Greek_eta, 0x1FC4, --IBUS_KEY_Multi_key, IBUS_KEY_acute, IBUS_KEY_Greek_omega, 0x1FF4, --IBUS_KEY_Multi_key, IBUS_KEY_acute, 0x1F00, 0x1F84, --IBUS_KEY_Multi_key, IBUS_KEY_acute, 0x1F01, 0x1F85, --IBUS_KEY_Multi_key, IBUS_KEY_acute, 0x1F08, 0x1F8C, --IBUS_KEY_Multi_key, IBUS_KEY_acute, 0x1F09, 0x1F8D, --IBUS_KEY_Multi_key, IBUS_KEY_acute, 0x1F20, 0x1F94, --IBUS_KEY_Multi_key, IBUS_KEY_acute, 0x1F21, 0x1F95, --IBUS_KEY_Multi_key, IBUS_KEY_acute, 0x1F28, 0x1F9C, --IBUS_KEY_Multi_key, IBUS_KEY_acute, 0x1F29, 0x1F9D, --IBUS_KEY_Multi_key, IBUS_KEY_acute, 0x1F60, 0x1FA4, --IBUS_KEY_Multi_key, IBUS_KEY_acute, 0x1F61, 0x1FA5, --IBUS_KEY_Multi_key, IBUS_KEY_acute, 0x1F68, 0x1FAC, --IBUS_KEY_Multi_key, IBUS_KEY_acute, 0x1F69, 0x1FAD, --IBUS_KEY_dead_grave, IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_ALPHA, 0x1F8B, --IBUS_KEY_dead_grave, IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_ETA, 0x1F9B, --IBUS_KEY_dead_grave, IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_OMEGA, 0x1FAB, --IBUS_KEY_dead_grave, IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_alpha, 0x1F83, --IBUS_KEY_dead_grave, IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_eta, 0x1F93, --IBUS_KEY_dead_grave, IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_omega, 0x1FA3, --IBUS_KEY_dead_grave, IBUS_KEY_Multi_key, IBUS_KEY_parenright, IBUS_KEY_Greek_ALPHA, 0x1F8A, --IBUS_KEY_dead_grave, IBUS_KEY_Multi_key, IBUS_KEY_parenright, IBUS_KEY_Greek_ETA, 0x1F9A, --IBUS_KEY_dead_grave, IBUS_KEY_Multi_key, IBUS_KEY_parenright, IBUS_KEY_Greek_OMEGA, 0x1FAA, --IBUS_KEY_dead_grave, IBUS_KEY_Multi_key, IBUS_KEY_parenright, IBUS_KEY_Greek_alpha, 0x1F82, --IBUS_KEY_dead_grave, IBUS_KEY_Multi_key, IBUS_KEY_parenright, IBUS_KEY_Greek_eta, 0x1F92, --IBUS_KEY_dead_grave, IBUS_KEY_Multi_key, IBUS_KEY_parenright, IBUS_KEY_Greek_omega, 0x1FA2, --IBUS_KEY_dead_acute, IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_ALPHA, 0x1F8D, --IBUS_KEY_dead_acute, IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_ETA, 0x1F9D, --IBUS_KEY_dead_acute, IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_OMEGA, 0x1FAD, --IBUS_KEY_dead_acute, IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_alpha, 0x1F85, --IBUS_KEY_dead_acute, IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_eta, 0x1F95, --IBUS_KEY_dead_acute, IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_omega, 0x1FA5, --IBUS_KEY_dead_acute, IBUS_KEY_Multi_key, IBUS_KEY_parenright, IBUS_KEY_Greek_ALPHA, 0x1F8C, --IBUS_KEY_dead_acute, IBUS_KEY_Multi_key, IBUS_KEY_parenright, IBUS_KEY_Greek_ETA, 0x1F9C, --IBUS_KEY_dead_acute, IBUS_KEY_Multi_key, IBUS_KEY_parenright, IBUS_KEY_Greek_OMEGA, 0x1FAC, --IBUS_KEY_dead_acute, IBUS_KEY_Multi_key, IBUS_KEY_parenright, IBUS_KEY_Greek_alpha, 0x1F84, --IBUS_KEY_dead_acute, IBUS_KEY_Multi_key, IBUS_KEY_parenright, IBUS_KEY_Greek_eta, 0x1F94, --IBUS_KEY_dead_acute, IBUS_KEY_Multi_key, IBUS_KEY_parenright, IBUS_KEY_Greek_omega, 0x1FA4, --IBUS_KEY_dead_tilde, IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_ALPHA, 0x1F8F, --IBUS_KEY_dead_tilde, IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_ETA, 0x1F9F, --IBUS_KEY_dead_tilde, IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_OMEGA, 0x1FAF, --IBUS_KEY_dead_tilde, IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_alpha, 0x1F87, --IBUS_KEY_dead_tilde, IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_eta, 0x1F97, --IBUS_KEY_dead_tilde, IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_omega, 0x1FA7, --IBUS_KEY_dead_tilde, IBUS_KEY_Multi_key, IBUS_KEY_parenright, IBUS_KEY_Greek_ALPHA, 0x1F8E, --IBUS_KEY_dead_tilde, IBUS_KEY_Multi_key, IBUS_KEY_parenright, IBUS_KEY_Greek_ETA, 0x1F9E, --IBUS_KEY_dead_tilde, IBUS_KEY_Multi_key, IBUS_KEY_parenright, IBUS_KEY_Greek_OMEGA, 0x1FAE, --IBUS_KEY_dead_tilde, IBUS_KEY_Multi_key, IBUS_KEY_parenright, IBUS_KEY_Greek_alpha, 0x1F86, --IBUS_KEY_dead_tilde, IBUS_KEY_Multi_key, IBUS_KEY_parenright, IBUS_KEY_Greek_eta, 0x1F96, --IBUS_KEY_dead_tilde, IBUS_KEY_Multi_key, IBUS_KEY_parenright, IBUS_KEY_Greek_omega, 0x1FA6, --IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, IBUS_KEY_parenleft, IBUS_KEY_Greek_ALPHA, 0x1F8D, --IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, IBUS_KEY_parenleft, IBUS_KEY_Greek_ETA, 0x1F9D, --IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, IBUS_KEY_parenleft, IBUS_KEY_Greek_OMEGA, 0x1FAD, --IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, IBUS_KEY_parenleft, IBUS_KEY_Greek_alpha, 0x1F85, --IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, IBUS_KEY_parenleft, IBUS_KEY_Greek_eta, 0x1F95, --IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, IBUS_KEY_parenleft, IBUS_KEY_Greek_omega, 0x1FA5, --IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, IBUS_KEY_parenright, IBUS_KEY_Greek_ALPHA, 0x1F8C, --IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, IBUS_KEY_parenright, IBUS_KEY_Greek_ETA, 0x1F9C, --IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, IBUS_KEY_parenright, IBUS_KEY_Greek_OMEGA, 0x1FAC, --IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, IBUS_KEY_parenright, IBUS_KEY_Greek_alpha, 0x1F84, --IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, IBUS_KEY_parenright, IBUS_KEY_Greek_eta, 0x1F94, --IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, IBUS_KEY_parenright, IBUS_KEY_Greek_omega, 0x1FA4, --IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, IBUS_KEY_dead_psili, IBUS_KEY_Greek_ALPHA, 0x1F8C, --IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, IBUS_KEY_dead_psili, IBUS_KEY_Greek_ETA, 0x1F9C, --IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, IBUS_KEY_dead_psili, IBUS_KEY_Greek_OMEGA, 0x1FAC, --IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, IBUS_KEY_dead_psili, IBUS_KEY_Greek_alpha, 0x1F84, --IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, IBUS_KEY_dead_psili, IBUS_KEY_Greek_eta, 0x1F94, --IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, IBUS_KEY_dead_psili, IBUS_KEY_Greek_omega, 0x1FA4, --IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_ALPHA, 0x1F8D, --IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_ETA, 0x1F9D, --IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_OMEGA, 0x1FAD, --IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_alpha, 0x1F85, --IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_eta, 0x1F95, --IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_omega, 0x1FA5, --IBUS_KEY_Multi_key, IBUS_KEY_grave, IBUS_KEY_parenleft, IBUS_KEY_Greek_ALPHA, 0x1F8B, --IBUS_KEY_Multi_key, IBUS_KEY_grave, IBUS_KEY_parenleft, IBUS_KEY_Greek_ETA, 0x1F9B, --IBUS_KEY_Multi_key, IBUS_KEY_grave, IBUS_KEY_parenleft, IBUS_KEY_Greek_OMEGA, 0x1FAB, --IBUS_KEY_Multi_key, IBUS_KEY_grave, IBUS_KEY_parenleft, IBUS_KEY_Greek_alpha, 0x1F83, --IBUS_KEY_Multi_key, IBUS_KEY_grave, IBUS_KEY_parenleft, IBUS_KEY_Greek_eta, 0x1F93, --IBUS_KEY_Multi_key, IBUS_KEY_grave, IBUS_KEY_parenleft, IBUS_KEY_Greek_omega, 0x1FA3, --IBUS_KEY_Multi_key, IBUS_KEY_grave, IBUS_KEY_parenright, IBUS_KEY_Greek_ALPHA, 0x1F8A, --IBUS_KEY_Multi_key, IBUS_KEY_grave, IBUS_KEY_parenright, IBUS_KEY_Greek_ETA, 0x1F9A, --IBUS_KEY_Multi_key, IBUS_KEY_grave, IBUS_KEY_parenright, IBUS_KEY_Greek_OMEGA, 0x1FAA, --IBUS_KEY_Multi_key, IBUS_KEY_grave, IBUS_KEY_parenright, IBUS_KEY_Greek_alpha, 0x1F82, --IBUS_KEY_Multi_key, IBUS_KEY_grave, IBUS_KEY_parenright, IBUS_KEY_Greek_eta, 0x1F92, --IBUS_KEY_Multi_key, IBUS_KEY_grave, IBUS_KEY_parenright, IBUS_KEY_Greek_omega, 0x1FA2, --IBUS_KEY_Multi_key, IBUS_KEY_grave, IBUS_KEY_dead_psili, IBUS_KEY_Greek_ALPHA, 0x1F8A, --IBUS_KEY_Multi_key, IBUS_KEY_grave, IBUS_KEY_dead_psili, IBUS_KEY_Greek_ETA, 0x1F9A, --IBUS_KEY_Multi_key, IBUS_KEY_grave, IBUS_KEY_dead_psili, IBUS_KEY_Greek_OMEGA, 0x1FAA, --IBUS_KEY_Multi_key, IBUS_KEY_grave, IBUS_KEY_dead_psili, IBUS_KEY_Greek_alpha, 0x1F82, --IBUS_KEY_Multi_key, IBUS_KEY_grave, IBUS_KEY_dead_psili, IBUS_KEY_Greek_eta, 0x1F92, --IBUS_KEY_Multi_key, IBUS_KEY_grave, IBUS_KEY_dead_psili, IBUS_KEY_Greek_omega, 0x1FA2, --IBUS_KEY_Multi_key, IBUS_KEY_grave, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_ALPHA, 0x1F8B, --IBUS_KEY_Multi_key, IBUS_KEY_grave, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_ETA, 0x1F9B, --IBUS_KEY_Multi_key, IBUS_KEY_grave, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_OMEGA, 0x1FAB, --IBUS_KEY_Multi_key, IBUS_KEY_grave, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_alpha, 0x1F83, --IBUS_KEY_Multi_key, IBUS_KEY_grave, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_eta, 0x1F93, --IBUS_KEY_Multi_key, IBUS_KEY_grave, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_omega, 0x1FA3, --IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, IBUS_KEY_parenleft, IBUS_KEY_Greek_ALPHA, 0x1F8F, --IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, IBUS_KEY_parenleft, IBUS_KEY_Greek_ETA, 0x1F9F, --IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, IBUS_KEY_parenleft, IBUS_KEY_Greek_OMEGA, 0x1FAF, --IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, IBUS_KEY_parenleft, IBUS_KEY_Greek_alpha, 0x1F87, --IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, IBUS_KEY_parenleft, IBUS_KEY_Greek_eta, 0x1F97, --IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, IBUS_KEY_parenleft, IBUS_KEY_Greek_omega, 0x1FA7, --IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, IBUS_KEY_parenright, IBUS_KEY_Greek_ALPHA, 0x1F8E, --IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, IBUS_KEY_parenright, IBUS_KEY_Greek_ETA, 0x1F9E, --IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, IBUS_KEY_parenright, IBUS_KEY_Greek_OMEGA, 0x1FAE, --IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, IBUS_KEY_parenright, IBUS_KEY_Greek_alpha, 0x1F86, --IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, IBUS_KEY_parenright, IBUS_KEY_Greek_eta, 0x1F96, --IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, IBUS_KEY_parenright, IBUS_KEY_Greek_omega, 0x1FA6, --IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, IBUS_KEY_dead_psili, IBUS_KEY_Greek_ALPHA, 0x1F8E, --IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, IBUS_KEY_dead_psili, IBUS_KEY_Greek_ETA, 0x1F9E, --IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, IBUS_KEY_dead_psili, IBUS_KEY_Greek_OMEGA, 0x1FAE, --IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, IBUS_KEY_dead_psili, IBUS_KEY_Greek_alpha, 0x1F86, --IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, IBUS_KEY_dead_psili, IBUS_KEY_Greek_eta, 0x1F96, --IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, IBUS_KEY_dead_psili, IBUS_KEY_Greek_omega, 0x1FA6, --IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_ALPHA, 0x1F8F, --IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_ETA, 0x1F9F, --IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_OMEGA, 0x1FAF, --IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_alpha, 0x1F87, --IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_eta, 0x1F97, --IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_omega, 0x1FA7, --IBUS_KEY_Multi_key, IBUS_KEY_acute, IBUS_KEY_parenleft, IBUS_KEY_Greek_ALPHA, 0x1F8D, --IBUS_KEY_Multi_key, IBUS_KEY_acute, IBUS_KEY_parenleft, IBUS_KEY_Greek_ETA, 0x1F9D, --IBUS_KEY_Multi_key, IBUS_KEY_acute, IBUS_KEY_parenleft, IBUS_KEY_Greek_OMEGA, 0x1FAD, --IBUS_KEY_Multi_key, IBUS_KEY_acute, IBUS_KEY_parenleft, IBUS_KEY_Greek_alpha, 0x1F85, --IBUS_KEY_Multi_key, IBUS_KEY_acute, IBUS_KEY_parenleft, IBUS_KEY_Greek_eta, 0x1F95, --IBUS_KEY_Multi_key, IBUS_KEY_acute, IBUS_KEY_parenleft, IBUS_KEY_Greek_omega, 0x1FA5, --IBUS_KEY_Multi_key, IBUS_KEY_acute, IBUS_KEY_parenright, IBUS_KEY_Greek_ALPHA, 0x1F8C, --IBUS_KEY_Multi_key, IBUS_KEY_acute, IBUS_KEY_parenright, IBUS_KEY_Greek_ETA, 0x1F9C, --IBUS_KEY_Multi_key, IBUS_KEY_acute, IBUS_KEY_parenright, IBUS_KEY_Greek_OMEGA, 0x1FAC, --IBUS_KEY_Multi_key, IBUS_KEY_acute, IBUS_KEY_parenright, IBUS_KEY_Greek_alpha, 0x1F84, --IBUS_KEY_Multi_key, IBUS_KEY_acute, IBUS_KEY_parenright, IBUS_KEY_Greek_eta, 0x1F94, --IBUS_KEY_Multi_key, IBUS_KEY_acute, IBUS_KEY_parenright, IBUS_KEY_Greek_omega, 0x1FA4, --IBUS_KEY_Multi_key, IBUS_KEY_acute, IBUS_KEY_dead_psili, IBUS_KEY_Greek_ALPHA, 0x1F8C, --IBUS_KEY_Multi_key, IBUS_KEY_acute, IBUS_KEY_dead_psili, IBUS_KEY_Greek_ETA, 0x1F9C, --IBUS_KEY_Multi_key, IBUS_KEY_acute, IBUS_KEY_dead_psili, IBUS_KEY_Greek_OMEGA, 0x1FAC, --IBUS_KEY_Multi_key, IBUS_KEY_acute, IBUS_KEY_dead_psili, IBUS_KEY_Greek_alpha, 0x1F84, --IBUS_KEY_Multi_key, IBUS_KEY_acute, IBUS_KEY_dead_psili, IBUS_KEY_Greek_eta, 0x1F94, --IBUS_KEY_Multi_key, IBUS_KEY_acute, IBUS_KEY_dead_psili, IBUS_KEY_Greek_omega, 0x1FA4, --IBUS_KEY_Multi_key, IBUS_KEY_acute, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_ALPHA, 0x1F8D, --IBUS_KEY_Multi_key, IBUS_KEY_acute, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_ETA, 0x1F9D, --IBUS_KEY_Multi_key, IBUS_KEY_acute, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_OMEGA, 0x1FAD, --IBUS_KEY_Multi_key, IBUS_KEY_acute, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_alpha, 0x1F85, --IBUS_KEY_Multi_key, IBUS_KEY_acute, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_eta, 0x1F95, --IBUS_KEY_Multi_key, IBUS_KEY_acute, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_omega, 0x1FA5, --IBUS_KEY_kana_WO, 0x30FA, --IBUS_KEY_kana_U, 0x30F4, --IBUS_KEY_kana_KA, 0x30AC, --IBUS_KEY_kana_KI, 0x30AE, --IBUS_KEY_kana_KU, 0x30B0, --IBUS_KEY_kana_KE, 0x30B2, --IBUS_KEY_kana_KO, 0x30B4, --IBUS_KEY_kana_SA, 0x30B6, --IBUS_KEY_kana_SHI, 0x30B8, --IBUS_KEY_kana_SU, 0x30BA, --IBUS_KEY_kana_SE, 0x30BC, --IBUS_KEY_kana_SO, 0x30BE, --IBUS_KEY_kana_TA, 0x30C0, --IBUS_KEY_kana_CHI, 0x30C2, --IBUS_KEY_kana_TSU, 0x30C5, --IBUS_KEY_kana_TE, 0x30C7, --IBUS_KEY_kana_TO, 0x30C9, --IBUS_KEY_kana_HA, 0x30D0, --IBUS_KEY_kana_HI, 0x30D3, --IBUS_KEY_kana_FU, 0x30D6, --IBUS_KEY_kana_HE, 0x30D9, --IBUS_KEY_kana_HO, 0x30DC, --IBUS_KEY_kana_WA, 0x30F7, --IBUS_KEY_kana_HA, 0x30D1, --IBUS_KEY_kana_HI, 0x30D4, --IBUS_KEY_kana_FU, 0x30D7, --IBUS_KEY_kana_HE, 0x30DA, --IBUS_KEY_kana_HO, 0x30DD, --IBUS_KEY_space, 0x0323, --IBUS_KEY_plus, 0x2A25, --IBUS_KEY_minus, 0x2A2A, --IBUS_KEY_equal, 0x2A66, --IBUS_KEY_nobreakspace, 0x0323, --IBUS_KEY_Abreve, 0x1EB6, --IBUS_KEY_abreve, 0x1EB7, --IBUS_KEY_dead_belowdot, 0x0323, --IBUS_KEY_Multi_key, IBUS_KEY_plus, IBUS_KEY_O, 0x1EE2, --IBUS_KEY_Multi_key, IBUS_KEY_plus, IBUS_KEY_U, 0x1EF0, --IBUS_KEY_Multi_key, IBUS_KEY_plus, IBUS_KEY_o, 0x1EE3, --IBUS_KEY_Multi_key, IBUS_KEY_plus, IBUS_KEY_u, 0x1EF1, --IBUS_KEY_space, 0x0309, --IBUS_KEY_B, 0x0181, --IBUS_KEY_C, 0x0187, --IBUS_KEY_D, 0x018A, --IBUS_KEY_F, 0x0191, --IBUS_KEY_G, 0x0193, --IBUS_KEY_K, 0x0198, --IBUS_KEY_M, 0x2C6E, --IBUS_KEY_N, 0x019D, --IBUS_KEY_P, 0x01A4, --IBUS_KEY_T, 0x01AC, --IBUS_KEY_V, 0x01B2, --IBUS_KEY_W, 0x2C72, --IBUS_KEY_Z, 0x0224, --IBUS_KEY_b, 0x0253, --IBUS_KEY_c, 0x0188, --IBUS_KEY_d, 0x0257, --IBUS_KEY_f, 0x0192, --IBUS_KEY_g, 0x0260, --IBUS_KEY_h, 0x0266, --IBUS_KEY_k, 0x0199, --IBUS_KEY_m, 0x0271, --IBUS_KEY_n, 0x0272, --IBUS_KEY_p, 0x01A5, --IBUS_KEY_q, 0x02A0, --IBUS_KEY_r, 0x027C, --IBUS_KEY_s, 0x0282, --IBUS_KEY_t, 0x01AD, --IBUS_KEY_v, 0x028B, --IBUS_KEY_w, 0x2C73, --IBUS_KEY_z, 0x0225, --IBUS_KEY_nobreakspace, 0x0309, --IBUS_KEY_Abreve, 0x1EB2, --IBUS_KEY_abreve, 0x1EB3, --0x0256, 0x1D91, --0x025C, 0x025D, --0x025F, 0x0284, --0x0279, 0x027B, --IBUS_KEY_dead_hook, 0x0309, --IBUS_KEY_dead_greek, IBUS_KEY_U, 0x03D2, --IBUS_KEY_Multi_key, IBUS_KEY_plus, IBUS_KEY_O, 0x1EDE, --IBUS_KEY_Multi_key, IBUS_KEY_plus, IBUS_KEY_U, 0x1EEC, --IBUS_KEY_Multi_key, IBUS_KEY_plus, IBUS_KEY_o, 0x1EDF, --IBUS_KEY_Multi_key, IBUS_KEY_plus, IBUS_KEY_u, 0x1EED, --IBUS_KEY_Multi_key, IBUS_KEY_U, IBUS_KEY_A, 0x1EB2, --IBUS_KEY_Multi_key, IBUS_KEY_U, IBUS_KEY_a, 0x1EB3, --IBUS_KEY_Multi_key, IBUS_KEY_asciicircum, IBUS_KEY_A, 0x1EA8, --IBUS_KEY_Multi_key, IBUS_KEY_asciicircum, IBUS_KEY_E, 0x1EC2, --IBUS_KEY_Multi_key, IBUS_KEY_asciicircum, IBUS_KEY_O, 0x1ED4, --IBUS_KEY_Multi_key, IBUS_KEY_asciicircum, IBUS_KEY_a, 0x1EA9, --IBUS_KEY_Multi_key, IBUS_KEY_asciicircum, IBUS_KEY_e, 0x1EC3, --IBUS_KEY_Multi_key, IBUS_KEY_asciicircum, IBUS_KEY_o, 0x1ED5, --IBUS_KEY_Multi_key, IBUS_KEY_b, IBUS_KEY_A, 0x1EB2, --IBUS_KEY_Multi_key, IBUS_KEY_b, IBUS_KEY_a, 0x1EB3, --IBUS_KEY_space, 0x031B, --IBUS_KEY_nobreakspace, 0x031B, --IBUS_KEY_Utilde, 0x1EEE, --IBUS_KEY_utilde, 0x1EEF, --IBUS_KEY_dead_horn, 0x031B, --IBUS_KEY_space, 0x002F, --IBUS_KEY_2, 0x01BB, --IBUS_KEY_A, 0x023A, --IBUS_KEY_B, 0x0243, --IBUS_KEY_C, 0x023B, --IBUS_KEY_D, 0x0110, --IBUS_KEY_E, 0x0246, --IBUS_KEY_G, 0x01E4, --IBUS_KEY_H, 0x0126, --IBUS_KEY_I, 0x0197, --IBUS_KEY_J, 0x0248, --IBUS_KEY_L, 0x0141, --IBUS_KEY_O, 0x00D8, --IBUS_KEY_P, 0x2C63, --IBUS_KEY_R, 0x024C, --IBUS_KEY_T, 0x0166, --IBUS_KEY_U, 0x0244, --IBUS_KEY_Y, 0x024E, --IBUS_KEY_Z, 0x01B5, --IBUS_KEY_a, 0x2C65, --IBUS_KEY_b, 0x0180, --IBUS_KEY_c, 0x023C, --IBUS_KEY_d, 0x0111, --IBUS_KEY_e, 0x0247, --IBUS_KEY_g, 0x01E5, --IBUS_KEY_h, 0x0127, --IBUS_KEY_i, 0x0268, --IBUS_KEY_j, 0x0249, --IBUS_KEY_l, 0x0142, --IBUS_KEY_o, 0x00F8, --IBUS_KEY_p, 0x1D7D, --IBUS_KEY_r, 0x024D, --IBUS_KEY_t, 0x0167, --IBUS_KEY_u, 0x0289, --IBUS_KEY_y, 0x024F, --IBUS_KEY_z, 0x01B6, --IBUS_KEY_nobreakspace, 0x0338, --IBUS_KEY_Oacute, 0x01FE, --IBUS_KEY_oacute, 0x01FF, --0x0237, 0x025F, --0x0269, 0x1D7C, --IBUS_KEY_lessthanequal, 0x2270, --IBUS_KEY_greaterthanequal, 0x2271, --IBUS_KEY_dead_stroke, 0x002F, --IBUS_KEY_dead_acute, IBUS_KEY_O, 0x01FE, --IBUS_KEY_dead_acute, IBUS_KEY_o, 0x01FF, --IBUS_KEY_dead_abovedot, IBUS_KEY_j, 0x025F, --IBUS_KEY_dead_greek, IBUS_KEY_r, 0x03FC, --IBUS_KEY_Greek_ALPHA, 0x1F08, --IBUS_KEY_Greek_EPSILON, 0x1F18, --IBUS_KEY_Greek_ETA, 0x1F28, --IBUS_KEY_Greek_IOTA, 0x1F38, --IBUS_KEY_Greek_OMICRON, 0x1F48, --IBUS_KEY_Greek_OMEGA, 0x1F68, --IBUS_KEY_Greek_alpha, 0x1F00, --IBUS_KEY_Greek_epsilon, 0x1F10, --IBUS_KEY_Greek_eta, 0x1F20, --IBUS_KEY_Greek_iota, 0x1F30, --IBUS_KEY_Greek_omicron, 0x1F40, --IBUS_KEY_Greek_rho, 0x1FE4, --IBUS_KEY_Greek_upsilon, 0x1F50, --IBUS_KEY_Greek_omega, 0x1F60, --IBUS_KEY_Greek_ALPHA, 0x1F09, --IBUS_KEY_Greek_EPSILON, 0x1F19, --IBUS_KEY_Greek_ETA, 0x1F29, --IBUS_KEY_Greek_IOTA, 0x1F39, --IBUS_KEY_Greek_OMICRON, 0x1F49, --IBUS_KEY_Greek_RHO, 0x1FEC, --IBUS_KEY_Greek_UPSILON, 0x1F59, --IBUS_KEY_Greek_OMEGA, 0x1F69, --IBUS_KEY_Greek_alpha, 0x1F01, --IBUS_KEY_Greek_epsilon, 0x1F11, --IBUS_KEY_Greek_eta, 0x1F21, --IBUS_KEY_Greek_iota, 0x1F31, --IBUS_KEY_Greek_omicron, 0x1F41, --IBUS_KEY_Greek_rho, 0x1FE5, --IBUS_KEY_Greek_upsilon, 0x1F51, --IBUS_KEY_Greek_omega, 0x1F61, --IBUS_KEY_bar, 0x2AF0, --IBUS_KEY_plus, 0x2A26, --IBUS_KEY_dead_diaeresis, IBUS_KEY_equal, 0x2A77, --IBUS_KEY_space, 0x002C, --IBUS_KEY_S, 0x0218, --IBUS_KEY_T, 0x021A, --IBUS_KEY_s, 0x0219, --IBUS_KEY_t, 0x021B, --IBUS_KEY_nobreakspace, 0x0326, --IBUS_KEY_dead_belowcomma, 0x002C, --IBUS_KEY_space, 0x00A4, --IBUS_KEY_A, 0x20B3, --IBUS_KEY_B, 0x20B1, --IBUS_KEY_C, 0x20A1, --IBUS_KEY_D, 0x20AF, --IBUS_KEY_E, 0x20A0, --IBUS_KEY_F, 0x20A3, --IBUS_KEY_G, 0x20B2, --IBUS_KEY_H, 0x20B4, --IBUS_KEY_I, 0x17DB, --IBUS_KEY_K, 0x20AD, --IBUS_KEY_L, 0x20A4, --IBUS_KEY_M, 0x2133, --IBUS_KEY_N, 0x20A6, --IBUS_KEY_O, 0x0AF1, --IBUS_KEY_P, 0x20A7, --IBUS_KEY_R, 0x20A8, --IBUS_KEY_S, 0x0024, --IBUS_KEY_T, 0x20AE, --IBUS_KEY_U, 0x5713, --IBUS_KEY_W, 0x20A9, --IBUS_KEY_Y, 0x5186, --IBUS_KEY_a, 0x060B, --IBUS_KEY_b, 0x0E3F, --IBUS_KEY_c, 0x00A2, --IBUS_KEY_d, 0x20AB, --IBUS_KEY_e, 0x20AC, --IBUS_KEY_f, 0x0192, --IBUS_KEY_g, 0x20B2, --IBUS_KEY_h, 0x20B4, --IBUS_KEY_i, 0xFDFC, --IBUS_KEY_k, 0x20AD, --IBUS_KEY_l, 0x00A3, --IBUS_KEY_m, 0x20A5, --IBUS_KEY_n, 0x20A6, --IBUS_KEY_o, 0x0BF9, --IBUS_KEY_p, 0x20B0, --IBUS_KEY_r, 0x20A2, --IBUS_KEY_s, 0x20AA, --IBUS_KEY_t, 0x09F3, --IBUS_KEY_u, 0x5143, --IBUS_KEY_w, 0x20A9, --IBUS_KEY_y, 0x00A5, --IBUS_KEY_nobreakspace, 0x00A4, --IBUS_KEY_Ccedilla, 0x20B5, --IBUS_KEY_THORN, 0x09F2, --IBUS_KEY_ccedilla, 0x20B5, --IBUS_KEY_thorn, 0x09F2, --IBUS_KEY_dead_currency, 0x00A4, --IBUS_KEY_dead_cedilla, IBUS_KEY_C, 0x20B5, --IBUS_KEY_dead_cedilla, IBUS_KEY_c, 0x20B5, --IBUS_KEY_space, 0x00B5, --IBUS_KEY_A, 0x0391, --IBUS_KEY_B, 0x0392, --IBUS_KEY_D, 0x0394, --IBUS_KEY_E, 0x0395, --IBUS_KEY_F, 0x03A6, --IBUS_KEY_G, 0x0393, --IBUS_KEY_H, 0x0397, --IBUS_KEY_I, 0x0399, --IBUS_KEY_J, 0x0398, --IBUS_KEY_K, 0x039A, --IBUS_KEY_L, 0x039B, --IBUS_KEY_M, 0x039C, --IBUS_KEY_N, 0x039D, --IBUS_KEY_O, 0x039F, --IBUS_KEY_P, 0x03A0, --IBUS_KEY_Q, 0x03A7, --IBUS_KEY_R, 0x03A1, --IBUS_KEY_S, 0x03A3, --IBUS_KEY_T, 0x03A4, --IBUS_KEY_U, 0x03A5, --IBUS_KEY_W, 0x03A9, --IBUS_KEY_X, 0x039E, --IBUS_KEY_Y, 0x03A8, --IBUS_KEY_Z, 0x0396, --IBUS_KEY_a, 0x03B1, --IBUS_KEY_b, 0x03B2, --IBUS_KEY_d, 0x03B4, --IBUS_KEY_e, 0x03B5, --IBUS_KEY_f, 0x03C6, --IBUS_KEY_g, 0x03B3, --IBUS_KEY_h, 0x03B7, --IBUS_KEY_i, 0x03B9, --IBUS_KEY_j, 0x03B8, --IBUS_KEY_k, 0x03BA, --IBUS_KEY_l, 0x03BB, --IBUS_KEY_m, 0x03BC, --IBUS_KEY_n, 0x03BD, --IBUS_KEY_o, 0x03BF, --IBUS_KEY_p, 0x03C0, --IBUS_KEY_q, 0x03C7, --IBUS_KEY_r, 0x03C1, --IBUS_KEY_s, 0x03C3, --IBUS_KEY_t, 0x03C4, --IBUS_KEY_u, 0x03C5, --IBUS_KEY_w, 0x03C9, --IBUS_KEY_x, 0x03BE, --IBUS_KEY_y, 0x03C8, --IBUS_KEY_z, 0x03B6, --IBUS_KEY_nobreakspace, 0x00B5, --IBUS_KEY_dead_greek, 0x00B5, --IBUS_KEY_dead_macron, IBUS_KEY_A, 0x1FB9, --IBUS_KEY_dead_macron, IBUS_KEY_I, 0x1FD9, --IBUS_KEY_dead_macron, IBUS_KEY_U, 0x1FE9, --IBUS_KEY_dead_macron, IBUS_KEY_a, 0x1FB1, --IBUS_KEY_dead_macron, IBUS_KEY_i, 0x1FD1, --IBUS_KEY_dead_macron, IBUS_KEY_u, 0x1FE1, --IBUS_KEY_dead_hook, IBUS_KEY_U, 0x03D2, --IBUS_KEY_dead_stroke, IBUS_KEY_r, 0x03FC, --IBUS_KEY_space, IBUS_KEY_space, 0x00A0, --IBUS_KEY_space, IBUS_KEY_apostrophe, 0x0027, --IBUS_KEY_space, IBUS_KEY_parenleft, 0x02D8, --IBUS_KEY_space, IBUS_KEY_comma, 0x00B8, --IBUS_KEY_space, IBUS_KEY_minus, 0x007E, --IBUS_KEY_space, IBUS_KEY_period, 0x2008, --IBUS_KEY_space, IBUS_KEY_less, 0x02C7, --IBUS_KEY_space, IBUS_KEY_greater, 0x005E, --IBUS_KEY_space, IBUS_KEY_asciicircum, 0x005E, --IBUS_KEY_space, IBUS_KEY_grave, 0x0060, --IBUS_KEY_space, IBUS_KEY_asciitilde, 0x007E, --IBUS_KEY_exclam, IBUS_KEY_exclam, 0x00A1, --IBUS_KEY_exclam, IBUS_KEY_question, 0x203D, --IBUS_KEY_exclam, IBUS_KEY_A, 0x1EA0, --IBUS_KEY_exclam, IBUS_KEY_B, 0x1E04, --IBUS_KEY_exclam, IBUS_KEY_D, 0x1E0C, --IBUS_KEY_exclam, IBUS_KEY_E, 0x1EB8, --IBUS_KEY_exclam, IBUS_KEY_H, 0x1E24, --IBUS_KEY_exclam, IBUS_KEY_I, 0x1ECA, --IBUS_KEY_exclam, IBUS_KEY_K, 0x1E32, --IBUS_KEY_exclam, IBUS_KEY_L, 0x1E36, --IBUS_KEY_exclam, IBUS_KEY_M, 0x1E42, --IBUS_KEY_exclam, IBUS_KEY_N, 0x1E46, --IBUS_KEY_exclam, IBUS_KEY_O, 0x1ECC, --IBUS_KEY_exclam, IBUS_KEY_R, 0x1E5A, --IBUS_KEY_exclam, IBUS_KEY_S, 0x1E62, --IBUS_KEY_exclam, IBUS_KEY_T, 0x1E6C, --IBUS_KEY_exclam, IBUS_KEY_U, 0x1EE4, --IBUS_KEY_exclam, IBUS_KEY_V, 0x1E7E, --IBUS_KEY_exclam, IBUS_KEY_W, 0x1E88, --IBUS_KEY_exclam, IBUS_KEY_Y, 0x1EF4, --IBUS_KEY_exclam, IBUS_KEY_Z, 0x1E92, --IBUS_KEY_exclam, IBUS_KEY_asciicircum, 0x00A6, --IBUS_KEY_exclam, IBUS_KEY_a, 0x1EA1, --IBUS_KEY_exclam, IBUS_KEY_b, 0x1E05, --IBUS_KEY_exclam, IBUS_KEY_d, 0x1E0D, --IBUS_KEY_exclam, IBUS_KEY_e, 0x1EB9, --IBUS_KEY_exclam, IBUS_KEY_h, 0x1E25, --IBUS_KEY_exclam, IBUS_KEY_i, 0x1ECB, --IBUS_KEY_exclam, IBUS_KEY_k, 0x1E33, --IBUS_KEY_exclam, IBUS_KEY_l, 0x1E37, --IBUS_KEY_exclam, IBUS_KEY_m, 0x1E43, --IBUS_KEY_exclam, IBUS_KEY_n, 0x1E47, --IBUS_KEY_exclam, IBUS_KEY_o, 0x1ECD, --IBUS_KEY_exclam, IBUS_KEY_r, 0x1E5B, --IBUS_KEY_exclam, IBUS_KEY_s, 0x1E63, --IBUS_KEY_exclam, IBUS_KEY_t, 0x1E6D, --IBUS_KEY_exclam, IBUS_KEY_u, 0x1EE5, --IBUS_KEY_exclam, IBUS_KEY_v, 0x1E7F, --IBUS_KEY_exclam, IBUS_KEY_w, 0x1E89, --IBUS_KEY_exclam, IBUS_KEY_y, 0x1EF5, --IBUS_KEY_exclam, IBUS_KEY_z, 0x1E93, --IBUS_KEY_quotedbl, IBUS_KEY_quotedbl, 0x00A8, --IBUS_KEY_quotedbl, IBUS_KEY_apostrophe, 0x0344, --IBUS_KEY_quotedbl, IBUS_KEY_comma, 0x201E, --IBUS_KEY_quotedbl, IBUS_KEY_less, 0x201C, --IBUS_KEY_quotedbl, IBUS_KEY_greater, 0x201D, --IBUS_KEY_quotedbl, IBUS_KEY_A, 0x00C4, --IBUS_KEY_quotedbl, IBUS_KEY_E, 0x00CB, --IBUS_KEY_quotedbl, IBUS_KEY_H, 0x1E26, --IBUS_KEY_quotedbl, IBUS_KEY_I, 0x00CF, --IBUS_KEY_quotedbl, IBUS_KEY_O, 0x00D6, --IBUS_KEY_quotedbl, IBUS_KEY_U, 0x00DC, --IBUS_KEY_quotedbl, IBUS_KEY_W, 0x1E84, --IBUS_KEY_quotedbl, IBUS_KEY_X, 0x1E8C, --IBUS_KEY_quotedbl, IBUS_KEY_Y, 0x0178, --IBUS_KEY_quotedbl, IBUS_KEY_a, 0x00E4, --IBUS_KEY_quotedbl, IBUS_KEY_e, 0x00EB, --IBUS_KEY_quotedbl, IBUS_KEY_h, 0x1E27, --IBUS_KEY_quotedbl, IBUS_KEY_i, 0x00EF, --IBUS_KEY_quotedbl, IBUS_KEY_o, 0x00F6, --IBUS_KEY_quotedbl, IBUS_KEY_t, 0x1E97, --IBUS_KEY_quotedbl, IBUS_KEY_u, 0x00FC, --IBUS_KEY_quotedbl, IBUS_KEY_w, 0x1E85, --IBUS_KEY_quotedbl, IBUS_KEY_x, 0x1E8D, --IBUS_KEY_quotedbl, IBUS_KEY_y, 0x00FF, --IBUS_KEY_quotedbl, IBUS_KEY_acute, 0x0344, --IBUS_KEY_quotedbl, IBUS_KEY_Otilde, 0x1E4E, --IBUS_KEY_quotedbl, IBUS_KEY_otilde, 0x1E4F, --IBUS_KEY_quotedbl, 0x03D2, 0x03D4, --IBUS_KEY_quotedbl, IBUS_KEY_Umacron, 0x1E7A, --IBUS_KEY_quotedbl, IBUS_KEY_umacron, 0x1E7B, --IBUS_KEY_quotedbl, 0x04D8, 0x04DA, --IBUS_KEY_quotedbl, 0x04D9, 0x04DB, --IBUS_KEY_quotedbl, 0x04E8, 0x04EA, --IBUS_KEY_quotedbl, 0x04E9, 0x04EB, --IBUS_KEY_quotedbl, IBUS_KEY_Ukrainian_i, 0x0457, --IBUS_KEY_quotedbl, IBUS_KEY_Ukrainian_I, 0x0407, --IBUS_KEY_quotedbl, IBUS_KEY_Cyrillic_a, 0x04D3, --IBUS_KEY_quotedbl, IBUS_KEY_Cyrillic_ie, 0x0451, --IBUS_KEY_quotedbl, IBUS_KEY_Cyrillic_i, 0x04E5, --IBUS_KEY_quotedbl, IBUS_KEY_Cyrillic_o, 0x04E7, --IBUS_KEY_quotedbl, IBUS_KEY_Cyrillic_u, 0x04F1, --IBUS_KEY_quotedbl, IBUS_KEY_Cyrillic_zhe, 0x04DD, --IBUS_KEY_quotedbl, IBUS_KEY_Cyrillic_yeru, 0x04F9, --IBUS_KEY_quotedbl, IBUS_KEY_Cyrillic_ze, 0x04DF, --IBUS_KEY_quotedbl, IBUS_KEY_Cyrillic_e, 0x04ED, --IBUS_KEY_quotedbl, IBUS_KEY_Cyrillic_che, 0x04F5, --IBUS_KEY_quotedbl, IBUS_KEY_Cyrillic_A, 0x04D2, --IBUS_KEY_quotedbl, IBUS_KEY_Cyrillic_IE, 0x0401, --IBUS_KEY_quotedbl, IBUS_KEY_Cyrillic_I, 0x04E4, --IBUS_KEY_quotedbl, IBUS_KEY_Cyrillic_O, 0x04E6, --IBUS_KEY_quotedbl, IBUS_KEY_Cyrillic_U, 0x04F0, --IBUS_KEY_quotedbl, IBUS_KEY_Cyrillic_ZHE, 0x04DC, --IBUS_KEY_quotedbl, IBUS_KEY_Cyrillic_YERU, 0x04F8, --IBUS_KEY_quotedbl, IBUS_KEY_Cyrillic_ZE, 0x04DE, --IBUS_KEY_quotedbl, IBUS_KEY_Cyrillic_E, 0x04EC, --IBUS_KEY_quotedbl, IBUS_KEY_Cyrillic_CHE, 0x04F4, --IBUS_KEY_quotedbl, IBUS_KEY_Greek_IOTA, 0x03AA, --IBUS_KEY_quotedbl, IBUS_KEY_Greek_UPSILON, 0x03AB, --IBUS_KEY_quotedbl, IBUS_KEY_Greek_iota, 0x03CA, --IBUS_KEY_quotedbl, IBUS_KEY_Greek_upsilon, 0x03CB, --IBUS_KEY_quotedbl, IBUS_KEY_dead_acute, 0x0344, --IBUS_KEY_numbersign, IBUS_KEY_numbersign, 0x266F, --IBUS_KEY_numbersign, IBUS_KEY_E, 0x266B, --IBUS_KEY_numbersign, IBUS_KEY_S, 0x266C, --IBUS_KEY_numbersign, IBUS_KEY_b, 0x266D, --IBUS_KEY_numbersign, IBUS_KEY_e, 0x266A, --IBUS_KEY_numbersign, IBUS_KEY_f, 0x266E, --IBUS_KEY_numbersign, IBUS_KEY_q, 0x2669, --IBUS_KEY_percent, IBUS_KEY_o, 0x2030, --IBUS_KEY_apostrophe, IBUS_KEY_space, 0x0027, --IBUS_KEY_apostrophe, IBUS_KEY_apostrophe, 0x00B4, --IBUS_KEY_apostrophe, IBUS_KEY_comma, 0x201A, --IBUS_KEY_apostrophe, IBUS_KEY_less, 0x2018, --IBUS_KEY_apostrophe, IBUS_KEY_greater, 0x2019, --IBUS_KEY_apostrophe, IBUS_KEY_A, 0x00C1, --IBUS_KEY_apostrophe, IBUS_KEY_C, 0x0106, --IBUS_KEY_apostrophe, IBUS_KEY_E, 0x00C9, --IBUS_KEY_apostrophe, IBUS_KEY_G, 0x01F4, --IBUS_KEY_apostrophe, IBUS_KEY_I, 0x00CD, --IBUS_KEY_apostrophe, IBUS_KEY_K, 0x1E30, --IBUS_KEY_apostrophe, IBUS_KEY_L, 0x0139, --IBUS_KEY_apostrophe, IBUS_KEY_M, 0x1E3E, --IBUS_KEY_apostrophe, IBUS_KEY_N, 0x0143, --IBUS_KEY_apostrophe, IBUS_KEY_O, 0x00D3, --IBUS_KEY_apostrophe, IBUS_KEY_P, 0x1E54, --IBUS_KEY_apostrophe, IBUS_KEY_R, 0x0154, --IBUS_KEY_apostrophe, IBUS_KEY_S, 0x015A, --IBUS_KEY_apostrophe, IBUS_KEY_U, 0x00DA, --IBUS_KEY_apostrophe, IBUS_KEY_W, 0x1E82, --IBUS_KEY_apostrophe, IBUS_KEY_Y, 0x00DD, --IBUS_KEY_apostrophe, IBUS_KEY_Z, 0x0179, --IBUS_KEY_apostrophe, IBUS_KEY_a, 0x00E1, --IBUS_KEY_apostrophe, IBUS_KEY_c, 0x0107, --IBUS_KEY_apostrophe, IBUS_KEY_e, 0x00E9, --IBUS_KEY_apostrophe, IBUS_KEY_g, 0x01F5, --IBUS_KEY_apostrophe, IBUS_KEY_i, 0x00ED, --IBUS_KEY_apostrophe, IBUS_KEY_k, 0x1E31, --IBUS_KEY_apostrophe, IBUS_KEY_l, 0x013A, --IBUS_KEY_apostrophe, IBUS_KEY_m, 0x1E3F, --IBUS_KEY_apostrophe, IBUS_KEY_n, 0x0144, --IBUS_KEY_apostrophe, IBUS_KEY_o, 0x00F3, --IBUS_KEY_apostrophe, IBUS_KEY_p, 0x1E55, --IBUS_KEY_apostrophe, IBUS_KEY_r, 0x0155, --IBUS_KEY_apostrophe, IBUS_KEY_s, 0x015B, --IBUS_KEY_apostrophe, IBUS_KEY_u, 0x00FA, --IBUS_KEY_apostrophe, IBUS_KEY_w, 0x1E83, --IBUS_KEY_apostrophe, IBUS_KEY_y, 0x00FD, --IBUS_KEY_apostrophe, IBUS_KEY_z, 0x017A, --IBUS_KEY_apostrophe, IBUS_KEY_Acircumflex, 0x1EA4, --IBUS_KEY_apostrophe, IBUS_KEY_Aring, 0x01FA, --IBUS_KEY_apostrophe, IBUS_KEY_AE, 0x01FC, --IBUS_KEY_apostrophe, IBUS_KEY_Ccedilla, 0x1E08, --IBUS_KEY_apostrophe, IBUS_KEY_Ecircumflex, 0x1EBE, --IBUS_KEY_apostrophe, IBUS_KEY_Idiaeresis, 0x1E2E, --IBUS_KEY_apostrophe, IBUS_KEY_Ocircumflex, 0x1ED0, --IBUS_KEY_apostrophe, IBUS_KEY_Otilde, 0x1E4C, --IBUS_KEY_apostrophe, IBUS_KEY_Ooblique, 0x01FE, --IBUS_KEY_apostrophe, IBUS_KEY_Udiaeresis, 0x01D7, --IBUS_KEY_apostrophe, IBUS_KEY_acircumflex, 0x1EA5, --IBUS_KEY_apostrophe, IBUS_KEY_aring, 0x01FB, --IBUS_KEY_apostrophe, IBUS_KEY_ae, 0x01FD, --IBUS_KEY_apostrophe, IBUS_KEY_ccedilla, 0x1E09, --IBUS_KEY_apostrophe, IBUS_KEY_ecircumflex, 0x1EBF, --IBUS_KEY_apostrophe, IBUS_KEY_idiaeresis, 0x1E2F, --IBUS_KEY_apostrophe, IBUS_KEY_ocircumflex, 0x1ED1, --IBUS_KEY_apostrophe, IBUS_KEY_otilde, 0x1E4D, --IBUS_KEY_apostrophe, IBUS_KEY_oslash, 0x01FF, --IBUS_KEY_apostrophe, IBUS_KEY_udiaeresis, 0x01D8, --IBUS_KEY_apostrophe, IBUS_KEY_Abreve, 0x1EAE, --IBUS_KEY_apostrophe, IBUS_KEY_abreve, 0x1EAF, --IBUS_KEY_apostrophe, IBUS_KEY_Emacron, 0x1E16, --IBUS_KEY_apostrophe, IBUS_KEY_emacron, 0x1E17, --IBUS_KEY_apostrophe, IBUS_KEY_Omacron, 0x1E52, --IBUS_KEY_apostrophe, IBUS_KEY_Utilde, 0x1E78, --IBUS_KEY_apostrophe, IBUS_KEY_omacron, 0x1E53, --IBUS_KEY_apostrophe, IBUS_KEY_utilde, 0x1E79, --IBUS_KEY_apostrophe, IBUS_KEY_Cyrillic_ghe, 0x0453, --IBUS_KEY_apostrophe, IBUS_KEY_Cyrillic_ka, 0x045C, --IBUS_KEY_apostrophe, IBUS_KEY_Cyrillic_GHE, 0x0403, --IBUS_KEY_apostrophe, IBUS_KEY_Cyrillic_KA, 0x040C, --IBUS_KEY_apostrophe, IBUS_KEY_Greek_iotadieresis, 0x0390, --IBUS_KEY_apostrophe, IBUS_KEY_Greek_upsilondieresis, 0x03B0, --IBUS_KEY_apostrophe, IBUS_KEY_Greek_ALPHA, 0x0386, --IBUS_KEY_apostrophe, IBUS_KEY_Greek_EPSILON, 0x0388, --IBUS_KEY_apostrophe, IBUS_KEY_Greek_ETA, 0x0389, --IBUS_KEY_apostrophe, IBUS_KEY_Greek_IOTA, 0x038A, --IBUS_KEY_apostrophe, IBUS_KEY_Greek_OMICRON, 0x038C, --IBUS_KEY_apostrophe, IBUS_KEY_Greek_UPSILON, 0x038E, --IBUS_KEY_apostrophe, IBUS_KEY_Greek_OMEGA, 0x038F, --IBUS_KEY_apostrophe, IBUS_KEY_Greek_alpha, 0x03AC, --IBUS_KEY_apostrophe, IBUS_KEY_Greek_epsilon, 0x03AD, --IBUS_KEY_apostrophe, IBUS_KEY_Greek_eta, 0x03AE, --IBUS_KEY_apostrophe, IBUS_KEY_Greek_iota, 0x03AF, --IBUS_KEY_apostrophe, IBUS_KEY_Greek_omicron, 0x03CC, --IBUS_KEY_apostrophe, IBUS_KEY_Greek_upsilon, 0x03CD, --IBUS_KEY_apostrophe, IBUS_KEY_Greek_omega, 0x03CE, --IBUS_KEY_apostrophe, 0x1F00, 0x1F04, --IBUS_KEY_apostrophe, 0x1F01, 0x1F05, --IBUS_KEY_apostrophe, 0x1F08, 0x1F0C, --IBUS_KEY_apostrophe, 0x1F09, 0x1F0D, --IBUS_KEY_apostrophe, 0x1F10, 0x1F14, --IBUS_KEY_apostrophe, 0x1F11, 0x1F15, --IBUS_KEY_apostrophe, 0x1F18, 0x1F1C, --IBUS_KEY_apostrophe, 0x1F19, 0x1F1D, --IBUS_KEY_apostrophe, 0x1F20, 0x1F24, --IBUS_KEY_apostrophe, 0x1F21, 0x1F25, --IBUS_KEY_apostrophe, 0x1F28, 0x1F2C, --IBUS_KEY_apostrophe, 0x1F29, 0x1F2D, --IBUS_KEY_apostrophe, 0x1F30, 0x1F34, --IBUS_KEY_apostrophe, 0x1F31, 0x1F35, --IBUS_KEY_apostrophe, 0x1F38, 0x1F3C, --IBUS_KEY_apostrophe, 0x1F39, 0x1F3D, --IBUS_KEY_apostrophe, 0x1F40, 0x1F44, --IBUS_KEY_apostrophe, 0x1F41, 0x1F45, --IBUS_KEY_apostrophe, 0x1F48, 0x1F4C, --IBUS_KEY_apostrophe, 0x1F49, 0x1F4D, --IBUS_KEY_apostrophe, 0x1F50, 0x1F54, --IBUS_KEY_apostrophe, 0x1F51, 0x1F55, --IBUS_KEY_apostrophe, 0x1F59, 0x1F5D, --IBUS_KEY_apostrophe, 0x1F60, 0x1F64, --IBUS_KEY_apostrophe, 0x1F61, 0x1F65, --IBUS_KEY_apostrophe, 0x1F68, 0x1F6C, --IBUS_KEY_apostrophe, 0x1F69, 0x1F6D, --IBUS_KEY_apostrophe, 0x2395, 0x235E, --IBUS_KEY_parenleft, IBUS_KEY_space, 0x02D8, --IBUS_KEY_parenleft, IBUS_KEY_parenleft, 0x005B, --IBUS_KEY_parenleft, IBUS_KEY_minus, 0x007B, --IBUS_KEY_parenleft, IBUS_KEY_Greek_ALPHA, 0x1F09, --IBUS_KEY_parenleft, IBUS_KEY_Greek_EPSILON, 0x1F19, --IBUS_KEY_parenleft, IBUS_KEY_Greek_ETA, 0x1F29, --IBUS_KEY_parenleft, IBUS_KEY_Greek_IOTA, 0x1F39, --IBUS_KEY_parenleft, IBUS_KEY_Greek_OMICRON, 0x1F49, --IBUS_KEY_parenleft, IBUS_KEY_Greek_RHO, 0x1FEC, --IBUS_KEY_parenleft, IBUS_KEY_Greek_UPSILON, 0x1F59, --IBUS_KEY_parenleft, IBUS_KEY_Greek_OMEGA, 0x1F69, --IBUS_KEY_parenleft, IBUS_KEY_Greek_alpha, 0x1F01, --IBUS_KEY_parenleft, IBUS_KEY_Greek_epsilon, 0x1F11, --IBUS_KEY_parenleft, IBUS_KEY_Greek_eta, 0x1F21, --IBUS_KEY_parenleft, IBUS_KEY_Greek_iota, 0x1F31, --IBUS_KEY_parenleft, IBUS_KEY_Greek_omicron, 0x1F41, --IBUS_KEY_parenleft, IBUS_KEY_Greek_rho, 0x1FE5, --IBUS_KEY_parenleft, IBUS_KEY_Greek_upsilon, 0x1F51, --IBUS_KEY_parenleft, IBUS_KEY_Greek_omega, 0x1F61, --IBUS_KEY_parenright, IBUS_KEY_parenright, 0x005D, --IBUS_KEY_parenright, IBUS_KEY_minus, 0x007D, --IBUS_KEY_parenright, IBUS_KEY_Greek_ALPHA, 0x1F08, --IBUS_KEY_parenright, IBUS_KEY_Greek_EPSILON, 0x1F18, --IBUS_KEY_parenright, IBUS_KEY_Greek_ETA, 0x1F28, --IBUS_KEY_parenright, IBUS_KEY_Greek_IOTA, 0x1F38, --IBUS_KEY_parenright, IBUS_KEY_Greek_OMICRON, 0x1F48, --IBUS_KEY_parenright, IBUS_KEY_Greek_OMEGA, 0x1F68, --IBUS_KEY_parenright, IBUS_KEY_Greek_alpha, 0x1F00, --IBUS_KEY_parenright, IBUS_KEY_Greek_epsilon, 0x1F10, --IBUS_KEY_parenright, IBUS_KEY_Greek_eta, 0x1F20, --IBUS_KEY_parenright, IBUS_KEY_Greek_iota, 0x1F30, --IBUS_KEY_parenright, IBUS_KEY_Greek_omicron, 0x1F40, --IBUS_KEY_parenright, IBUS_KEY_Greek_rho, 0x1FE4, --IBUS_KEY_parenright, IBUS_KEY_Greek_upsilon, 0x1F50, --IBUS_KEY_parenright, IBUS_KEY_Greek_omega, 0x1F60, --IBUS_KEY_asterisk, IBUS_KEY_0, 0x00B0, --IBUS_KEY_asterisk, IBUS_KEY_A, 0x00C5, --IBUS_KEY_asterisk, IBUS_KEY_U, 0x016E, --IBUS_KEY_asterisk, IBUS_KEY_a, 0x00E5, --IBUS_KEY_asterisk, IBUS_KEY_u, 0x016F, --IBUS_KEY_asterisk, IBUS_KEY_diaeresis, 0x2363, --IBUS_KEY_asterisk, IBUS_KEY_emopencircle, 0x235F, --IBUS_KEY_plus, IBUS_KEY_plus, 0x0023, --IBUS_KEY_plus, IBUS_KEY_minus, 0x00B1, --IBUS_KEY_plus, IBUS_KEY_O, 0x01A0, --IBUS_KEY_plus, IBUS_KEY_U, 0x01AF, --IBUS_KEY_plus, IBUS_KEY_o, 0x01A1, --IBUS_KEY_plus, IBUS_KEY_u, 0x01B0, --IBUS_KEY_comma, IBUS_KEY_space, 0x00B8, --IBUS_KEY_comma, IBUS_KEY_quotedbl, 0x201E, --IBUS_KEY_comma, IBUS_KEY_apostrophe, 0x201A, --IBUS_KEY_comma, IBUS_KEY_comma, 0x00B8, --IBUS_KEY_comma, IBUS_KEY_minus, 0x00AC, --IBUS_KEY_comma, IBUS_KEY_A, 0x0104, --IBUS_KEY_comma, IBUS_KEY_C, 0x00C7, --IBUS_KEY_comma, IBUS_KEY_D, 0x1E10, --IBUS_KEY_comma, IBUS_KEY_E, 0x0118, --IBUS_KEY_comma, IBUS_KEY_G, 0x0122, --IBUS_KEY_comma, IBUS_KEY_H, 0x1E28, --IBUS_KEY_comma, IBUS_KEY_I, 0x012E, --IBUS_KEY_comma, IBUS_KEY_K, 0x0136, --IBUS_KEY_comma, IBUS_KEY_L, 0x013B, --IBUS_KEY_comma, IBUS_KEY_N, 0x0145, --IBUS_KEY_comma, IBUS_KEY_O, 0x01EA, --IBUS_KEY_comma, IBUS_KEY_R, 0x0156, --IBUS_KEY_comma, IBUS_KEY_S, 0x015E, --IBUS_KEY_comma, IBUS_KEY_T, 0x0162, --IBUS_KEY_comma, IBUS_KEY_U, 0x0172, --IBUS_KEY_comma, IBUS_KEY_a, 0x0105, --IBUS_KEY_comma, IBUS_KEY_c, 0x00E7, --IBUS_KEY_comma, IBUS_KEY_d, 0x1E11, --IBUS_KEY_comma, IBUS_KEY_e, 0x0119, --IBUS_KEY_comma, IBUS_KEY_g, 0x0123, --IBUS_KEY_comma, IBUS_KEY_h, 0x1E29, --IBUS_KEY_comma, IBUS_KEY_i, 0x012F, --IBUS_KEY_comma, IBUS_KEY_k, 0x0137, --IBUS_KEY_comma, IBUS_KEY_l, 0x013C, --IBUS_KEY_comma, IBUS_KEY_n, 0x0146, --IBUS_KEY_comma, IBUS_KEY_o, 0x01EB, --IBUS_KEY_comma, IBUS_KEY_r, 0x0157, --IBUS_KEY_comma, IBUS_KEY_s, 0x015F, --IBUS_KEY_comma, IBUS_KEY_t, 0x0163, --IBUS_KEY_comma, IBUS_KEY_u, 0x0173, --IBUS_KEY_minus, IBUS_KEY_space, 0x007E, --IBUS_KEY_minus, IBUS_KEY_parenleft, 0x007B, --IBUS_KEY_minus, IBUS_KEY_parenright, 0x007D, --IBUS_KEY_minus, IBUS_KEY_plus, 0x00B1, --IBUS_KEY_minus, IBUS_KEY_comma, 0x00AC, --IBUS_KEY_minus, IBUS_KEY_slash, 0x233F, --IBUS_KEY_minus, IBUS_KEY_colon, 0x00F7, --IBUS_KEY_minus, IBUS_KEY_greater, 0x2192, --IBUS_KEY_minus, IBUS_KEY_A, 0x0100, --IBUS_KEY_minus, IBUS_KEY_D, 0x0110, --IBUS_KEY_minus, IBUS_KEY_E, 0x0112, --IBUS_KEY_minus, IBUS_KEY_I, 0x012A, --IBUS_KEY_minus, IBUS_KEY_L, 0x00A3, --IBUS_KEY_minus, IBUS_KEY_O, 0x014C, --IBUS_KEY_minus, IBUS_KEY_U, 0x016A, --IBUS_KEY_minus, IBUS_KEY_Y, 0x00A5, --IBUS_KEY_minus, IBUS_KEY_backslash, 0x2340, --IBUS_KEY_minus, IBUS_KEY_asciicircum, 0x00AF, --IBUS_KEY_minus, IBUS_KEY_a, 0x0101, --IBUS_KEY_minus, IBUS_KEY_d, 0x0111, --IBUS_KEY_minus, IBUS_KEY_e, 0x0113, --IBUS_KEY_minus, IBUS_KEY_i, 0x012B, --IBUS_KEY_minus, IBUS_KEY_l, 0x00A3, --IBUS_KEY_minus, IBUS_KEY_o, 0x014D, --IBUS_KEY_minus, IBUS_KEY_u, 0x016B, --IBUS_KEY_minus, IBUS_KEY_y, 0x00A5, --IBUS_KEY_minus, 0x2191, 0x234F, --IBUS_KEY_minus, 0x2193, 0x2356, --IBUS_KEY_minus, IBUS_KEY_emopencircle, 0x2296, --IBUS_KEY_period, IBUS_KEY_minus, 0x00B7, --IBUS_KEY_period, IBUS_KEY_period, 0x2026, --IBUS_KEY_period, IBUS_KEY_colon, 0x2235, --IBUS_KEY_period, IBUS_KEY_less, 0x2039, --IBUS_KEY_period, IBUS_KEY_equal, 0x2022, --IBUS_KEY_period, IBUS_KEY_greater, 0x203A, --IBUS_KEY_period, IBUS_KEY_A, 0x0226, --IBUS_KEY_period, IBUS_KEY_B, 0x1E02, --IBUS_KEY_period, IBUS_KEY_C, 0x010A, --IBUS_KEY_period, IBUS_KEY_D, 0x1E0A, --IBUS_KEY_period, IBUS_KEY_E, 0x0116, --IBUS_KEY_period, IBUS_KEY_F, 0x1E1E, --IBUS_KEY_period, IBUS_KEY_G, 0x0120, --IBUS_KEY_period, IBUS_KEY_H, 0x1E22, --IBUS_KEY_period, IBUS_KEY_I, 0x0130, --IBUS_KEY_period, IBUS_KEY_M, 0x1E40, --IBUS_KEY_period, IBUS_KEY_N, 0x1E44, --IBUS_KEY_period, IBUS_KEY_O, 0x022E, --IBUS_KEY_period, IBUS_KEY_P, 0x1E56, --IBUS_KEY_period, IBUS_KEY_R, 0x1E58, --IBUS_KEY_period, IBUS_KEY_S, 0x1E60, --IBUS_KEY_period, IBUS_KEY_T, 0x1E6A, --IBUS_KEY_period, IBUS_KEY_W, 0x1E86, --IBUS_KEY_period, IBUS_KEY_X, 0x1E8A, --IBUS_KEY_period, IBUS_KEY_Y, 0x1E8E, --IBUS_KEY_period, IBUS_KEY_Z, 0x017B, --IBUS_KEY_period, IBUS_KEY_asciicircum, 0x00B7, --IBUS_KEY_period, IBUS_KEY_a, 0x0227, --IBUS_KEY_period, IBUS_KEY_b, 0x1E03, --IBUS_KEY_period, IBUS_KEY_c, 0x010B, --IBUS_KEY_period, IBUS_KEY_d, 0x1E0B, --IBUS_KEY_period, IBUS_KEY_e, 0x0117, --IBUS_KEY_period, IBUS_KEY_f, 0x1E1F, --IBUS_KEY_period, IBUS_KEY_g, 0x0121, --IBUS_KEY_period, IBUS_KEY_h, 0x1E23, --IBUS_KEY_period, IBUS_KEY_i, 0x0131, --IBUS_KEY_period, IBUS_KEY_m, 0x1E41, --IBUS_KEY_period, IBUS_KEY_n, 0x1E45, --IBUS_KEY_period, IBUS_KEY_o, 0x022F, --IBUS_KEY_period, IBUS_KEY_p, 0x1E57, --IBUS_KEY_period, IBUS_KEY_r, 0x1E59, --IBUS_KEY_period, IBUS_KEY_s, 0x1E61, --IBUS_KEY_period, IBUS_KEY_t, 0x1E6B, --IBUS_KEY_period, IBUS_KEY_w, 0x1E87, --IBUS_KEY_period, IBUS_KEY_x, 0x1E8B, --IBUS_KEY_period, IBUS_KEY_y, 0x1E8F, --IBUS_KEY_period, IBUS_KEY_z, 0x017C, --IBUS_KEY_period, 0x017F, 0x1E9B, --IBUS_KEY_period, IBUS_KEY_Sacute, 0x1E64, --IBUS_KEY_period, IBUS_KEY_Scaron, 0x1E66, --IBUS_KEY_period, IBUS_KEY_sacute, 0x1E65, --IBUS_KEY_period, IBUS_KEY_scaron, 0x1E67, --IBUS_KEY_period, 0x1E62, 0x1E68, --IBUS_KEY_period, 0x1E63, 0x1E69, --IBUS_KEY_period, IBUS_KEY_emopencircle, 0x2299, --IBUS_KEY_slash, IBUS_KEY_minus, 0x233F, --IBUS_KEY_slash, IBUS_KEY_slash, 0x005C, --IBUS_KEY_slash, IBUS_KEY_less, 0x005C, --IBUS_KEY_slash, IBUS_KEY_equal, 0x2260, --IBUS_KEY_slash, IBUS_KEY_C, 0x20A1, --IBUS_KEY_slash, IBUS_KEY_D, 0x0110, --IBUS_KEY_slash, IBUS_KEY_G, 0x01E4, --IBUS_KEY_slash, IBUS_KEY_H, 0x0126, --IBUS_KEY_slash, IBUS_KEY_I, 0x0197, --IBUS_KEY_slash, IBUS_KEY_L, 0x0141, --IBUS_KEY_slash, IBUS_KEY_O, 0x00D8, --IBUS_KEY_slash, IBUS_KEY_T, 0x0166, --IBUS_KEY_slash, IBUS_KEY_Z, 0x01B5, --IBUS_KEY_slash, IBUS_KEY_asciicircum, 0x007C, --IBUS_KEY_slash, IBUS_KEY_b, 0x0180, --IBUS_KEY_slash, IBUS_KEY_c, 0x00A2, --IBUS_KEY_slash, IBUS_KEY_d, 0x0111, --IBUS_KEY_slash, IBUS_KEY_g, 0x01E5, --IBUS_KEY_slash, IBUS_KEY_h, 0x0127, --IBUS_KEY_slash, IBUS_KEY_i, 0x0268, --IBUS_KEY_slash, IBUS_KEY_l, 0x0142, --IBUS_KEY_slash, IBUS_KEY_m, 0x20A5, --IBUS_KEY_slash, IBUS_KEY_o, 0x00F8, --IBUS_KEY_slash, IBUS_KEY_t, 0x0167, --IBUS_KEY_slash, IBUS_KEY_u, 0x00B5, --IBUS_KEY_slash, IBUS_KEY_v, 0x221A, --IBUS_KEY_slash, IBUS_KEY_z, 0x01B6, --IBUS_KEY_slash, 0x0294, 0x02A1, --IBUS_KEY_slash, 0x04AE, 0x04B0, --IBUS_KEY_slash, 0x04AF, 0x04B1, --IBUS_KEY_slash, IBUS_KEY_Cyrillic_ghe, 0x0493, --IBUS_KEY_slash, IBUS_KEY_Cyrillic_ka, 0x049F, --IBUS_KEY_slash, IBUS_KEY_Cyrillic_GHE, 0x0492, --IBUS_KEY_slash, IBUS_KEY_Cyrillic_KA, 0x049E, --IBUS_KEY_slash, IBUS_KEY_leftarrow, 0x219A, --IBUS_KEY_slash, IBUS_KEY_rightarrow, 0x219B, --IBUS_KEY_slash, 0x2194, 0x21AE, --IBUS_KEY_slash, 0x2395, 0x2341, --IBUS_KEY_0, IBUS_KEY_asterisk, 0x00B0, --IBUS_KEY_0, IBUS_KEY_3, 0x2189, --IBUS_KEY_0, IBUS_KEY_asciitilde, 0x236C, --IBUS_KEY_1, IBUS_KEY_2, 0x00BD, --IBUS_KEY_1, IBUS_KEY_3, 0x2153, --IBUS_KEY_1, IBUS_KEY_4, 0x00BC, --IBUS_KEY_1, IBUS_KEY_5, 0x2155, --IBUS_KEY_1, IBUS_KEY_6, 0x2159, --IBUS_KEY_1, IBUS_KEY_7, 0x2150, --IBUS_KEY_1, IBUS_KEY_8, 0x215B, --IBUS_KEY_1, IBUS_KEY_9, 0x2151, --IBUS_KEY_1, IBUS_KEY_asciicircum, 0x00B9, --IBUS_KEY_2, IBUS_KEY_3, 0x2154, --IBUS_KEY_2, IBUS_KEY_5, 0x2156, --IBUS_KEY_2, IBUS_KEY_asciicircum, 0x00B2, --IBUS_KEY_3, IBUS_KEY_4, 0x00BE, --IBUS_KEY_3, IBUS_KEY_5, 0x2157, --IBUS_KEY_3, IBUS_KEY_8, 0x215C, --IBUS_KEY_3, IBUS_KEY_asciicircum, 0x00B3, --IBUS_KEY_4, IBUS_KEY_5, 0x2158, --IBUS_KEY_5, IBUS_KEY_6, 0x215A, --IBUS_KEY_5, IBUS_KEY_8, 0x215D, --IBUS_KEY_7, IBUS_KEY_8, 0x215E, --IBUS_KEY_8, IBUS_KEY_8, 0x221E, --IBUS_KEY_colon, IBUS_KEY_parenleft, 0x2639, --IBUS_KEY_colon, IBUS_KEY_parenright, 0x263A, --IBUS_KEY_colon, IBUS_KEY_minus, 0x00F7, --IBUS_KEY_colon, IBUS_KEY_period, 0x2234, --IBUS_KEY_colon, 0x2395, 0x2360, --IBUS_KEY_semicolon, IBUS_KEY_A, 0x0104, --IBUS_KEY_semicolon, IBUS_KEY_E, 0x0118, --IBUS_KEY_semicolon, IBUS_KEY_I, 0x012E, --IBUS_KEY_semicolon, IBUS_KEY_O, 0x01EA, --IBUS_KEY_semicolon, IBUS_KEY_S, 0x0218, --IBUS_KEY_semicolon, IBUS_KEY_T, 0x021A, --IBUS_KEY_semicolon, IBUS_KEY_U, 0x0172, --IBUS_KEY_semicolon, IBUS_KEY_underscore, 0x236E, --IBUS_KEY_semicolon, IBUS_KEY_a, 0x0105, --IBUS_KEY_semicolon, IBUS_KEY_e, 0x0119, --IBUS_KEY_semicolon, IBUS_KEY_i, 0x012F, --IBUS_KEY_semicolon, IBUS_KEY_o, 0x01EB, --IBUS_KEY_semicolon, IBUS_KEY_s, 0x0219, --IBUS_KEY_semicolon, IBUS_KEY_t, 0x021B, --IBUS_KEY_semicolon, IBUS_KEY_u, 0x0173, --IBUS_KEY_less, IBUS_KEY_space, 0x02C7, --IBUS_KEY_less, IBUS_KEY_quotedbl, 0x201C, --IBUS_KEY_less, IBUS_KEY_apostrophe, 0x2018, --IBUS_KEY_less, IBUS_KEY_minus, 0x2190, --IBUS_KEY_less, IBUS_KEY_slash, 0x005C, --IBUS_KEY_less, IBUS_KEY_3, 0x2665, --IBUS_KEY_less, IBUS_KEY_less, 0x00AB, --IBUS_KEY_less, IBUS_KEY_equal, 0x2264, --IBUS_KEY_less, IBUS_KEY_greater, 0x22C4, --IBUS_KEY_less, IBUS_KEY_C, 0x010C, --IBUS_KEY_less, IBUS_KEY_D, 0x010E, --IBUS_KEY_less, IBUS_KEY_E, 0x011A, --IBUS_KEY_less, IBUS_KEY_L, 0x013D, --IBUS_KEY_less, IBUS_KEY_N, 0x0147, --IBUS_KEY_less, IBUS_KEY_R, 0x0158, --IBUS_KEY_less, IBUS_KEY_S, 0x0160, --IBUS_KEY_less, IBUS_KEY_T, 0x0164, --IBUS_KEY_less, IBUS_KEY_Z, 0x017D, --IBUS_KEY_less, IBUS_KEY_underscore, 0x2264, --IBUS_KEY_less, IBUS_KEY_c, 0x010D, --IBUS_KEY_less, IBUS_KEY_d, 0x010F, --IBUS_KEY_less, IBUS_KEY_e, 0x011B, --IBUS_KEY_less, IBUS_KEY_l, 0x013E, --IBUS_KEY_less, IBUS_KEY_n, 0x0148, --IBUS_KEY_less, IBUS_KEY_r, 0x0159, --IBUS_KEY_less, IBUS_KEY_s, 0x0161, --IBUS_KEY_less, IBUS_KEY_t, 0x0165, --IBUS_KEY_less, IBUS_KEY_z, 0x017E, --IBUS_KEY_less, 0x0338, 0x226E, --IBUS_KEY_less, 0x2395, 0x2343, --IBUS_KEY_equal, IBUS_KEY_slash, 0x2260, --IBUS_KEY_equal, IBUS_KEY_greater, 0x21D2, --IBUS_KEY_equal, IBUS_KEY_C, 0x20AC, --IBUS_KEY_equal, IBUS_KEY_E, 0x20AC, --IBUS_KEY_equal, IBUS_KEY_L, 0x20A4, --IBUS_KEY_equal, IBUS_KEY_N, 0x20A6, --IBUS_KEY_equal, IBUS_KEY_O, 0x0150, --IBUS_KEY_equal, IBUS_KEY_U, 0x0170, --IBUS_KEY_equal, IBUS_KEY_W, 0x20A9, --IBUS_KEY_equal, IBUS_KEY_Y, 0x00A5, --IBUS_KEY_equal, IBUS_KEY_underscore, 0x2261, --IBUS_KEY_equal, IBUS_KEY_c, 0x20AC, --IBUS_KEY_equal, IBUS_KEY_d, 0x20AB, --IBUS_KEY_equal, IBUS_KEY_e, 0x20AC, --IBUS_KEY_equal, IBUS_KEY_o, 0x0151, --IBUS_KEY_equal, IBUS_KEY_u, 0x0171, --IBUS_KEY_equal, IBUS_KEY_y, 0x00A5, --IBUS_KEY_equal, 0x0338, 0x2260, --IBUS_KEY_equal, IBUS_KEY_Cyrillic_u, 0x04F3, --IBUS_KEY_equal, IBUS_KEY_Cyrillic_IE, 0x20AC, --IBUS_KEY_equal, IBUS_KEY_Cyrillic_ES, 0x20AC, --IBUS_KEY_equal, IBUS_KEY_Cyrillic_U, 0x04F2, --IBUS_KEY_equal, 0x2395, 0x2338, --IBUS_KEY_greater, IBUS_KEY_space, 0x005E, --IBUS_KEY_greater, IBUS_KEY_quotedbl, 0x201D, --IBUS_KEY_greater, IBUS_KEY_apostrophe, 0x2019, --IBUS_KEY_greater, IBUS_KEY_less, 0x22C4, --IBUS_KEY_greater, IBUS_KEY_equal, 0x2265, --IBUS_KEY_greater, IBUS_KEY_greater, 0x00BB, --IBUS_KEY_greater, IBUS_KEY_A, 0x00C2, --IBUS_KEY_greater, IBUS_KEY_E, 0x00CA, --IBUS_KEY_greater, IBUS_KEY_I, 0x00CE, --IBUS_KEY_greater, IBUS_KEY_O, 0x00D4, --IBUS_KEY_greater, IBUS_KEY_U, 0x00DB, --IBUS_KEY_greater, IBUS_KEY_underscore, 0x2265, --IBUS_KEY_greater, IBUS_KEY_a, 0x00E2, --IBUS_KEY_greater, IBUS_KEY_e, 0x00EA, --IBUS_KEY_greater, IBUS_KEY_i, 0x00EE, --IBUS_KEY_greater, IBUS_KEY_o, 0x00F4, --IBUS_KEY_greater, IBUS_KEY_u, 0x00FB, --IBUS_KEY_greater, IBUS_KEY_diaeresis, 0x2369, --IBUS_KEY_greater, 0x0338, 0x226F, --IBUS_KEY_greater, 0x2395, 0x2344, --IBUS_KEY_question, IBUS_KEY_exclam, 0x2E18, --IBUS_KEY_question, IBUS_KEY_question, 0x00BF, --IBUS_KEY_question, IBUS_KEY_A, 0x1EA2, --IBUS_KEY_question, IBUS_KEY_E, 0x1EBA, --IBUS_KEY_question, IBUS_KEY_I, 0x1EC8, --IBUS_KEY_question, IBUS_KEY_O, 0x1ECE, --IBUS_KEY_question, IBUS_KEY_U, 0x1EE6, --IBUS_KEY_question, IBUS_KEY_Y, 0x1EF6, --IBUS_KEY_question, IBUS_KEY_a, 0x1EA3, --IBUS_KEY_question, IBUS_KEY_e, 0x1EBB, --IBUS_KEY_question, IBUS_KEY_i, 0x1EC9, --IBUS_KEY_question, IBUS_KEY_o, 0x1ECF, --IBUS_KEY_question, IBUS_KEY_u, 0x1EE7, --IBUS_KEY_question, IBUS_KEY_y, 0x1EF7, --IBUS_KEY_question, IBUS_KEY_Acircumflex, 0x1EA8, --IBUS_KEY_question, IBUS_KEY_Ecircumflex, 0x1EC2, --IBUS_KEY_question, IBUS_KEY_Ocircumflex, 0x1ED4, --IBUS_KEY_question, IBUS_KEY_acircumflex, 0x1EA9, --IBUS_KEY_question, IBUS_KEY_ecircumflex, 0x1EC3, --IBUS_KEY_question, IBUS_KEY_ocircumflex, 0x1ED5, --IBUS_KEY_question, IBUS_KEY_Abreve, 0x1EB2, --IBUS_KEY_question, IBUS_KEY_abreve, 0x1EB3, --IBUS_KEY_question, 0x2395, 0x2370, --IBUS_KEY_A, IBUS_KEY_quotedbl, 0x00C4, --IBUS_KEY_A, IBUS_KEY_apostrophe, 0x00C1, --IBUS_KEY_A, IBUS_KEY_parenleft, 0x0102, --IBUS_KEY_A, IBUS_KEY_asterisk, 0x00C5, --IBUS_KEY_A, IBUS_KEY_comma, 0x0104, --IBUS_KEY_A, IBUS_KEY_minus, 0x0100, --IBUS_KEY_A, IBUS_KEY_semicolon, 0x0104, --IBUS_KEY_A, IBUS_KEY_greater, 0x00C2, --IBUS_KEY_A, IBUS_KEY_A, 0x00C5, --IBUS_KEY_A, IBUS_KEY_E, 0x00C6, --IBUS_KEY_A, IBUS_KEY_T, 0x0040, --IBUS_KEY_A, IBUS_KEY_asciicircum, 0x00C2, --IBUS_KEY_A, IBUS_KEY_underscore, 0x0100, --IBUS_KEY_A, IBUS_KEY_grave, 0x00C0, --IBUS_KEY_A, IBUS_KEY_asciitilde, 0x00C3, --IBUS_KEY_A, IBUS_KEY_diaeresis, 0x00C4, --IBUS_KEY_A, IBUS_KEY_acute, 0x00C1, --IBUS_KEY_B, IBUS_KEY_period, 0x1E02, --IBUS_KEY_C, IBUS_KEY_apostrophe, 0x0106, --IBUS_KEY_C, IBUS_KEY_comma, 0x00C7, --IBUS_KEY_C, IBUS_KEY_period, 0x010A, --IBUS_KEY_C, IBUS_KEY_slash, 0x20A1, --IBUS_KEY_C, IBUS_KEY_less, 0x010C, --IBUS_KEY_C, IBUS_KEY_equal, 0x20AC, --IBUS_KEY_C, IBUS_KEY_E, 0x20A0, --IBUS_KEY_C, IBUS_KEY_O, 0x00A9, --IBUS_KEY_C, IBUS_KEY_o, 0x00A9, --IBUS_KEY_C, IBUS_KEY_r, 0x20A2, --IBUS_KEY_C, IBUS_KEY_bar, 0x00A2, --IBUS_KEY_D, IBUS_KEY_comma, 0x1E10, --IBUS_KEY_D, IBUS_KEY_minus, 0x0110, --IBUS_KEY_D, IBUS_KEY_period, 0x1E0A, --IBUS_KEY_D, IBUS_KEY_less, 0x010E, --IBUS_KEY_D, IBUS_KEY_H, 0x00D0, --IBUS_KEY_E, IBUS_KEY_quotedbl, 0x00CB, --IBUS_KEY_E, IBUS_KEY_apostrophe, 0x00C9, --IBUS_KEY_E, IBUS_KEY_comma, 0x0118, --IBUS_KEY_E, IBUS_KEY_minus, 0x0112, --IBUS_KEY_E, IBUS_KEY_period, 0x0116, --IBUS_KEY_E, IBUS_KEY_semicolon, 0x0118, --IBUS_KEY_E, IBUS_KEY_less, 0x011A, --IBUS_KEY_E, IBUS_KEY_equal, 0x20AC, --IBUS_KEY_E, IBUS_KEY_greater, 0x00CA, --IBUS_KEY_E, IBUS_KEY_asciicircum, 0x00CA, --IBUS_KEY_E, IBUS_KEY_underscore, 0x0112, --IBUS_KEY_E, IBUS_KEY_grave, 0x00C8, --IBUS_KEY_E, IBUS_KEY_diaeresis, 0x00CB, --IBUS_KEY_E, IBUS_KEY_acute, 0x00C9, --IBUS_KEY_F, IBUS_KEY_period, 0x1E1E, --IBUS_KEY_F, IBUS_KEY_i, 0xFB03, --IBUS_KEY_F, IBUS_KEY_l, 0xFB04, --IBUS_KEY_F, IBUS_KEY_r, 0x20A3, --IBUS_KEY_G, IBUS_KEY_parenleft, 0x011E, --IBUS_KEY_G, IBUS_KEY_comma, 0x0122, --IBUS_KEY_G, IBUS_KEY_period, 0x0120, --IBUS_KEY_G, IBUS_KEY_U, 0x011E, --IBUS_KEY_G, IBUS_KEY_breve, 0x011E, --IBUS_KEY_H, IBUS_KEY_comma, 0x1E28, --IBUS_KEY_I, IBUS_KEY_quotedbl, 0x00CF, --IBUS_KEY_I, IBUS_KEY_apostrophe, 0x00CD, --IBUS_KEY_I, IBUS_KEY_comma, 0x012E, --IBUS_KEY_I, IBUS_KEY_minus, 0x012A, --IBUS_KEY_I, IBUS_KEY_period, 0x0130, --IBUS_KEY_I, IBUS_KEY_semicolon, 0x012E, --IBUS_KEY_I, IBUS_KEY_greater, 0x00CE, --IBUS_KEY_I, IBUS_KEY_J, 0x0132, --IBUS_KEY_I, IBUS_KEY_asciicircum, 0x00CE, --IBUS_KEY_I, IBUS_KEY_underscore, 0x012A, --IBUS_KEY_I, IBUS_KEY_grave, 0x00CC, --IBUS_KEY_I, IBUS_KEY_j, 0x0132, --IBUS_KEY_I, IBUS_KEY_asciitilde, 0x0128, --IBUS_KEY_I, IBUS_KEY_diaeresis, 0x00CF, --IBUS_KEY_I, IBUS_KEY_acute, 0x00CD, --IBUS_KEY_K, IBUS_KEY_comma, 0x0136, --IBUS_KEY_L, IBUS_KEY_apostrophe, 0x0139, --IBUS_KEY_L, IBUS_KEY_comma, 0x013B, --IBUS_KEY_L, IBUS_KEY_minus, 0x00A3, --IBUS_KEY_L, IBUS_KEY_slash, 0x0141, --IBUS_KEY_L, IBUS_KEY_less, 0x013D, --IBUS_KEY_L, IBUS_KEY_equal, 0x20A4, --IBUS_KEY_L, IBUS_KEY_V, 0x007C, --IBUS_KEY_M, IBUS_KEY_period, 0x1E40, --IBUS_KEY_N, IBUS_KEY_apostrophe, 0x0143, --IBUS_KEY_N, IBUS_KEY_comma, 0x0145, --IBUS_KEY_N, IBUS_KEY_less, 0x0147, --IBUS_KEY_N, IBUS_KEY_equal, 0x20A6, --IBUS_KEY_N, IBUS_KEY_G, 0x014A, --IBUS_KEY_N, IBUS_KEY_O, 0x2116, --IBUS_KEY_N, IBUS_KEY_o, 0x2116, --IBUS_KEY_N, IBUS_KEY_asciitilde, 0x00D1, --IBUS_KEY_O, IBUS_KEY_quotedbl, 0x00D6, --IBUS_KEY_O, IBUS_KEY_apostrophe, 0x00D3, --IBUS_KEY_O, IBUS_KEY_comma, 0x01EA, --IBUS_KEY_O, IBUS_KEY_minus, 0x014C, --IBUS_KEY_O, IBUS_KEY_slash, 0x00D8, --IBUS_KEY_O, IBUS_KEY_semicolon, 0x01EA, --IBUS_KEY_O, IBUS_KEY_greater, 0x00D4, --IBUS_KEY_O, IBUS_KEY_A, 0x24B6, --IBUS_KEY_O, IBUS_KEY_C, 0x00A9, --IBUS_KEY_O, IBUS_KEY_E, 0x0152, --IBUS_KEY_O, IBUS_KEY_R, 0x00AE, --IBUS_KEY_O, IBUS_KEY_S, 0x00A7, --IBUS_KEY_O, IBUS_KEY_X, 0x00A4, --IBUS_KEY_O, IBUS_KEY_asciicircum, 0x00D4, --IBUS_KEY_O, IBUS_KEY_underscore, 0x014C, --IBUS_KEY_O, IBUS_KEY_grave, 0x00D2, --IBUS_KEY_O, IBUS_KEY_c, 0x00A9, --IBUS_KEY_O, IBUS_KEY_r, 0x00AE, --IBUS_KEY_O, IBUS_KEY_x, 0x00A4, --IBUS_KEY_O, IBUS_KEY_asciitilde, 0x00D5, --IBUS_KEY_O, IBUS_KEY_diaeresis, 0x00D6, --IBUS_KEY_O, IBUS_KEY_acute, 0x00D3, --IBUS_KEY_P, IBUS_KEY_exclam, 0x00B6, --IBUS_KEY_P, IBUS_KEY_period, 0x1E56, --IBUS_KEY_P, IBUS_KEY_P, 0x00B6, --IBUS_KEY_P, IBUS_KEY_t, 0x20A7, --IBUS_KEY_R, IBUS_KEY_apostrophe, 0x0154, --IBUS_KEY_R, IBUS_KEY_comma, 0x0156, --IBUS_KEY_R, IBUS_KEY_less, 0x0158, --IBUS_KEY_R, IBUS_KEY_O, 0x00AE, --IBUS_KEY_R, IBUS_KEY_s, 0x20A8, --IBUS_KEY_S, IBUS_KEY_exclam, 0x00A7, --IBUS_KEY_S, IBUS_KEY_apostrophe, 0x015A, --IBUS_KEY_S, IBUS_KEY_comma, 0x015E, --IBUS_KEY_S, IBUS_KEY_period, 0x1E60, --IBUS_KEY_S, IBUS_KEY_semicolon, 0x0218, --IBUS_KEY_S, IBUS_KEY_less, 0x0160, --IBUS_KEY_S, IBUS_KEY_M, 0x2120, --IBUS_KEY_S, IBUS_KEY_O, 0x00A7, --IBUS_KEY_S, IBUS_KEY_S, 0x1E9E, --IBUS_KEY_S, IBUS_KEY_m, 0x2120, --IBUS_KEY_T, IBUS_KEY_comma, 0x0162, --IBUS_KEY_T, IBUS_KEY_minus, 0x0166, --IBUS_KEY_T, IBUS_KEY_period, 0x1E6A, --IBUS_KEY_T, IBUS_KEY_slash, 0x0166, --IBUS_KEY_T, IBUS_KEY_semicolon, 0x021A, --IBUS_KEY_T, IBUS_KEY_less, 0x0164, --IBUS_KEY_T, IBUS_KEY_H, 0x00DE, --IBUS_KEY_T, IBUS_KEY_M, 0x2122, --IBUS_KEY_T, IBUS_KEY_m, 0x2122, --IBUS_KEY_U, IBUS_KEY_quotedbl, 0x00DC, --IBUS_KEY_U, IBUS_KEY_apostrophe, 0x00DA, --IBUS_KEY_U, IBUS_KEY_asterisk, 0x016E, --IBUS_KEY_U, IBUS_KEY_comma, 0x0172, --IBUS_KEY_U, IBUS_KEY_minus, 0x016A, --IBUS_KEY_U, IBUS_KEY_semicolon, 0x0172, --IBUS_KEY_U, IBUS_KEY_greater, 0x00DB, --IBUS_KEY_U, IBUS_KEY_A, 0x0102, --IBUS_KEY_U, IBUS_KEY_E, 0x0114, --IBUS_KEY_U, IBUS_KEY_G, 0x011E, --IBUS_KEY_U, IBUS_KEY_I, 0x012C, --IBUS_KEY_U, IBUS_KEY_O, 0x014E, --IBUS_KEY_U, IBUS_KEY_U, 0x016C, --IBUS_KEY_U, IBUS_KEY_asciicircum, 0x00DB, --IBUS_KEY_U, IBUS_KEY_underscore, 0x016A, --IBUS_KEY_U, IBUS_KEY_grave, 0x00D9, --IBUS_KEY_U, IBUS_KEY_a, 0x0103, --IBUS_KEY_U, IBUS_KEY_e, 0x0115, --IBUS_KEY_U, IBUS_KEY_g, 0x011F, --IBUS_KEY_U, IBUS_KEY_i, 0x012D, --IBUS_KEY_U, IBUS_KEY_o, 0x014F, --IBUS_KEY_U, IBUS_KEY_u, 0x016D, --IBUS_KEY_U, IBUS_KEY_asciitilde, 0x0168, --IBUS_KEY_U, IBUS_KEY_diaeresis, 0x00DC, --IBUS_KEY_U, IBUS_KEY_acute, 0x00DA, --IBUS_KEY_U, 0x0228, 0x1E1C, --IBUS_KEY_U, 0x0229, 0x1E1D, --IBUS_KEY_U, IBUS_KEY_Cyrillic_a, 0x04D1, --IBUS_KEY_U, IBUS_KEY_Cyrillic_ie, 0x04D7, --IBUS_KEY_U, IBUS_KEY_Cyrillic_i, 0x0439, --IBUS_KEY_U, IBUS_KEY_Cyrillic_u, 0x045E, --IBUS_KEY_U, IBUS_KEY_Cyrillic_zhe, 0x04C2, --IBUS_KEY_U, IBUS_KEY_Cyrillic_A, 0x04D0, --IBUS_KEY_U, IBUS_KEY_Cyrillic_IE, 0x04D6, --IBUS_KEY_U, IBUS_KEY_Cyrillic_I, 0x0419, --IBUS_KEY_U, IBUS_KEY_Cyrillic_U, 0x040E, --IBUS_KEY_U, IBUS_KEY_Cyrillic_ZHE, 0x04C1, --IBUS_KEY_U, IBUS_KEY_Greek_ALPHA, 0x1FB8, --IBUS_KEY_U, IBUS_KEY_Greek_IOTA, 0x1FD8, --IBUS_KEY_U, IBUS_KEY_Greek_UPSILON, 0x1FE8, --IBUS_KEY_U, IBUS_KEY_Greek_alpha, 0x1FB0, --IBUS_KEY_U, IBUS_KEY_Greek_iota, 0x1FD0, --IBUS_KEY_U, IBUS_KEY_Greek_upsilon, 0x1FE0, --IBUS_KEY_U, 0x1EA0, 0x1EB6, --IBUS_KEY_U, 0x1EA1, 0x1EB7, --IBUS_KEY_V, IBUS_KEY_L, 0x007C, --IBUS_KEY_W, IBUS_KEY_equal, 0x20A9, --IBUS_KEY_W, IBUS_KEY_asciicircum, 0x0174, --IBUS_KEY_X, IBUS_KEY_O, 0x00A4, --IBUS_KEY_X, IBUS_KEY_o, 0x00A4, --IBUS_KEY_Y, IBUS_KEY_quotedbl, 0x0178, --IBUS_KEY_Y, IBUS_KEY_apostrophe, 0x00DD, --IBUS_KEY_Y, IBUS_KEY_minus, 0x00A5, --IBUS_KEY_Y, IBUS_KEY_equal, 0x00A5, --IBUS_KEY_Y, IBUS_KEY_asciicircum, 0x0176, --IBUS_KEY_Y, IBUS_KEY_diaeresis, 0x0178, --IBUS_KEY_Y, IBUS_KEY_acute, 0x00DD, --IBUS_KEY_Z, IBUS_KEY_apostrophe, 0x0179, --IBUS_KEY_Z, IBUS_KEY_period, 0x017B, --IBUS_KEY_Z, IBUS_KEY_less, 0x017D, --IBUS_KEY_bracketleft, IBUS_KEY_bracketright, 0x2337, --IBUS_KEY_backslash, IBUS_KEY_minus, 0x2340, --IBUS_KEY_backslash, 0x2395, 0x2342, --IBUS_KEY_backslash, IBUS_KEY_emopencircle, 0x2349, --IBUS_KEY_bracketright, IBUS_KEY_bracketleft, 0x2337, --IBUS_KEY_asciicircum, IBUS_KEY_space, 0x005E, --IBUS_KEY_asciicircum, IBUS_KEY_parenleft, 0x207D, --IBUS_KEY_asciicircum, IBUS_KEY_parenright, 0x207E, --IBUS_KEY_asciicircum, IBUS_KEY_plus, 0x207A, --IBUS_KEY_asciicircum, IBUS_KEY_minus, 0x00AF, --IBUS_KEY_asciicircum, IBUS_KEY_period, 0x00B7, --IBUS_KEY_asciicircum, IBUS_KEY_slash, 0x007C, --IBUS_KEY_asciicircum, IBUS_KEY_0, 0x2070, --IBUS_KEY_asciicircum, IBUS_KEY_1, 0x00B9, --IBUS_KEY_asciicircum, IBUS_KEY_2, 0x00B2, --IBUS_KEY_asciicircum, IBUS_KEY_3, 0x00B3, --IBUS_KEY_asciicircum, IBUS_KEY_4, 0x2074, --IBUS_KEY_asciicircum, IBUS_KEY_5, 0x2075, --IBUS_KEY_asciicircum, IBUS_KEY_6, 0x2076, --IBUS_KEY_asciicircum, IBUS_KEY_7, 0x2077, --IBUS_KEY_asciicircum, IBUS_KEY_8, 0x2078, --IBUS_KEY_asciicircum, IBUS_KEY_9, 0x2079, --IBUS_KEY_asciicircum, IBUS_KEY_equal, 0x207C, --IBUS_KEY_asciicircum, IBUS_KEY_A, 0x00C2, --IBUS_KEY_asciicircum, IBUS_KEY_C, 0x0108, --IBUS_KEY_asciicircum, IBUS_KEY_E, 0x00CA, --IBUS_KEY_asciicircum, IBUS_KEY_G, 0x011C, --IBUS_KEY_asciicircum, IBUS_KEY_H, 0x0124, --IBUS_KEY_asciicircum, IBUS_KEY_I, 0x00CE, --IBUS_KEY_asciicircum, IBUS_KEY_J, 0x0134, --IBUS_KEY_asciicircum, IBUS_KEY_O, 0x00D4, --IBUS_KEY_asciicircum, IBUS_KEY_S, 0x015C, --IBUS_KEY_asciicircum, IBUS_KEY_U, 0x00DB, --IBUS_KEY_asciicircum, IBUS_KEY_W, 0x0174, --IBUS_KEY_asciicircum, IBUS_KEY_Y, 0x0176, --IBUS_KEY_asciicircum, IBUS_KEY_Z, 0x1E90, --IBUS_KEY_asciicircum, IBUS_KEY_a, 0x00E2, --IBUS_KEY_asciicircum, IBUS_KEY_c, 0x0109, --IBUS_KEY_asciicircum, IBUS_KEY_e, 0x00EA, --IBUS_KEY_asciicircum, IBUS_KEY_g, 0x011D, --IBUS_KEY_asciicircum, IBUS_KEY_h, 0x0125, --IBUS_KEY_asciicircum, IBUS_KEY_i, 0x00EE, --IBUS_KEY_asciicircum, IBUS_KEY_j, 0x0135, --IBUS_KEY_asciicircum, IBUS_KEY_o, 0x00F4, --IBUS_KEY_asciicircum, IBUS_KEY_s, 0x015D, --IBUS_KEY_asciicircum, IBUS_KEY_u, 0x00FB, --IBUS_KEY_asciicircum, IBUS_KEY_w, 0x0175, --IBUS_KEY_asciicircum, IBUS_KEY_y, 0x0177, --IBUS_KEY_asciicircum, IBUS_KEY_z, 0x1E91, --IBUS_KEY_asciicircum, 0x1EA0, 0x1EAC, --IBUS_KEY_asciicircum, 0x1EA1, 0x1EAD, --IBUS_KEY_asciicircum, 0x1EB8, 0x1EC6, --IBUS_KEY_asciicircum, 0x1EB9, 0x1EC7, --IBUS_KEY_asciicircum, 0x1ECC, 0x1ED8, --IBUS_KEY_asciicircum, 0x1ECD, 0x1ED9, --IBUS_KEY_asciicircum, 0x2212, 0x207B, --IBUS_KEY_asciicircum, 0x4E00, 0x3192, --IBUS_KEY_asciicircum, 0x4E01, 0x319C, --IBUS_KEY_asciicircum, 0x4E09, 0x3194, --IBUS_KEY_asciicircum, 0x4E0A, 0x3196, --IBUS_KEY_asciicircum, 0x4E0B, 0x3198, --IBUS_KEY_asciicircum, 0x4E19, 0x319B, --IBUS_KEY_asciicircum, 0x4E2D, 0x3197, --IBUS_KEY_asciicircum, 0x4E59, 0x319A, --IBUS_KEY_asciicircum, 0x4E8C, 0x3193, --IBUS_KEY_asciicircum, 0x4EBA, 0x319F, --IBUS_KEY_asciicircum, 0x56DB, 0x3195, --IBUS_KEY_asciicircum, 0x5730, 0x319E, --IBUS_KEY_asciicircum, 0x5929, 0x319D, --IBUS_KEY_asciicircum, 0x7532, 0x3199, --IBUS_KEY_asciicircum, IBUS_KEY_KP_Space, 0x00B2, --IBUS_KEY_asciicircum, IBUS_KEY_KP_Add, 0x207A, --IBUS_KEY_asciicircum, IBUS_KEY_KP_0, 0x2070, --IBUS_KEY_asciicircum, IBUS_KEY_KP_1, 0x00B9, --IBUS_KEY_asciicircum, IBUS_KEY_KP_2, 0x00B2, --IBUS_KEY_asciicircum, IBUS_KEY_KP_3, 0x00B3, --IBUS_KEY_asciicircum, IBUS_KEY_KP_4, 0x2074, --IBUS_KEY_asciicircum, IBUS_KEY_KP_5, 0x2075, --IBUS_KEY_asciicircum, IBUS_KEY_KP_6, 0x2076, --IBUS_KEY_asciicircum, IBUS_KEY_KP_7, 0x2077, --IBUS_KEY_asciicircum, IBUS_KEY_KP_8, 0x2078, --IBUS_KEY_asciicircum, IBUS_KEY_KP_9, 0x2079, --IBUS_KEY_asciicircum, IBUS_KEY_KP_Equal, 0x207C, --IBUS_KEY_underscore, IBUS_KEY_apostrophe, 0x2358, --IBUS_KEY_underscore, IBUS_KEY_parenleft, 0x208D, --IBUS_KEY_underscore, IBUS_KEY_parenright, 0x208E, --IBUS_KEY_underscore, IBUS_KEY_plus, 0x208A, --IBUS_KEY_underscore, IBUS_KEY_0, 0x2080, --IBUS_KEY_underscore, IBUS_KEY_1, 0x2081, --IBUS_KEY_underscore, IBUS_KEY_2, 0x2082, --IBUS_KEY_underscore, IBUS_KEY_3, 0x2083, --IBUS_KEY_underscore, IBUS_KEY_4, 0x2084, --IBUS_KEY_underscore, IBUS_KEY_5, 0x2085, --IBUS_KEY_underscore, IBUS_KEY_6, 0x2086, --IBUS_KEY_underscore, IBUS_KEY_7, 0x2087, --IBUS_KEY_underscore, IBUS_KEY_8, 0x2088, --IBUS_KEY_underscore, IBUS_KEY_9, 0x2089, --IBUS_KEY_underscore, IBUS_KEY_less, 0x2264, --IBUS_KEY_underscore, IBUS_KEY_equal, 0x208C, --IBUS_KEY_underscore, IBUS_KEY_greater, 0x2265, --IBUS_KEY_underscore, IBUS_KEY_A, 0x0100, --IBUS_KEY_underscore, IBUS_KEY_E, 0x0112, --IBUS_KEY_underscore, IBUS_KEY_G, 0x1E20, --IBUS_KEY_underscore, IBUS_KEY_I, 0x012A, --IBUS_KEY_underscore, IBUS_KEY_O, 0x014C, --IBUS_KEY_underscore, IBUS_KEY_U, 0x016A, --IBUS_KEY_underscore, IBUS_KEY_Y, 0x0232, --IBUS_KEY_underscore, IBUS_KEY_asciicircum, 0x00AF, --IBUS_KEY_underscore, IBUS_KEY_underscore, 0x00AF, --IBUS_KEY_underscore, IBUS_KEY_a, 0x0101, --IBUS_KEY_underscore, IBUS_KEY_e, 0x0113, --IBUS_KEY_underscore, IBUS_KEY_g, 0x1E21, --IBUS_KEY_underscore, IBUS_KEY_i, 0x012B, --IBUS_KEY_underscore, IBUS_KEY_o, 0x014D, --IBUS_KEY_underscore, IBUS_KEY_u, 0x016B, --IBUS_KEY_underscore, IBUS_KEY_y, 0x0233, --IBUS_KEY_underscore, IBUS_KEY_Adiaeresis, 0x01DE, --IBUS_KEY_underscore, IBUS_KEY_AE, 0x01E2, --IBUS_KEY_underscore, IBUS_KEY_Otilde, 0x022C, --IBUS_KEY_underscore, IBUS_KEY_Odiaeresis, 0x022A, --IBUS_KEY_underscore, IBUS_KEY_Udiaeresis, 0x01D5, --IBUS_KEY_underscore, IBUS_KEY_adiaeresis, 0x01DF, --IBUS_KEY_underscore, IBUS_KEY_ae, 0x01E3, --IBUS_KEY_underscore, IBUS_KEY_otilde, 0x022D, --IBUS_KEY_underscore, IBUS_KEY_odiaeresis, 0x022B, --IBUS_KEY_underscore, IBUS_KEY_udiaeresis, 0x01D6, --IBUS_KEY_underscore, 0x01EA, 0x01EC, --IBUS_KEY_underscore, 0x01EB, 0x01ED, --IBUS_KEY_underscore, 0x0226, 0x01E0, --IBUS_KEY_underscore, 0x0227, 0x01E1, --IBUS_KEY_underscore, 0x022E, 0x0230, --IBUS_KEY_underscore, 0x022F, 0x0231, --IBUS_KEY_underscore, IBUS_KEY_Cyrillic_i, 0x04E3, --IBUS_KEY_underscore, IBUS_KEY_Cyrillic_u, 0x04EF, --IBUS_KEY_underscore, IBUS_KEY_Cyrillic_I, 0x04E2, --IBUS_KEY_underscore, IBUS_KEY_Cyrillic_U, 0x04EE, --IBUS_KEY_underscore, IBUS_KEY_Greek_ALPHA, 0x1FB9, --IBUS_KEY_underscore, IBUS_KEY_Greek_IOTA, 0x1FD9, --IBUS_KEY_underscore, IBUS_KEY_Greek_UPSILON, 0x1FE9, --IBUS_KEY_underscore, IBUS_KEY_Greek_alpha, 0x1FB1, --IBUS_KEY_underscore, IBUS_KEY_Greek_iota, 0x1FD1, --IBUS_KEY_underscore, IBUS_KEY_Greek_upsilon, 0x1FE1, --IBUS_KEY_underscore, 0x1E36, 0x1E38, --IBUS_KEY_underscore, 0x1E37, 0x1E39, --IBUS_KEY_underscore, 0x1E5A, 0x1E5C, --IBUS_KEY_underscore, 0x1E5B, 0x1E5D, --IBUS_KEY_underscore, 0x2206, 0x2359, --IBUS_KEY_underscore, 0x220A, 0x2377, --IBUS_KEY_underscore, 0x2212, 0x208B, --IBUS_KEY_underscore, 0x2218, 0x235B, --IBUS_KEY_underscore, 0x2260, 0x2262, --IBUS_KEY_underscore, 0x2282, 0x2286, --IBUS_KEY_underscore, 0x2283, 0x2287, --IBUS_KEY_underscore, IBUS_KEY_downtack, 0x234A, --IBUS_KEY_underscore, 0x22C4, 0x235A, --IBUS_KEY_underscore, 0x2373, 0x2378, --IBUS_KEY_underscore, 0x2375, 0x2379, --IBUS_KEY_underscore, 0x237A, 0x2376, --IBUS_KEY_underscore, IBUS_KEY_emopencircle, 0x235C, --IBUS_KEY_underscore, IBUS_KEY_KP_Space, 0x2082, --IBUS_KEY_underscore, IBUS_KEY_KP_Add, 0x208A, --IBUS_KEY_underscore, IBUS_KEY_KP_0, 0x2080, --IBUS_KEY_underscore, IBUS_KEY_KP_1, 0x2081, --IBUS_KEY_underscore, IBUS_KEY_KP_2, 0x2082, --IBUS_KEY_underscore, IBUS_KEY_KP_3, 0x2083, --IBUS_KEY_underscore, IBUS_KEY_KP_4, 0x2084, --IBUS_KEY_underscore, IBUS_KEY_KP_5, 0x2085, --IBUS_KEY_underscore, IBUS_KEY_KP_6, 0x2086, --IBUS_KEY_underscore, IBUS_KEY_KP_7, 0x2087, --IBUS_KEY_underscore, IBUS_KEY_KP_8, 0x2088, --IBUS_KEY_underscore, IBUS_KEY_KP_9, 0x2089, --IBUS_KEY_underscore, IBUS_KEY_KP_Equal, 0x208C, --IBUS_KEY_grave, IBUS_KEY_space, 0x0060, --IBUS_KEY_grave, IBUS_KEY_A, 0x00C0, --IBUS_KEY_grave, IBUS_KEY_E, 0x00C8, --IBUS_KEY_grave, IBUS_KEY_I, 0x00CC, --IBUS_KEY_grave, IBUS_KEY_N, 0x01F8, --IBUS_KEY_grave, IBUS_KEY_O, 0x00D2, --IBUS_KEY_grave, IBUS_KEY_U, 0x00D9, --IBUS_KEY_grave, IBUS_KEY_W, 0x1E80, --IBUS_KEY_grave, IBUS_KEY_Y, 0x1EF2, --IBUS_KEY_grave, IBUS_KEY_a, 0x00E0, --IBUS_KEY_grave, IBUS_KEY_e, 0x00E8, --IBUS_KEY_grave, IBUS_KEY_i, 0x00EC, --IBUS_KEY_grave, IBUS_KEY_n, 0x01F9, --IBUS_KEY_grave, IBUS_KEY_o, 0x00F2, --IBUS_KEY_grave, IBUS_KEY_u, 0x00F9, --IBUS_KEY_grave, IBUS_KEY_w, 0x1E81, --IBUS_KEY_grave, IBUS_KEY_y, 0x1EF3, --IBUS_KEY_grave, IBUS_KEY_Acircumflex, 0x1EA6, --IBUS_KEY_grave, IBUS_KEY_Ecircumflex, 0x1EC0, --IBUS_KEY_grave, IBUS_KEY_Ocircumflex, 0x1ED2, --IBUS_KEY_grave, IBUS_KEY_Udiaeresis, 0x01DB, --IBUS_KEY_grave, IBUS_KEY_acircumflex, 0x1EA7, --IBUS_KEY_grave, IBUS_KEY_ecircumflex, 0x1EC1, --IBUS_KEY_grave, IBUS_KEY_ocircumflex, 0x1ED3, --IBUS_KEY_grave, IBUS_KEY_udiaeresis, 0x01DC, --IBUS_KEY_grave, IBUS_KEY_Abreve, 0x1EB0, --IBUS_KEY_grave, IBUS_KEY_abreve, 0x1EB1, --IBUS_KEY_grave, IBUS_KEY_Emacron, 0x1E14, --IBUS_KEY_grave, IBUS_KEY_emacron, 0x1E15, --IBUS_KEY_grave, IBUS_KEY_Omacron, 0x1E50, --IBUS_KEY_grave, IBUS_KEY_omacron, 0x1E51, --IBUS_KEY_grave, IBUS_KEY_Cyrillic_ie, 0x0450, --IBUS_KEY_grave, IBUS_KEY_Cyrillic_i, 0x045D, --IBUS_KEY_grave, IBUS_KEY_Cyrillic_IE, 0x0400, --IBUS_KEY_grave, IBUS_KEY_Cyrillic_I, 0x040D, --IBUS_KEY_grave, IBUS_KEY_Greek_iotadieresis, 0x1FD2, --IBUS_KEY_grave, IBUS_KEY_Greek_upsilondieresis, 0x1FE2, --IBUS_KEY_grave, IBUS_KEY_Greek_ALPHA, 0x1FBA, --IBUS_KEY_grave, IBUS_KEY_Greek_EPSILON, 0x1FC8, --IBUS_KEY_grave, IBUS_KEY_Greek_ETA, 0x1FCA, --IBUS_KEY_grave, IBUS_KEY_Greek_IOTA, 0x1FDA, --IBUS_KEY_grave, IBUS_KEY_Greek_OMICRON, 0x1FF8, --IBUS_KEY_grave, IBUS_KEY_Greek_UPSILON, 0x1FEA, --IBUS_KEY_grave, IBUS_KEY_Greek_OMEGA, 0x1FFA, --IBUS_KEY_grave, IBUS_KEY_Greek_alpha, 0x1F70, --IBUS_KEY_grave, IBUS_KEY_Greek_epsilon, 0x1F72, --IBUS_KEY_grave, IBUS_KEY_Greek_eta, 0x1F74, --IBUS_KEY_grave, IBUS_KEY_Greek_iota, 0x1F76, --IBUS_KEY_grave, IBUS_KEY_Greek_omicron, 0x1F78, --IBUS_KEY_grave, IBUS_KEY_Greek_upsilon, 0x1F7A, --IBUS_KEY_grave, IBUS_KEY_Greek_omega, 0x1F7C, --IBUS_KEY_grave, 0x1F00, 0x1F02, --IBUS_KEY_grave, 0x1F01, 0x1F03, --IBUS_KEY_grave, 0x1F08, 0x1F0A, --IBUS_KEY_grave, 0x1F09, 0x1F0B, --IBUS_KEY_grave, 0x1F10, 0x1F12, --IBUS_KEY_grave, 0x1F11, 0x1F13, --IBUS_KEY_grave, 0x1F18, 0x1F1A, --IBUS_KEY_grave, 0x1F19, 0x1F1B, --IBUS_KEY_grave, 0x1F20, 0x1F22, --IBUS_KEY_grave, 0x1F21, 0x1F23, --IBUS_KEY_grave, 0x1F28, 0x1F2A, --IBUS_KEY_grave, 0x1F29, 0x1F2B, --IBUS_KEY_grave, 0x1F30, 0x1F32, --IBUS_KEY_grave, 0x1F31, 0x1F33, --IBUS_KEY_grave, 0x1F38, 0x1F3A, --IBUS_KEY_grave, 0x1F39, 0x1F3B, --IBUS_KEY_grave, 0x1F40, 0x1F42, --IBUS_KEY_grave, 0x1F41, 0x1F43, --IBUS_KEY_grave, 0x1F48, 0x1F4A, --IBUS_KEY_grave, 0x1F49, 0x1F4B, --IBUS_KEY_grave, 0x1F50, 0x1F52, --IBUS_KEY_grave, 0x1F51, 0x1F53, --IBUS_KEY_grave, 0x1F59, 0x1F5B, --IBUS_KEY_grave, 0x1F60, 0x1F62, --IBUS_KEY_grave, 0x1F61, 0x1F63, --IBUS_KEY_grave, 0x1F68, 0x1F6A, --IBUS_KEY_grave, 0x1F69, 0x1F6B, --IBUS_KEY_a, IBUS_KEY_quotedbl, 0x00E4, --IBUS_KEY_a, IBUS_KEY_apostrophe, 0x00E1, --IBUS_KEY_a, IBUS_KEY_parenleft, 0x0103, --IBUS_KEY_a, IBUS_KEY_asterisk, 0x00E5, --IBUS_KEY_a, IBUS_KEY_comma, 0x0105, --IBUS_KEY_a, IBUS_KEY_minus, 0x0101, --IBUS_KEY_a, IBUS_KEY_semicolon, 0x0105, --IBUS_KEY_a, IBUS_KEY_greater, 0x00E2, --IBUS_KEY_a, IBUS_KEY_asciicircum, 0x00E2, --IBUS_KEY_a, IBUS_KEY_underscore, 0x0101, --IBUS_KEY_a, IBUS_KEY_grave, 0x00E0, --IBUS_KEY_a, IBUS_KEY_a, 0x00E5, --IBUS_KEY_a, IBUS_KEY_e, 0x00E6, --IBUS_KEY_a, IBUS_KEY_asciitilde, 0x00E3, --IBUS_KEY_a, IBUS_KEY_diaeresis, 0x00E4, --IBUS_KEY_a, IBUS_KEY_acute, 0x00E1, --IBUS_KEY_b, IBUS_KEY_period, 0x1E03, --IBUS_KEY_b, IBUS_KEY_A, 0x0102, --IBUS_KEY_b, IBUS_KEY_E, 0x0114, --IBUS_KEY_b, IBUS_KEY_G, 0x011E, --IBUS_KEY_b, IBUS_KEY_I, 0x012C, --IBUS_KEY_b, IBUS_KEY_O, 0x014E, --IBUS_KEY_b, IBUS_KEY_U, 0x016C, --IBUS_KEY_b, IBUS_KEY_a, 0x0103, --IBUS_KEY_b, IBUS_KEY_e, 0x0115, --IBUS_KEY_b, IBUS_KEY_g, 0x011F, --IBUS_KEY_b, IBUS_KEY_i, 0x012D, --IBUS_KEY_b, IBUS_KEY_o, 0x014F, --IBUS_KEY_b, IBUS_KEY_u, 0x016D, --IBUS_KEY_b, 0x0228, 0x1E1C, --IBUS_KEY_b, 0x0229, 0x1E1D, --IBUS_KEY_b, IBUS_KEY_Cyrillic_a, 0x04D1, --IBUS_KEY_b, IBUS_KEY_Cyrillic_ie, 0x04D7, --IBUS_KEY_b, IBUS_KEY_Cyrillic_i, 0x0439, --IBUS_KEY_b, IBUS_KEY_Cyrillic_u, 0x045E, --IBUS_KEY_b, IBUS_KEY_Cyrillic_zhe, 0x04C2, --IBUS_KEY_b, IBUS_KEY_Cyrillic_A, 0x04D0, --IBUS_KEY_b, IBUS_KEY_Cyrillic_IE, 0x04D6, --IBUS_KEY_b, IBUS_KEY_Cyrillic_I, 0x0419, --IBUS_KEY_b, IBUS_KEY_Cyrillic_U, 0x040E, --IBUS_KEY_b, IBUS_KEY_Cyrillic_ZHE, 0x04C1, --IBUS_KEY_b, IBUS_KEY_Greek_ALPHA, 0x1FB8, --IBUS_KEY_b, IBUS_KEY_Greek_IOTA, 0x1FD8, --IBUS_KEY_b, IBUS_KEY_Greek_UPSILON, 0x1FE8, --IBUS_KEY_b, IBUS_KEY_Greek_alpha, 0x1FB0, --IBUS_KEY_b, IBUS_KEY_Greek_iota, 0x1FD0, --IBUS_KEY_b, IBUS_KEY_Greek_upsilon, 0x1FE0, --IBUS_KEY_b, 0x1EA0, 0x1EB6, --IBUS_KEY_b, 0x1EA1, 0x1EB7, --IBUS_KEY_c, IBUS_KEY_apostrophe, 0x0107, --IBUS_KEY_c, IBUS_KEY_comma, 0x00E7, --IBUS_KEY_c, IBUS_KEY_period, 0x010B, --IBUS_KEY_c, IBUS_KEY_slash, 0x00A2, --IBUS_KEY_c, IBUS_KEY_less, 0x010D, --IBUS_KEY_c, IBUS_KEY_equal, 0x20AC, --IBUS_KEY_c, IBUS_KEY_A, 0x01CD, --IBUS_KEY_c, IBUS_KEY_C, 0x010C, --IBUS_KEY_c, IBUS_KEY_D, 0x010E, --IBUS_KEY_c, IBUS_KEY_E, 0x011A, --IBUS_KEY_c, IBUS_KEY_G, 0x01E6, --IBUS_KEY_c, IBUS_KEY_H, 0x021E, --IBUS_KEY_c, IBUS_KEY_I, 0x01CF, --IBUS_KEY_c, IBUS_KEY_K, 0x01E8, --IBUS_KEY_c, IBUS_KEY_L, 0x013D, --IBUS_KEY_c, IBUS_KEY_N, 0x0147, --IBUS_KEY_c, IBUS_KEY_O, 0x01D1, --IBUS_KEY_c, IBUS_KEY_R, 0x0158, --IBUS_KEY_c, IBUS_KEY_S, 0x0160, --IBUS_KEY_c, IBUS_KEY_T, 0x0164, --IBUS_KEY_c, IBUS_KEY_U, 0x01D3, --IBUS_KEY_c, IBUS_KEY_Z, 0x017D, --IBUS_KEY_c, IBUS_KEY_a, 0x01CE, --IBUS_KEY_c, IBUS_KEY_c, 0x010D, --IBUS_KEY_c, IBUS_KEY_d, 0x010F, --IBUS_KEY_c, IBUS_KEY_e, 0x011B, --IBUS_KEY_c, IBUS_KEY_g, 0x01E7, --IBUS_KEY_c, IBUS_KEY_h, 0x021F, --IBUS_KEY_c, IBUS_KEY_i, 0x01D0, --IBUS_KEY_c, IBUS_KEY_j, 0x01F0, --IBUS_KEY_c, IBUS_KEY_k, 0x01E9, --IBUS_KEY_c, IBUS_KEY_l, 0x013E, --IBUS_KEY_c, IBUS_KEY_n, 0x0148, --IBUS_KEY_c, IBUS_KEY_o, 0x01D2, --IBUS_KEY_c, IBUS_KEY_r, 0x0159, --IBUS_KEY_c, IBUS_KEY_s, 0x0161, --IBUS_KEY_c, IBUS_KEY_t, 0x0165, --IBUS_KEY_c, IBUS_KEY_u, 0x01D4, --IBUS_KEY_c, IBUS_KEY_z, 0x017E, --IBUS_KEY_c, IBUS_KEY_bar, 0x00A2, --IBUS_KEY_c, IBUS_KEY_Udiaeresis, 0x01D9, --IBUS_KEY_c, IBUS_KEY_udiaeresis, 0x01DA, --IBUS_KEY_d, IBUS_KEY_comma, 0x1E11, --IBUS_KEY_d, IBUS_KEY_minus, 0x0111, --IBUS_KEY_d, IBUS_KEY_period, 0x1E0B, --IBUS_KEY_d, IBUS_KEY_less, 0x010F, --IBUS_KEY_d, IBUS_KEY_equal, 0x20AB, --IBUS_KEY_d, IBUS_KEY_h, 0x00F0, --IBUS_KEY_d, IBUS_KEY_i, 0x2300, --IBUS_KEY_e, IBUS_KEY_quotedbl, 0x00EB, --IBUS_KEY_e, IBUS_KEY_apostrophe, 0x00E9, --IBUS_KEY_e, IBUS_KEY_comma, 0x0119, --IBUS_KEY_e, IBUS_KEY_minus, 0x0113, --IBUS_KEY_e, IBUS_KEY_period, 0x0117, --IBUS_KEY_e, IBUS_KEY_semicolon, 0x0119, --IBUS_KEY_e, IBUS_KEY_less, 0x011B, --IBUS_KEY_e, IBUS_KEY_equal, 0x20AC, --IBUS_KEY_e, IBUS_KEY_greater, 0x00EA, --IBUS_KEY_e, IBUS_KEY_asciicircum, 0x00EA, --IBUS_KEY_e, IBUS_KEY_underscore, 0x0113, --IBUS_KEY_e, IBUS_KEY_grave, 0x00E8, --IBUS_KEY_e, IBUS_KEY_e, 0x0259, --IBUS_KEY_e, IBUS_KEY_diaeresis, 0x00EB, --IBUS_KEY_e, IBUS_KEY_acute, 0x00E9, --IBUS_KEY_f, IBUS_KEY_period, 0x1E1F, --IBUS_KEY_f, IBUS_KEY_S, 0x017F, --IBUS_KEY_f, IBUS_KEY_f, 0xFB00, --IBUS_KEY_f, IBUS_KEY_i, 0xFB01, --IBUS_KEY_f, IBUS_KEY_l, 0xFB02, --IBUS_KEY_f, IBUS_KEY_s, 0x017F, --IBUS_KEY_g, IBUS_KEY_parenleft, 0x011F, --IBUS_KEY_g, IBUS_KEY_comma, 0x0123, --IBUS_KEY_g, IBUS_KEY_period, 0x0121, --IBUS_KEY_g, IBUS_KEY_U, 0x011F, --IBUS_KEY_g, IBUS_KEY_breve, 0x011F, --IBUS_KEY_h, IBUS_KEY_comma, 0x1E29, --IBUS_KEY_i, IBUS_KEY_quotedbl, 0x00EF, --IBUS_KEY_i, IBUS_KEY_apostrophe, 0x00ED, --IBUS_KEY_i, IBUS_KEY_comma, 0x012F, --IBUS_KEY_i, IBUS_KEY_minus, 0x012B, --IBUS_KEY_i, IBUS_KEY_period, 0x0131, --IBUS_KEY_i, IBUS_KEY_semicolon, 0x012F, --IBUS_KEY_i, IBUS_KEY_greater, 0x00EE, --IBUS_KEY_i, IBUS_KEY_asciicircum, 0x00EE, --IBUS_KEY_i, IBUS_KEY_underscore, 0x012B, --IBUS_KEY_i, IBUS_KEY_grave, 0x00EC, --IBUS_KEY_i, IBUS_KEY_j, 0x0133, --IBUS_KEY_i, IBUS_KEY_asciitilde, 0x0129, --IBUS_KEY_i, IBUS_KEY_diaeresis, 0x00EF, --IBUS_KEY_i, IBUS_KEY_acute, 0x00ED, --IBUS_KEY_k, IBUS_KEY_comma, 0x0137, --IBUS_KEY_k, IBUS_KEY_k, 0x0138, --IBUS_KEY_l, IBUS_KEY_apostrophe, 0x013A, --IBUS_KEY_l, IBUS_KEY_comma, 0x013C, --IBUS_KEY_l, IBUS_KEY_minus, 0x00A3, --IBUS_KEY_l, IBUS_KEY_slash, 0x0142, --IBUS_KEY_l, IBUS_KEY_less, 0x013E, --IBUS_KEY_l, IBUS_KEY_v, 0x007C, --IBUS_KEY_m, IBUS_KEY_period, 0x1E41, --IBUS_KEY_m, IBUS_KEY_slash, 0x20A5, --IBUS_KEY_m, IBUS_KEY_u, 0x00B5, --IBUS_KEY_n, IBUS_KEY_apostrophe, 0x0144, --IBUS_KEY_n, IBUS_KEY_comma, 0x0146, --IBUS_KEY_n, IBUS_KEY_less, 0x0148, --IBUS_KEY_n, IBUS_KEY_g, 0x014B, --IBUS_KEY_n, IBUS_KEY_asciitilde, 0x00F1, --IBUS_KEY_o, IBUS_KEY_quotedbl, 0x00F6, --IBUS_KEY_o, IBUS_KEY_apostrophe, 0x00F3, --IBUS_KEY_o, IBUS_KEY_comma, 0x01EB, --IBUS_KEY_o, IBUS_KEY_minus, 0x014D, --IBUS_KEY_o, IBUS_KEY_slash, 0x00F8, --IBUS_KEY_o, IBUS_KEY_semicolon, 0x01EB, --IBUS_KEY_o, IBUS_KEY_greater, 0x00F4, --IBUS_KEY_o, IBUS_KEY_A, 0x00C5, --IBUS_KEY_o, IBUS_KEY_C, 0x00A9, --IBUS_KEY_o, IBUS_KEY_R, 0x00AE, --IBUS_KEY_o, IBUS_KEY_U, 0x016E, --IBUS_KEY_o, IBUS_KEY_X, 0x00A4, --IBUS_KEY_o, IBUS_KEY_asciicircum, 0x00F4, --IBUS_KEY_o, IBUS_KEY_underscore, 0x014D, --IBUS_KEY_o, IBUS_KEY_grave, 0x00F2, --IBUS_KEY_o, IBUS_KEY_a, 0x00E5, --IBUS_KEY_o, IBUS_KEY_c, 0x00A9, --IBUS_KEY_o, IBUS_KEY_e, 0x0153, --IBUS_KEY_o, IBUS_KEY_o, 0x00B0, --IBUS_KEY_o, IBUS_KEY_r, 0x00AE, --IBUS_KEY_o, IBUS_KEY_s, 0x00A7, --IBUS_KEY_o, IBUS_KEY_u, 0x016F, --IBUS_KEY_o, IBUS_KEY_w, 0x1E98, --IBUS_KEY_o, IBUS_KEY_x, 0x00A4, --IBUS_KEY_o, IBUS_KEY_y, 0x1E99, --IBUS_KEY_o, IBUS_KEY_asciitilde, 0x00F5, --IBUS_KEY_o, IBUS_KEY_diaeresis, 0x00F6, --IBUS_KEY_o, IBUS_KEY_acute, 0x00F3, --IBUS_KEY_p, IBUS_KEY_exclam, 0x00B6, --IBUS_KEY_p, IBUS_KEY_period, 0x1E57, --IBUS_KEY_r, IBUS_KEY_apostrophe, 0x0155, --IBUS_KEY_r, IBUS_KEY_comma, 0x0157, --IBUS_KEY_r, IBUS_KEY_less, 0x0159, --IBUS_KEY_s, IBUS_KEY_exclam, 0x00A7, --IBUS_KEY_s, IBUS_KEY_apostrophe, 0x015B, --IBUS_KEY_s, IBUS_KEY_comma, 0x015F, --IBUS_KEY_s, IBUS_KEY_period, 0x1E61, --IBUS_KEY_s, IBUS_KEY_semicolon, 0x0219, --IBUS_KEY_s, IBUS_KEY_less, 0x0161, --IBUS_KEY_s, IBUS_KEY_M, 0x2120, --IBUS_KEY_s, IBUS_KEY_m, 0x2120, --IBUS_KEY_s, IBUS_KEY_o, 0x00A7, --IBUS_KEY_s, IBUS_KEY_s, 0x00DF, --IBUS_KEY_s, IBUS_KEY_cedilla, 0x015F, --IBUS_KEY_t, IBUS_KEY_comma, 0x0163, --IBUS_KEY_t, IBUS_KEY_minus, 0x0167, --IBUS_KEY_t, IBUS_KEY_period, 0x1E6B, --IBUS_KEY_t, IBUS_KEY_slash, 0x0167, --IBUS_KEY_t, IBUS_KEY_semicolon, 0x021B, --IBUS_KEY_t, IBUS_KEY_less, 0x0165, --IBUS_KEY_t, IBUS_KEY_M, 0x2122, --IBUS_KEY_t, IBUS_KEY_h, 0x00FE, --IBUS_KEY_t, IBUS_KEY_m, 0x2122, --IBUS_KEY_u, IBUS_KEY_quotedbl, 0x00FC, --IBUS_KEY_u, IBUS_KEY_apostrophe, 0x00FA, --IBUS_KEY_u, IBUS_KEY_asterisk, 0x016F, --IBUS_KEY_u, IBUS_KEY_comma, 0x0173, --IBUS_KEY_u, IBUS_KEY_minus, 0x016B, --IBUS_KEY_u, IBUS_KEY_slash, 0x00B5, --IBUS_KEY_u, IBUS_KEY_semicolon, 0x0173, --IBUS_KEY_u, IBUS_KEY_greater, 0x00FB, --IBUS_KEY_u, IBUS_KEY_A, 0x0102, --IBUS_KEY_u, IBUS_KEY_U, 0x016C, --IBUS_KEY_u, IBUS_KEY_asciicircum, 0x00FB, --IBUS_KEY_u, IBUS_KEY_underscore, 0x016B, --IBUS_KEY_u, IBUS_KEY_grave, 0x00F9, --IBUS_KEY_u, IBUS_KEY_a, 0x0103, --IBUS_KEY_u, IBUS_KEY_u, 0x016D, --IBUS_KEY_u, IBUS_KEY_asciitilde, 0x0169, --IBUS_KEY_u, IBUS_KEY_diaeresis, 0x00FC, --IBUS_KEY_u, IBUS_KEY_acute, 0x00FA, --IBUS_KEY_v, IBUS_KEY_slash, 0x221A, --IBUS_KEY_v, IBUS_KEY_Z, 0x017D, --IBUS_KEY_v, IBUS_KEY_l, 0x007C, --IBUS_KEY_v, IBUS_KEY_z, 0x017E, --IBUS_KEY_w, IBUS_KEY_asciicircum, 0x0175, --IBUS_KEY_x, IBUS_KEY_O, 0x00A4, --IBUS_KEY_x, IBUS_KEY_o, 0x00A4, --IBUS_KEY_x, IBUS_KEY_x, 0x00D7, --IBUS_KEY_y, IBUS_KEY_quotedbl, 0x00FF, --IBUS_KEY_y, IBUS_KEY_apostrophe, 0x00FD, --IBUS_KEY_y, IBUS_KEY_minus, 0x00A5, --IBUS_KEY_y, IBUS_KEY_equal, 0x00A5, --IBUS_KEY_y, IBUS_KEY_asciicircum, 0x0177, --IBUS_KEY_y, IBUS_KEY_diaeresis, 0x00FF, --IBUS_KEY_y, IBUS_KEY_acute, 0x00FD, --IBUS_KEY_z, IBUS_KEY_apostrophe, 0x017A, --IBUS_KEY_z, IBUS_KEY_period, 0x017C, --IBUS_KEY_z, IBUS_KEY_less, 0x017E, --IBUS_KEY_braceleft, IBUS_KEY_braceright, 0x2205, --IBUS_KEY_bar, IBUS_KEY_C, 0x00A2, --IBUS_KEY_bar, IBUS_KEY_c, 0x00A2, --IBUS_KEY_bar, IBUS_KEY_asciitilde, 0x236D, --IBUS_KEY_bar, 0x2190, 0x2345, --IBUS_KEY_bar, 0x2192, 0x2346, --IBUS_KEY_bar, 0x2206, 0x234B, --IBUS_KEY_bar, 0x2207, 0x2352, --IBUS_KEY_bar, IBUS_KEY_union, 0x2366, --IBUS_KEY_bar, 0x2282, 0x2367, --IBUS_KEY_bar, IBUS_KEY_emopencircle, 0x233D, --IBUS_KEY_asciitilde, IBUS_KEY_space, 0x007E, --IBUS_KEY_asciitilde, IBUS_KEY_0, 0x236C, --IBUS_KEY_asciitilde, IBUS_KEY_A, 0x00C3, --IBUS_KEY_asciitilde, IBUS_KEY_E, 0x1EBC, --IBUS_KEY_asciitilde, IBUS_KEY_I, 0x0128, --IBUS_KEY_asciitilde, IBUS_KEY_N, 0x00D1, --IBUS_KEY_asciitilde, IBUS_KEY_O, 0x00D5, --IBUS_KEY_asciitilde, IBUS_KEY_U, 0x0168, --IBUS_KEY_asciitilde, IBUS_KEY_V, 0x1E7C, --IBUS_KEY_asciitilde, IBUS_KEY_Y, 0x1EF8, --IBUS_KEY_asciitilde, IBUS_KEY_a, 0x00E3, --IBUS_KEY_asciitilde, IBUS_KEY_e, 0x1EBD, --IBUS_KEY_asciitilde, IBUS_KEY_i, 0x0129, --IBUS_KEY_asciitilde, IBUS_KEY_n, 0x00F1, --IBUS_KEY_asciitilde, IBUS_KEY_o, 0x00F5, --IBUS_KEY_asciitilde, IBUS_KEY_u, 0x0169, --IBUS_KEY_asciitilde, IBUS_KEY_v, 0x1E7D, --IBUS_KEY_asciitilde, IBUS_KEY_y, 0x1EF9, --IBUS_KEY_asciitilde, IBUS_KEY_bar, 0x236D, --IBUS_KEY_asciitilde, IBUS_KEY_diaeresis, 0x2368, --IBUS_KEY_asciitilde, IBUS_KEY_Acircumflex, 0x1EAA, --IBUS_KEY_asciitilde, IBUS_KEY_Ecircumflex, 0x1EC4, --IBUS_KEY_asciitilde, IBUS_KEY_Ocircumflex, 0x1ED6, --IBUS_KEY_asciitilde, IBUS_KEY_acircumflex, 0x1EAB, --IBUS_KEY_asciitilde, IBUS_KEY_ecircumflex, 0x1EC5, --IBUS_KEY_asciitilde, IBUS_KEY_ocircumflex, 0x1ED7, --IBUS_KEY_asciitilde, IBUS_KEY_Abreve, 0x1EB4, --IBUS_KEY_asciitilde, IBUS_KEY_abreve, 0x1EB5, --IBUS_KEY_asciitilde, IBUS_KEY_Greek_iotadieresis, 0x1FD7, --IBUS_KEY_asciitilde, IBUS_KEY_Greek_upsilondieresis, 0x1FE7, --IBUS_KEY_asciitilde, IBUS_KEY_Greek_alpha, 0x1FB6, --IBUS_KEY_asciitilde, IBUS_KEY_Greek_eta, 0x1FC6, --IBUS_KEY_asciitilde, IBUS_KEY_Greek_iota, 0x1FD6, --IBUS_KEY_asciitilde, IBUS_KEY_Greek_upsilon, 0x1FE6, --IBUS_KEY_asciitilde, IBUS_KEY_Greek_omega, 0x1FF6, --IBUS_KEY_asciitilde, 0x1F00, 0x1F06, --IBUS_KEY_asciitilde, 0x1F01, 0x1F07, --IBUS_KEY_asciitilde, 0x1F08, 0x1F0E, --IBUS_KEY_asciitilde, 0x1F09, 0x1F0F, --IBUS_KEY_asciitilde, 0x1F20, 0x1F26, --IBUS_KEY_asciitilde, 0x1F21, 0x1F27, --IBUS_KEY_asciitilde, 0x1F28, 0x1F2E, --IBUS_KEY_asciitilde, 0x1F29, 0x1F2F, --IBUS_KEY_asciitilde, 0x1F30, 0x1F36, --IBUS_KEY_asciitilde, 0x1F31, 0x1F37, --IBUS_KEY_asciitilde, 0x1F38, 0x1F3E, --IBUS_KEY_asciitilde, 0x1F39, 0x1F3F, --IBUS_KEY_asciitilde, 0x1F50, 0x1F56, --IBUS_KEY_asciitilde, 0x1F51, 0x1F57, --IBUS_KEY_asciitilde, 0x1F59, 0x1F5F, --IBUS_KEY_asciitilde, 0x1F60, 0x1F66, --IBUS_KEY_asciitilde, 0x1F61, 0x1F67, --IBUS_KEY_asciitilde, 0x1F68, 0x1F6E, --IBUS_KEY_asciitilde, 0x1F69, 0x1F6F, --IBUS_KEY_asciitilde, 0x2207, 0x236B, --IBUS_KEY_asciitilde, 0x2227, 0x2372, --IBUS_KEY_asciitilde, 0x2228, 0x2371, --IBUS_KEY_diaeresis, IBUS_KEY_apostrophe, 0x0385, --IBUS_KEY_diaeresis, IBUS_KEY_asterisk, 0x2363, --IBUS_KEY_diaeresis, IBUS_KEY_greater, 0x2369, --IBUS_KEY_diaeresis, IBUS_KEY_A, 0x00C4, --IBUS_KEY_diaeresis, IBUS_KEY_E, 0x00CB, --IBUS_KEY_diaeresis, IBUS_KEY_I, 0x00CF, --IBUS_KEY_diaeresis, IBUS_KEY_O, 0x00D6, --IBUS_KEY_diaeresis, IBUS_KEY_U, 0x00DC, --IBUS_KEY_diaeresis, IBUS_KEY_Y, 0x0178, --IBUS_KEY_diaeresis, IBUS_KEY_grave, 0x1FED, --IBUS_KEY_diaeresis, IBUS_KEY_a, 0x00E4, --IBUS_KEY_diaeresis, IBUS_KEY_e, 0x00EB, --IBUS_KEY_diaeresis, IBUS_KEY_i, 0x00EF, --IBUS_KEY_diaeresis, IBUS_KEY_o, 0x00F6, --IBUS_KEY_diaeresis, IBUS_KEY_u, 0x00FC, --IBUS_KEY_diaeresis, IBUS_KEY_y, 0x00FF, --IBUS_KEY_diaeresis, IBUS_KEY_asciitilde, 0x1FC1, --IBUS_KEY_diaeresis, IBUS_KEY_acute, 0x0385, --IBUS_KEY_diaeresis, 0x2207, 0x2362, --IBUS_KEY_diaeresis, 0x2218, 0x2364, --IBUS_KEY_diaeresis, IBUS_KEY_uptack, 0x2361, --IBUS_KEY_diaeresis, IBUS_KEY_emopencircle, 0x2365, --IBUS_KEY_diaeresis, IBUS_KEY_dead_grave, 0x1FED, --IBUS_KEY_diaeresis, IBUS_KEY_dead_acute, 0x0385, --IBUS_KEY_diaeresis, IBUS_KEY_dead_tilde, 0x1FC1, --IBUS_KEY_macron, IBUS_KEY_A, 0x0100, --IBUS_KEY_macron, IBUS_KEY_E, 0x0112, --IBUS_KEY_macron, IBUS_KEY_G, 0x1E20, --IBUS_KEY_macron, IBUS_KEY_I, 0x012A, --IBUS_KEY_macron, IBUS_KEY_O, 0x014C, --IBUS_KEY_macron, IBUS_KEY_U, 0x016A, --IBUS_KEY_macron, IBUS_KEY_Y, 0x0232, --IBUS_KEY_macron, IBUS_KEY_a, 0x0101, --IBUS_KEY_macron, IBUS_KEY_e, 0x0113, --IBUS_KEY_macron, IBUS_KEY_g, 0x1E21, --IBUS_KEY_macron, IBUS_KEY_i, 0x012B, --IBUS_KEY_macron, IBUS_KEY_o, 0x014D, --IBUS_KEY_macron, IBUS_KEY_u, 0x016B, --IBUS_KEY_macron, IBUS_KEY_y, 0x0233, --IBUS_KEY_macron, IBUS_KEY_Adiaeresis, 0x01DE, --IBUS_KEY_macron, IBUS_KEY_AE, 0x01E2, --IBUS_KEY_macron, IBUS_KEY_Otilde, 0x022C, --IBUS_KEY_macron, IBUS_KEY_Odiaeresis, 0x022A, --IBUS_KEY_macron, IBUS_KEY_Udiaeresis, 0x01D5, --IBUS_KEY_macron, IBUS_KEY_adiaeresis, 0x01DF, --IBUS_KEY_macron, IBUS_KEY_ae, 0x01E3, --IBUS_KEY_macron, IBUS_KEY_otilde, 0x022D, --IBUS_KEY_macron, IBUS_KEY_odiaeresis, 0x022B, --IBUS_KEY_macron, IBUS_KEY_udiaeresis, 0x01D6, --IBUS_KEY_macron, 0x01EA, 0x01EC, --IBUS_KEY_macron, 0x01EB, 0x01ED, --IBUS_KEY_macron, 0x0226, 0x01E0, --IBUS_KEY_macron, 0x0227, 0x01E1, --IBUS_KEY_macron, 0x022E, 0x0230, --IBUS_KEY_macron, 0x022F, 0x0231, --IBUS_KEY_macron, IBUS_KEY_Cyrillic_i, 0x04E3, --IBUS_KEY_macron, IBUS_KEY_Cyrillic_u, 0x04EF, --IBUS_KEY_macron, IBUS_KEY_Cyrillic_I, 0x04E2, --IBUS_KEY_macron, IBUS_KEY_Cyrillic_U, 0x04EE, --IBUS_KEY_macron, IBUS_KEY_Greek_ALPHA, 0x1FB9, --IBUS_KEY_macron, IBUS_KEY_Greek_IOTA, 0x1FD9, --IBUS_KEY_macron, IBUS_KEY_Greek_UPSILON, 0x1FE9, --IBUS_KEY_macron, IBUS_KEY_Greek_alpha, 0x1FB1, --IBUS_KEY_macron, IBUS_KEY_Greek_iota, 0x1FD1, --IBUS_KEY_macron, IBUS_KEY_Greek_upsilon, 0x1FE1, --IBUS_KEY_macron, 0x1E36, 0x1E38, --IBUS_KEY_macron, 0x1E37, 0x1E39, --IBUS_KEY_macron, 0x1E5A, 0x1E5C, --IBUS_KEY_macron, 0x1E5B, 0x1E5D, --IBUS_KEY_macron, IBUS_KEY_uptack, 0x2351, --IBUS_KEY_acute, IBUS_KEY_A, 0x00C1, --IBUS_KEY_acute, IBUS_KEY_C, 0x0106, --IBUS_KEY_acute, IBUS_KEY_E, 0x00C9, --IBUS_KEY_acute, IBUS_KEY_G, 0x01F4, --IBUS_KEY_acute, IBUS_KEY_I, 0x00CD, --IBUS_KEY_acute, IBUS_KEY_K, 0x1E30, --IBUS_KEY_acute, IBUS_KEY_L, 0x0139, --IBUS_KEY_acute, IBUS_KEY_M, 0x1E3E, --IBUS_KEY_acute, IBUS_KEY_N, 0x0143, --IBUS_KEY_acute, IBUS_KEY_O, 0x00D3, --IBUS_KEY_acute, IBUS_KEY_P, 0x1E54, --IBUS_KEY_acute, IBUS_KEY_R, 0x0154, --IBUS_KEY_acute, IBUS_KEY_S, 0x015A, --IBUS_KEY_acute, IBUS_KEY_U, 0x00DA, --IBUS_KEY_acute, IBUS_KEY_W, 0x1E82, --IBUS_KEY_acute, IBUS_KEY_Y, 0x00DD, --IBUS_KEY_acute, IBUS_KEY_Z, 0x0179, --IBUS_KEY_acute, IBUS_KEY_a, 0x00E1, --IBUS_KEY_acute, IBUS_KEY_c, 0x0107, --IBUS_KEY_acute, IBUS_KEY_e, 0x00E9, --IBUS_KEY_acute, IBUS_KEY_g, 0x01F5, --IBUS_KEY_acute, IBUS_KEY_i, 0x00ED, --IBUS_KEY_acute, IBUS_KEY_k, 0x1E31, --IBUS_KEY_acute, IBUS_KEY_l, 0x013A, --IBUS_KEY_acute, IBUS_KEY_m, 0x1E3F, --IBUS_KEY_acute, IBUS_KEY_n, 0x0144, --IBUS_KEY_acute, IBUS_KEY_o, 0x00F3, --IBUS_KEY_acute, IBUS_KEY_p, 0x1E55, --IBUS_KEY_acute, IBUS_KEY_r, 0x0155, --IBUS_KEY_acute, IBUS_KEY_s, 0x015B, --IBUS_KEY_acute, IBUS_KEY_u, 0x00FA, --IBUS_KEY_acute, IBUS_KEY_w, 0x1E83, --IBUS_KEY_acute, IBUS_KEY_y, 0x00FD, --IBUS_KEY_acute, IBUS_KEY_z, 0x017A, --IBUS_KEY_acute, IBUS_KEY_Acircumflex, 0x1EA4, --IBUS_KEY_acute, IBUS_KEY_Aring, 0x01FA, --IBUS_KEY_acute, IBUS_KEY_AE, 0x01FC, --IBUS_KEY_acute, IBUS_KEY_Ccedilla, 0x1E08, --IBUS_KEY_acute, IBUS_KEY_Ecircumflex, 0x1EBE, --IBUS_KEY_acute, IBUS_KEY_Idiaeresis, 0x1E2E, --IBUS_KEY_acute, IBUS_KEY_Ocircumflex, 0x1ED0, --IBUS_KEY_acute, IBUS_KEY_Otilde, 0x1E4C, --IBUS_KEY_acute, IBUS_KEY_Ooblique, 0x01FE, --IBUS_KEY_acute, IBUS_KEY_Udiaeresis, 0x01D7, --IBUS_KEY_acute, IBUS_KEY_acircumflex, 0x1EA5, --IBUS_KEY_acute, IBUS_KEY_aring, 0x01FB, --IBUS_KEY_acute, IBUS_KEY_ae, 0x01FD, --IBUS_KEY_acute, IBUS_KEY_ccedilla, 0x1E09, --IBUS_KEY_acute, IBUS_KEY_ecircumflex, 0x1EBF, --IBUS_KEY_acute, IBUS_KEY_idiaeresis, 0x1E2F, --IBUS_KEY_acute, IBUS_KEY_ocircumflex, 0x1ED1, --IBUS_KEY_acute, IBUS_KEY_otilde, 0x1E4D, --IBUS_KEY_acute, IBUS_KEY_oslash, 0x01FF, --IBUS_KEY_acute, IBUS_KEY_udiaeresis, 0x01D8, --IBUS_KEY_acute, IBUS_KEY_Abreve, 0x1EAE, --IBUS_KEY_acute, IBUS_KEY_abreve, 0x1EAF, --IBUS_KEY_acute, IBUS_KEY_Emacron, 0x1E16, --IBUS_KEY_acute, IBUS_KEY_emacron, 0x1E17, --IBUS_KEY_acute, IBUS_KEY_Omacron, 0x1E52, --IBUS_KEY_acute, IBUS_KEY_Utilde, 0x1E78, --IBUS_KEY_acute, IBUS_KEY_omacron, 0x1E53, --IBUS_KEY_acute, IBUS_KEY_utilde, 0x1E79, --IBUS_KEY_acute, IBUS_KEY_Cyrillic_ghe, 0x0453, --IBUS_KEY_acute, IBUS_KEY_Cyrillic_ka, 0x045C, --IBUS_KEY_acute, IBUS_KEY_Cyrillic_GHE, 0x0403, --IBUS_KEY_acute, IBUS_KEY_Cyrillic_KA, 0x040C, --IBUS_KEY_acute, IBUS_KEY_Greek_iotadieresis, 0x0390, --IBUS_KEY_acute, IBUS_KEY_Greek_upsilondieresis, 0x03B0, --IBUS_KEY_acute, IBUS_KEY_Greek_ALPHA, 0x0386, --IBUS_KEY_acute, IBUS_KEY_Greek_EPSILON, 0x0388, --IBUS_KEY_acute, IBUS_KEY_Greek_ETA, 0x0389, --IBUS_KEY_acute, IBUS_KEY_Greek_IOTA, 0x038A, --IBUS_KEY_acute, IBUS_KEY_Greek_OMICRON, 0x038C, --IBUS_KEY_acute, IBUS_KEY_Greek_UPSILON, 0x038E, --IBUS_KEY_acute, IBUS_KEY_Greek_OMEGA, 0x038F, --IBUS_KEY_acute, IBUS_KEY_Greek_alpha, 0x03AC, --IBUS_KEY_acute, IBUS_KEY_Greek_epsilon, 0x03AD, --IBUS_KEY_acute, IBUS_KEY_Greek_eta, 0x03AE, --IBUS_KEY_acute, IBUS_KEY_Greek_iota, 0x03AF, --IBUS_KEY_acute, IBUS_KEY_Greek_omicron, 0x03CC, --IBUS_KEY_acute, IBUS_KEY_Greek_upsilon, 0x03CD, --IBUS_KEY_acute, IBUS_KEY_Greek_omega, 0x03CE, --IBUS_KEY_acute, 0x1F00, 0x1F04, --IBUS_KEY_acute, 0x1F01, 0x1F05, --IBUS_KEY_acute, 0x1F08, 0x1F0C, --IBUS_KEY_acute, 0x1F09, 0x1F0D, --IBUS_KEY_acute, 0x1F10, 0x1F14, --IBUS_KEY_acute, 0x1F11, 0x1F15, --IBUS_KEY_acute, 0x1F18, 0x1F1C, --IBUS_KEY_acute, 0x1F19, 0x1F1D, --IBUS_KEY_acute, 0x1F20, 0x1F24, --IBUS_KEY_acute, 0x1F21, 0x1F25, --IBUS_KEY_acute, 0x1F28, 0x1F2C, --IBUS_KEY_acute, 0x1F29, 0x1F2D, --IBUS_KEY_acute, 0x1F30, 0x1F34, --IBUS_KEY_acute, 0x1F31, 0x1F35, --IBUS_KEY_acute, 0x1F38, 0x1F3C, --IBUS_KEY_acute, 0x1F39, 0x1F3D, --IBUS_KEY_acute, 0x1F40, 0x1F44, --IBUS_KEY_acute, 0x1F41, 0x1F45, --IBUS_KEY_acute, 0x1F48, 0x1F4C, --IBUS_KEY_acute, 0x1F49, 0x1F4D, --IBUS_KEY_acute, 0x1F50, 0x1F54, --IBUS_KEY_acute, 0x1F51, 0x1F55, --IBUS_KEY_acute, 0x1F59, 0x1F5D, --IBUS_KEY_acute, 0x1F60, 0x1F64, --IBUS_KEY_acute, 0x1F61, 0x1F65, --IBUS_KEY_acute, 0x1F68, 0x1F6C, --IBUS_KEY_acute, 0x1F69, 0x1F6D, --IBUS_KEY_cedilla, IBUS_KEY_C, 0x00C7, --IBUS_KEY_cedilla, IBUS_KEY_D, 0x1E10, --IBUS_KEY_cedilla, IBUS_KEY_E, 0x0228, --IBUS_KEY_cedilla, IBUS_KEY_G, 0x0122, --IBUS_KEY_cedilla, IBUS_KEY_H, 0x1E28, --IBUS_KEY_cedilla, IBUS_KEY_K, 0x0136, --IBUS_KEY_cedilla, IBUS_KEY_L, 0x013B, --IBUS_KEY_cedilla, IBUS_KEY_N, 0x0145, --IBUS_KEY_cedilla, IBUS_KEY_R, 0x0156, --IBUS_KEY_cedilla, IBUS_KEY_S, 0x015E, --IBUS_KEY_cedilla, IBUS_KEY_T, 0x0162, --IBUS_KEY_cedilla, IBUS_KEY_c, 0x00E7, --IBUS_KEY_cedilla, IBUS_KEY_d, 0x1E11, --IBUS_KEY_cedilla, IBUS_KEY_e, 0x0229, --IBUS_KEY_cedilla, IBUS_KEY_g, 0x0123, --IBUS_KEY_cedilla, IBUS_KEY_h, 0x1E29, --IBUS_KEY_cedilla, IBUS_KEY_k, 0x0137, --IBUS_KEY_cedilla, IBUS_KEY_l, 0x013C, --IBUS_KEY_cedilla, IBUS_KEY_n, 0x0146, --IBUS_KEY_cedilla, IBUS_KEY_r, 0x0157, --IBUS_KEY_cedilla, IBUS_KEY_s, 0x015F, --IBUS_KEY_cedilla, IBUS_KEY_t, 0x0163, --IBUS_KEY_division, 0x2395, 0x2339, --IBUS_KEY_breve, IBUS_KEY_G, 0x011E, --IBUS_KEY_breve, IBUS_KEY_g, 0x011F, --0x05B4, IBUS_KEY_hebrew_yod, 0xFB1D, --0x05B7, 0x05F2, 0xFB1F, --0x05B7, IBUS_KEY_hebrew_aleph, 0xFB2E, --0x05B8, IBUS_KEY_hebrew_aleph, 0xFB2F, --0x05B9, IBUS_KEY_hebrew_waw, 0xFB4B, --0x05BC, IBUS_KEY_hebrew_aleph, 0xFB30, --0x05BC, IBUS_KEY_hebrew_beth, 0xFB31, --0x05BC, IBUS_KEY_hebrew_gimmel, 0xFB32, --0x05BC, IBUS_KEY_hebrew_daleth, 0xFB33, --0x05BC, IBUS_KEY_hebrew_he, 0xFB34, --0x05BC, IBUS_KEY_hebrew_waw, 0xFB35, --0x05BC, IBUS_KEY_hebrew_zayin, 0xFB36, --0x05BC, IBUS_KEY_hebrew_teth, 0xFB38, --0x05BC, IBUS_KEY_hebrew_yod, 0xFB39, --0x05BC, IBUS_KEY_hebrew_finalkaph, 0xFB3A, --0x05BC, IBUS_KEY_hebrew_kaph, 0xFB3B, --0x05BC, IBUS_KEY_hebrew_lamed, 0xFB3C, --0x05BC, IBUS_KEY_hebrew_mem, 0xFB3E, --0x05BC, IBUS_KEY_hebrew_nun, 0xFB40, --0x05BC, IBUS_KEY_hebrew_samekh, 0xFB41, --0x05BC, IBUS_KEY_hebrew_finalpe, 0xFB43, --0x05BC, IBUS_KEY_hebrew_pe, 0xFB44, --0x05BC, IBUS_KEY_hebrew_zadi, 0xFB46, --0x05BC, IBUS_KEY_hebrew_qoph, 0xFB47, --0x05BC, IBUS_KEY_hebrew_resh, 0xFB48, --0x05BC, IBUS_KEY_hebrew_shin, 0xFB49, --0x05BC, IBUS_KEY_hebrew_taw, 0xFB4A, --0x05BF, IBUS_KEY_hebrew_beth, 0xFB4C, --0x05BF, IBUS_KEY_hebrew_kaph, 0xFB4D, --0x05BF, IBUS_KEY_hebrew_pe, 0xFB4E, --0x05C1, IBUS_KEY_hebrew_shin, 0xFB2A, --0x05C1, 0xFB49, 0xFB2C, --0x05C2, IBUS_KEY_hebrew_shin, 0xFB2B, --0x05C2, 0xFB49, 0xFB2D, --0x0653, IBUS_KEY_Arabic_alef, 0x0622, --0x0654, IBUS_KEY_Arabic_alef, 0x0623, --0x0654, IBUS_KEY_Arabic_waw, 0x0624, --0x0654, IBUS_KEY_Arabic_yeh, 0x0626, --0x0654, 0x06C1, 0x06C2, --0x0654, 0x06D2, 0x06D3, --0x0654, 0x06D5, 0x06C0, --0x0655, IBUS_KEY_Arabic_alef, 0x0625, --IBUS_KEY_Cyrillic_pe, IBUS_KEY_Cyrillic_a, 0x00A7, --IBUS_KEY_Cyrillic_IE, IBUS_KEY_equal, 0x20AC, --IBUS_KEY_Cyrillic_EN, IBUS_KEY_Cyrillic_o, 0x2116, --IBUS_KEY_Cyrillic_EN, IBUS_KEY_Cyrillic_O, 0x2116, --IBUS_KEY_Cyrillic_ES, IBUS_KEY_equal, 0x20AC, --IBUS_KEY_Greek_ALPHA, IBUS_KEY_apostrophe, 0x0386, --IBUS_KEY_Greek_EPSILON, IBUS_KEY_apostrophe, 0x0388, --IBUS_KEY_Greek_ETA, IBUS_KEY_apostrophe, 0x0389, --IBUS_KEY_Greek_IOTA, IBUS_KEY_quotedbl, 0x03AA, --IBUS_KEY_Greek_IOTA, IBUS_KEY_apostrophe, 0x038A, --IBUS_KEY_Greek_OMICRON, IBUS_KEY_apostrophe, 0x038C, --IBUS_KEY_Greek_UPSILON, IBUS_KEY_quotedbl, 0x03AB, --IBUS_KEY_Greek_UPSILON, IBUS_KEY_apostrophe, 0x038E, --IBUS_KEY_Greek_OMEGA, IBUS_KEY_apostrophe, 0x038F, --IBUS_KEY_Greek_alpha, IBUS_KEY_apostrophe, 0x03AC, --IBUS_KEY_Greek_epsilon, IBUS_KEY_apostrophe, 0x03AD, --IBUS_KEY_Greek_eta, IBUS_KEY_apostrophe, 0x03AE, --IBUS_KEY_Greek_iota, IBUS_KEY_quotedbl, 0x03CA, --IBUS_KEY_Greek_iota, IBUS_KEY_Greek_alphaaccent, 0x1FB4, --IBUS_KEY_Greek_iota, IBUS_KEY_Greek_etaaccent, 0x1FC4, --IBUS_KEY_Greek_iota, IBUS_KEY_Greek_omegaaccent, 0x1FF4, --IBUS_KEY_Greek_iota, IBUS_KEY_Greek_ALPHA, 0x1FBC, --IBUS_KEY_Greek_iota, IBUS_KEY_Greek_ETA, 0x1FCC, --IBUS_KEY_Greek_iota, IBUS_KEY_Greek_OMEGA, 0x1FFC, --IBUS_KEY_Greek_iota, IBUS_KEY_Greek_alpha, 0x1FB3, --IBUS_KEY_Greek_iota, IBUS_KEY_Greek_eta, 0x1FC3, --IBUS_KEY_Greek_iota, IBUS_KEY_Greek_omega, 0x1FF3, --IBUS_KEY_Greek_iota, 0x1F00, 0x1F80, --IBUS_KEY_Greek_iota, 0x1F01, 0x1F81, --IBUS_KEY_Greek_iota, 0x1F02, 0x1F82, --IBUS_KEY_Greek_iota, 0x1F03, 0x1F83, --IBUS_KEY_Greek_iota, 0x1F04, 0x1F84, --IBUS_KEY_Greek_iota, 0x1F05, 0x1F85, --IBUS_KEY_Greek_iota, 0x1F06, 0x1F86, --IBUS_KEY_Greek_iota, 0x1F07, 0x1F87, --IBUS_KEY_Greek_iota, 0x1F08, 0x1F88, --IBUS_KEY_Greek_iota, 0x1F09, 0x1F89, --IBUS_KEY_Greek_iota, 0x1F0A, 0x1F8A, --IBUS_KEY_Greek_iota, 0x1F0B, 0x1F8B, --IBUS_KEY_Greek_iota, 0x1F0C, 0x1F8C, --IBUS_KEY_Greek_iota, 0x1F0D, 0x1F8D, --IBUS_KEY_Greek_iota, 0x1F0E, 0x1F8E, --IBUS_KEY_Greek_iota, 0x1F0F, 0x1F8F, --IBUS_KEY_Greek_iota, 0x1F20, 0x1F90, --IBUS_KEY_Greek_iota, 0x1F21, 0x1F91, --IBUS_KEY_Greek_iota, 0x1F22, 0x1F92, --IBUS_KEY_Greek_iota, 0x1F23, 0x1F93, --IBUS_KEY_Greek_iota, 0x1F24, 0x1F94, --IBUS_KEY_Greek_iota, 0x1F25, 0x1F95, --IBUS_KEY_Greek_iota, 0x1F26, 0x1F96, --IBUS_KEY_Greek_iota, 0x1F27, 0x1F97, --IBUS_KEY_Greek_iota, 0x1F28, 0x1F98, --IBUS_KEY_Greek_iota, 0x1F29, 0x1F99, --IBUS_KEY_Greek_iota, 0x1F2A, 0x1F9A, --IBUS_KEY_Greek_iota, 0x1F2B, 0x1F9B, --IBUS_KEY_Greek_iota, 0x1F2C, 0x1F9C, --IBUS_KEY_Greek_iota, 0x1F2D, 0x1F9D, --IBUS_KEY_Greek_iota, 0x1F2E, 0x1F9E, --IBUS_KEY_Greek_iota, 0x1F2F, 0x1F9F, --IBUS_KEY_Greek_iota, 0x1F60, 0x1FA0, --IBUS_KEY_Greek_iota, 0x1F61, 0x1FA1, --IBUS_KEY_Greek_iota, 0x1F62, 0x1FA2, --IBUS_KEY_Greek_iota, 0x1F63, 0x1FA3, --IBUS_KEY_Greek_iota, 0x1F64, 0x1FA4, --IBUS_KEY_Greek_iota, 0x1F65, 0x1FA5, --IBUS_KEY_Greek_iota, 0x1F66, 0x1FA6, --IBUS_KEY_Greek_iota, 0x1F67, 0x1FA7, --IBUS_KEY_Greek_iota, 0x1F68, 0x1FA8, --IBUS_KEY_Greek_iota, 0x1F69, 0x1FA9, --IBUS_KEY_Greek_iota, 0x1F6A, 0x1FAA, --IBUS_KEY_Greek_iota, 0x1F6B, 0x1FAB, --IBUS_KEY_Greek_iota, 0x1F6C, 0x1FAC, --IBUS_KEY_Greek_iota, 0x1F6D, 0x1FAD, --IBUS_KEY_Greek_iota, 0x1F6E, 0x1FAE, --IBUS_KEY_Greek_iota, 0x1F6F, 0x1FAF, --IBUS_KEY_Greek_iota, 0x1F70, 0x1FB2, --IBUS_KEY_Greek_iota, 0x1F74, 0x1FC2, --IBUS_KEY_Greek_iota, 0x1F7C, 0x1FF2, --IBUS_KEY_Greek_iota, 0x1FB6, 0x1FB7, --IBUS_KEY_Greek_iota, 0x1FC6, 0x1FC7, --IBUS_KEY_Greek_iota, 0x1FF6, 0x1FF7, --IBUS_KEY_Greek_omicron, IBUS_KEY_apostrophe, 0x03CC, --IBUS_KEY_Greek_upsilon, IBUS_KEY_quotedbl, 0x03CB, --IBUS_KEY_Greek_upsilon, IBUS_KEY_apostrophe, 0x03CD, --IBUS_KEY_Greek_omega, IBUS_KEY_apostrophe, 0x03CE, --IBUS_KEY_lessthanequal, 0x0338, 0x2270, --IBUS_KEY_greaterthanequal, 0x0338, 0x2271, --IBUS_KEY_approximate, 0x0338, 0x2247, --IBUS_KEY_identical, 0x0338, 0x2262, --IBUS_KEY_includedin, 0x0338, 0x2284, --IBUS_KEY_includes, 0x0338, 0x2285, --0x093C, 0x0915, 0x0958, --0x093C, 0x0916, 0x0959, --0x093C, 0x0917, 0x095A, --0x093C, 0x091C, 0x095B, --0x093C, 0x0921, 0x095C, --0x093C, 0x0922, 0x095D, --0x093C, 0x0928, 0x0929, --0x093C, 0x092B, 0x095E, --0x093C, 0x092F, 0x095F, --0x093C, 0x0930, 0x0931, --0x093C, 0x0933, 0x0934, --0x09BC, 0x09A1, 0x09DC, --0x09BC, 0x09A2, 0x09DD, --0x09BC, 0x09AF, 0x09DF, --0x09C7, 0x09BE, 0x09CB, --0x09C7, 0x09D7, 0x09CC, --0x0A3C, 0x0A16, 0x0A59, --0x0A3C, 0x0A17, 0x0A5A, --0x0A3C, 0x0A1C, 0x0A5B, --0x0A3C, 0x0A2B, 0x0A5E, --0x0A3C, 0x0A32, 0x0A33, --0x0A3C, 0x0A38, 0x0A36, --0x0B3C, 0x0B21, 0x0B5C, --0x0B3C, 0x0B22, 0x0B5D, --0x0B47, 0x0B3E, 0x0B4B, --0x0B47, 0x0B56, 0x0B48, --0x0B47, 0x0B57, 0x0B4C, --IBUS_KEY_leftcaret, 0x0338, 0x226E, --IBUS_KEY_rightcaret, 0x0338, 0x226F, --IBUS_KEY_underbar, IBUS_KEY_parenleft, 0x208D, --IBUS_KEY_underbar, IBUS_KEY_parenright, 0x208E, --IBUS_KEY_underbar, IBUS_KEY_plus, 0x208A, --IBUS_KEY_underbar, IBUS_KEY_0, 0x2080, --IBUS_KEY_underbar, IBUS_KEY_1, 0x2081, --IBUS_KEY_underbar, IBUS_KEY_2, 0x2082, --IBUS_KEY_underbar, IBUS_KEY_3, 0x2083, --IBUS_KEY_underbar, IBUS_KEY_4, 0x2084, --IBUS_KEY_underbar, IBUS_KEY_5, 0x2085, --IBUS_KEY_underbar, IBUS_KEY_6, 0x2086, --IBUS_KEY_underbar, IBUS_KEY_7, 0x2087, --IBUS_KEY_underbar, IBUS_KEY_8, 0x2088, --IBUS_KEY_underbar, IBUS_KEY_9, 0x2089, --IBUS_KEY_underbar, IBUS_KEY_equal, 0x208C, --0x0BC6, 0x0BBE, 0x0BCA, --0x0BC6, 0x0BD7, 0x0BCC, --IBUS_KEY_underbar, 0x2212, 0x208B, --IBUS_KEY_underbar, IBUS_KEY_KP_Space, 0x2082, --IBUS_KEY_underbar, IBUS_KEY_KP_Add, 0x208A, --IBUS_KEY_underbar, IBUS_KEY_KP_0, 0x2080, --IBUS_KEY_underbar, IBUS_KEY_KP_1, 0x2081, --IBUS_KEY_underbar, IBUS_KEY_KP_2, 0x2082, --IBUS_KEY_underbar, IBUS_KEY_KP_3, 0x2083, --IBUS_KEY_underbar, IBUS_KEY_KP_4, 0x2084, --IBUS_KEY_underbar, IBUS_KEY_KP_5, 0x2085, --IBUS_KEY_underbar, IBUS_KEY_KP_6, 0x2086, --IBUS_KEY_underbar, IBUS_KEY_KP_7, 0x2087, --IBUS_KEY_underbar, IBUS_KEY_KP_8, 0x2088, --IBUS_KEY_underbar, IBUS_KEY_KP_9, 0x2089, --IBUS_KEY_underbar, IBUS_KEY_KP_Equal, 0x208C, --0x0BC7, 0x0BBE, 0x0BCB, --0x0BD7, 0x0B92, 0x0B94, --IBUS_KEY_rightshoe, 0x0338, 0x2285, --IBUS_KEY_leftshoe, 0x0338, 0x2284, --IBUS_KEY_righttack, 0x0338, 0x22AC, --0x0C46, 0x0C56, 0x0C48, --0x0CBF, 0x0CD5, 0x0CC0, --0x0CC6, 0x0CC2, 0x0CCA, --0x0CC6, 0x0CD5, 0x0CC7, --0x0CC6, 0x0CD6, 0x0CC8, --0x0CCA, 0x0CD5, 0x0CCB, --0x0D46, 0x0D3E, 0x0D4A, --0x0D46, 0x0D57, 0x0D4C, --0x0D47, 0x0D3E, 0x0D4B, --0x0DD9, 0x0DCA, 0x0DDA, --0x0DD9, 0x0DCF, 0x0DDC, --0x0DD9, 0x0DDF, 0x0DDE, --0x0DDC, 0x0DCA, 0x0DDD, --0x0F71, 0x0F72, 0x0F73, --0x0F71, 0x0F74, 0x0F75, --0x0F71, 0x0F80, 0x0F81, --0x0F90, 0x0FB5, 0x0FB9, --0x0F92, 0x0FB7, 0x0F93, --0x0F9C, 0x0FB7, 0x0F9D, --0x0FA1, 0x0FB7, 0x0FA2, --0x0FA6, 0x0FB7, 0x0FA7, --0x0FAB, 0x0FB7, 0x0FAC, --0x0FB2, 0x0F80, 0x0F76, --0x0FB3, 0x0F80, 0x0F78, --0x0FB5, 0x0F40, 0x0F69, --0x0FB7, 0x0F42, 0x0F43, --0x0FB7, 0x0F4C, 0x0F4D, --0x0FB7, 0x0F51, 0x0F52, --0x0FB7, 0x0F56, 0x0F57, --0x0FB7, 0x0F5B, 0x0F5C, --0x102E, 0x1025, 0x1026, --0x1100, 0x1100, 0x1101, --0x1102, 0x1100, 0x1113, --0x1102, 0x1102, 0x1114, --0x1102, 0x1103, 0x1115, --0x1102, 0x1107, 0x1116, --0x1103, 0x1100, 0x1117, --0x1103, 0x1103, 0x1104, --0x1105, 0x1102, 0x1118, --0x1105, 0x1105, 0x1119, --0x1105, 0x110B, 0x111B, --0x1105, 0x1112, 0x111A, --0x1106, 0x1107, 0x111C, --0x1106, 0x110B, 0x111D, --0x1107, 0x1100, 0x111E, --0x1107, 0x1102, 0x111F, --0x1107, 0x1103, 0x1120, --0x1107, 0x1107, 0x1108, --0x1107, 0x1109, 0x1121, --0x1107, 0x110A, 0x1125, --0x1107, 0x110B, 0x112B, --0x1107, 0x110C, 0x1127, --0x1107, 0x110E, 0x1128, --0x1107, 0x1110, 0x1129, --0x1107, 0x1111, 0x112A, --0x1107, 0x112B, 0x112C, --0x1107, 0x112D, 0x1122, --0x1107, 0x112F, 0x1123, --0x1107, 0x1132, 0x1124, --0x1107, 0x1136, 0x1126, --0x1108, 0x110B, 0x112C, --0x1109, 0x1100, 0x112D, --0x1109, 0x1102, 0x112E, --0x1109, 0x1103, 0x112F, --0x1109, 0x1105, 0x1130, --0x1109, 0x1106, 0x1131, --0x1109, 0x1107, 0x1132, --0x1109, 0x1109, 0x110A, --0x1109, 0x110A, 0x1134, --0x1109, 0x110B, 0x1135, --0x1109, 0x110C, 0x1136, --0x1109, 0x110E, 0x1137, --0x1109, 0x110F, 0x1138, --0x1109, 0x1110, 0x1139, --0x1109, 0x1111, 0x113A, --0x1109, 0x1112, 0x113B, --0x1109, 0x111E, 0x1133, --0x110A, 0x1109, 0x1134, --0x110B, 0x1100, 0x1141, --0x110B, 0x1103, 0x1142, --0x110B, 0x1106, 0x1143, --0x110B, 0x1107, 0x1144, --0x110B, 0x1109, 0x1145, --0x110B, 0x110B, 0x1147, --0x110B, 0x110C, 0x1148, --0x110B, 0x110E, 0x1149, --0x110B, 0x1110, 0x114A, --0x110B, 0x1111, 0x114B, --0x110B, 0x1140, 0x1146, --0x110C, 0x110B, 0x114D, --0x110C, 0x110C, 0x110D, --0x110E, 0x110F, 0x1152, --0x110E, 0x1112, 0x1153, --0x1111, 0x1107, 0x1156, --0x1111, 0x110B, 0x1157, --0x1112, 0x1112, 0x1158, --0x1121, 0x1100, 0x1122, --0x1121, 0x1103, 0x1123, --0x1121, 0x1107, 0x1124, --0x1121, 0x1109, 0x1125, --0x1121, 0x110C, 0x1126, --0x1132, 0x1100, 0x1133, --0x113C, 0x113C, 0x113D, --0x113E, 0x113E, 0x113F, --0x114E, 0x114E, 0x114F, --0x1150, 0x1150, 0x1151, --0x1161, 0x1169, 0x1176, --0x1161, 0x116E, 0x1177, --0x1161, 0x1175, 0x1162, --0x1163, 0x1169, 0x1178, --0x1163, 0x116D, 0x1179, --0x1163, 0x1175, 0x1164, --0x1165, 0x1169, 0x117A, --0x1165, 0x116E, 0x117B, --0x1165, 0x1173, 0x117C, --0x1165, 0x1175, 0x1166, --0x1167, 0x1169, 0x117D, --0x1167, 0x116E, 0x117E, --0x1167, 0x1175, 0x1168, --0x1169, 0x1161, 0x116A, --0x1169, 0x1162, 0x116B, --0x1169, 0x1165, 0x117F, --0x1169, 0x1166, 0x1180, --0x1169, 0x1168, 0x1181, --0x1169, 0x1169, 0x1182, --0x1169, 0x116E, 0x1183, --0x1169, 0x1175, 0x116C, --0x116A, 0x1175, 0x116B, --0x116D, 0x1163, 0x1184, --0x116D, 0x1164, 0x1185, --0x116D, 0x1167, 0x1186, --0x116D, 0x1169, 0x1187, --0x116D, 0x1175, 0x1188, --0x116E, 0x1161, 0x1189, --0x116E, 0x1162, 0x118A, --0x116E, 0x1165, 0x116F, --0x116E, 0x1166, 0x1170, --0x116E, 0x1168, 0x118C, --0x116E, 0x116E, 0x118D, --0x116E, 0x1175, 0x1171, --0x116E, 0x117C, 0x118B, --0x116F, 0x1173, 0x118B, --0x116F, 0x1175, 0x1170, --0x1172, 0x1161, 0x118E, --0x1172, 0x1165, 0x118F, --0x1172, 0x1166, 0x1190, --0x1172, 0x1167, 0x1191, --0x1172, 0x1168, 0x1192, --0x1172, 0x116E, 0x1193, --0x1172, 0x1175, 0x1194, --0x1173, 0x116E, 0x1195, --0x1173, 0x1173, 0x1196, --0x1173, 0x1175, 0x1174, --0x1174, 0x116E, 0x1197, --0x1175, 0x1161, 0x1198, --0x1175, 0x1163, 0x1199, --0x1175, 0x1169, 0x119A, --0x1175, 0x116E, 0x119B, --0x1175, 0x1173, 0x119C, --0x1175, 0x119E, 0x119D, --0x119E, 0x1165, 0x119F, --0x119E, 0x116E, 0x11A0, --0x119E, 0x1175, 0x11A1, --0x119E, 0x119E, 0x11A2, --0x11A8, 0x11A8, 0x11A9, --0x11A8, 0x11AF, 0x11C3, --0x11A8, 0x11BA, 0x11AA, --0x11A8, 0x11E7, 0x11C4, --0x11AA, 0x11A8, 0x11C4, --0x11AB, 0x11A8, 0x11C5, --0x11AB, 0x11AE, 0x11C6, --0x11AB, 0x11BA, 0x11C7, --0x11AB, 0x11BD, 0x11AC, --0x11AB, 0x11C0, 0x11C9, --0x11AB, 0x11C2, 0x11AD, --0x11AB, 0x11EB, 0x11C8, --0x11AE, 0x11A8, 0x11CA, --0x11AE, 0x11AF, 0x11CB, --0x11AF, 0x11A8, 0x11B0, --0x11AF, 0x11AA, 0x11CC, --0x11AF, 0x11AB, 0x11CD, --0x11AF, 0x11AE, 0x11CE, --0x11AF, 0x11AF, 0x11D0, --0x11AF, 0x11B7, 0x11B1, --0x11AF, 0x11B8, 0x11B2, --0x11AF, 0x11B9, 0x11D3, --0x11AF, 0x11BA, 0x11B3, --0x11AF, 0x11BB, 0x11D6, --0x11AF, 0x11BF, 0x11D8, --0x11AF, 0x11C0, 0x11B4, --0x11AF, 0x11C1, 0x11B5, --0x11AF, 0x11C2, 0x11B6, --0x11AF, 0x11DA, 0x11D1, --0x11AF, 0x11DD, 0x11D2, --0x11AF, 0x11E5, 0x11D4, --0x11AF, 0x11E6, 0x11D5, --0x11AF, 0x11EB, 0x11D7, --0x11AF, 0x11F9, 0x11D9, --0x11B0, 0x11BA, 0x11CC, --0x11B1, 0x11A8, 0x11D1, --0x11B1, 0x11BA, 0x11D2, --0x11B2, 0x11BA, 0x11D3, --0x11B2, 0x11BC, 0x11D5, --0x11B2, 0x11C2, 0x11D4, --0x11B3, 0x11BA, 0x11D6, --0x11B7, 0x11A8, 0x11DA, --0x11B7, 0x11AF, 0x11DB, --0x11B7, 0x11B8, 0x11DC, --0x11B7, 0x11BA, 0x11DD, --0x11B7, 0x11BB, 0x11DE, --0x11B7, 0x11BC, 0x11E2, --0x11B7, 0x11BE, 0x11E0, --0x11B7, 0x11C2, 0x11E1, --0x11B7, 0x11EB, 0x11DF, --0x11B8, 0x11AF, 0x11E3, --0x11B8, 0x11BA, 0x11B9, --0x11B8, 0x11BC, 0x11E6, --0x11B8, 0x11C1, 0x11E4, --0x11B8, 0x11C2, 0x11E5, --0x11BA, 0x11A8, 0x11E7, --0x11BA, 0x11AE, 0x11E8, --0x11BA, 0x11AF, 0x11E9, --0x11BA, 0x11B8, 0x11EA, --0x11BA, 0x11BA, 0x11BB, --0x11BC, 0x11A8, 0x11EC, --0x11BC, 0x11A9, 0x11ED, --0x11BC, 0x11BC, 0x11EE, --0x11BC, 0x11BF, 0x11EF, --0x11C1, 0x11B8, 0x11F3, --0x11C1, 0x11BC, 0x11F4, --0x11C2, 0x11AB, 0x11F5, --0x11C2, 0x11AF, 0x11F6, --0x11C2, 0x11B7, 0x11F7, --0x11C2, 0x11B8, 0x11F8, --0x11CE, 0x11C2, 0x11CF, --0x11DD, 0x11BA, 0x11DE, --0x11EC, 0x11A8, 0x11ED, --0x11F0, 0x11BA, 0x11F1, --0x11F0, 0x11EB, 0x11F2, --0x1FBF, IBUS_KEY_apostrophe, 0x1FCE, --0x1FBF, IBUS_KEY_grave, 0x1FCD, --0x1FBF, IBUS_KEY_asciitilde, 0x1FCF, --0x1FBF, IBUS_KEY_acute, 0x1FCE, --0x1FBF, IBUS_KEY_dead_grave, 0x1FCD, --0x1FBF, IBUS_KEY_dead_acute, 0x1FCE, --0x1FBF, IBUS_KEY_dead_tilde, 0x1FCF, --0x1FFE, IBUS_KEY_apostrophe, 0x1FDE, --0x1FFE, IBUS_KEY_grave, 0x1FDD, --0x1FFE, IBUS_KEY_asciitilde, 0x1FDF, --0x1FFE, IBUS_KEY_acute, 0x1FDE, --0x1FFE, IBUS_KEY_dead_grave, 0x1FDD, --0x1FFE, IBUS_KEY_dead_acute, 0x1FDE, --0x1FFE, IBUS_KEY_dead_tilde, 0x1FDF, --0x2190, IBUS_KEY_bar, 0x2345, --0x2190, 0x2395, 0x2347, --0x2191, IBUS_KEY_minus, 0x234F, --0x2191, 0x2395, 0x2350, --0x2192, IBUS_KEY_bar, 0x2346, --0x2192, 0x2395, 0x2348, --0x2193, IBUS_KEY_minus, 0x2356, --0x2193, 0x2395, 0x2357, --0x2203, 0x0338, 0x2204, --0x2206, IBUS_KEY_underscore, 0x2359, --0x2206, IBUS_KEY_bar, 0x234B, --0x2206, 0x2395, 0x234D, --0x2207, IBUS_KEY_bar, 0x2352, --0x2207, IBUS_KEY_asciitilde, 0x236B, --0x2207, IBUS_KEY_diaeresis, 0x2362, --0x2207, 0x2395, 0x2354, --0x2208, 0x0338, 0x2209, --0x220A, IBUS_KEY_underscore, 0x2377, --0x220B, 0x0338, 0x220C, --0x2218, IBUS_KEY_underscore, 0x235B, --0x2218, IBUS_KEY_diaeresis, 0x2364, --0x2218, 0x2229, 0x235D, --0x2218, IBUS_KEY_uptack, 0x2355, --0x2218, IBUS_KEY_downtack, 0x234E, --0x2218, 0x2395, 0x233B, --0x2218, IBUS_KEY_emopencircle, 0x233E, --0x2223, 0x0338, 0x2224, --0x2225, 0x0338, 0x2226, --0x2227, IBUS_KEY_asciitilde, 0x2372, --0x2227, 0x2228, 0x22C4, --0x2227, 0x2395, 0x2353, --0x2228, IBUS_KEY_asciitilde, 0x2371, --0x2228, 0x2227, 0x22C4, --0x2228, 0x2395, 0x234C, --0x2229, 0x2218, 0x235D, --IBUS_KEY_union, IBUS_KEY_bar, 0x2366, --0x223C, 0x0338, 0x2241, --0x2243, 0x0338, 0x2244, --0x2248, 0x0338, 0x2249, --0x224D, 0x0338, 0x226D, --0x2260, IBUS_KEY_underscore, 0x2262, --0x2260, 0x2395, 0x236F, --0x2272, 0x0338, 0x2274, --0x2273, 0x0338, 0x2275, --0x2276, 0x0338, 0x2278, --0x2277, 0x0338, 0x2279, --0x227A, 0x0338, 0x2280, --0x227B, 0x0338, 0x2281, --0x227C, 0x0338, 0x22E0, --0x227D, 0x0338, 0x22E1, --0x2282, IBUS_KEY_underscore, 0x2286, --0x2282, IBUS_KEY_bar, 0x2367, --0x2283, IBUS_KEY_underscore, 0x2287, --0x2286, 0x0338, 0x2288, --0x2287, 0x0338, 0x2289, --0x2291, 0x0338, 0x22E2, --0x2292, 0x0338, 0x22E3, --IBUS_KEY_uptack, IBUS_KEY_diaeresis, 0x2361, --IBUS_KEY_uptack, IBUS_KEY_macron, 0x2351, --IBUS_KEY_uptack, 0x2218, 0x2355, --IBUS_KEY_uptack, IBUS_KEY_downtack, 0x2336, --IBUS_KEY_downtack, IBUS_KEY_underscore, 0x234A, --IBUS_KEY_downtack, 0x2218, 0x234E, --IBUS_KEY_downtack, IBUS_KEY_uptack, 0x2336, --0x22A8, 0x0338, 0x22AD, --0x22A9, 0x0338, 0x22AE, --0x22AB, 0x0338, 0x22AF, --0x22B2, 0x0338, 0x22EA, --0x22B3, 0x0338, 0x22EB, --0x22B4, 0x0338, 0x22EC, --0x22B5, 0x0338, 0x22ED, --0x22C4, IBUS_KEY_underscore, 0x235A, --0x22C4, 0x2395, 0x233A, --0x2373, IBUS_KEY_underscore, 0x2378, --0x2375, IBUS_KEY_underscore, 0x2379, --0x237A, IBUS_KEY_underscore, 0x2376, --0x2395, IBUS_KEY_apostrophe, 0x235E, --0x2395, IBUS_KEY_slash, 0x2341, --0x2395, IBUS_KEY_colon, 0x2360, --0x2395, IBUS_KEY_less, 0x2343, --0x2395, IBUS_KEY_equal, 0x2338, --0x2395, IBUS_KEY_greater, 0x2344, --0x2395, IBUS_KEY_question, 0x2370, --0x2395, IBUS_KEY_backslash, 0x2342, --0x2395, IBUS_KEY_division, 0x2339, --0x2395, 0x2190, 0x2347, --0x2395, 0x2191, 0x2350, --0x2395, 0x2192, 0x2348, --0x2395, 0x2193, 0x2357, --0x2395, 0x2206, 0x234D, --0x2395, 0x2207, 0x2354, --0x2395, 0x2218, 0x233B, --0x2395, 0x2227, 0x2353, --0x2395, 0x2228, 0x234C, --0x2395, 0x2260, 0x236F, --0x2395, 0x22C4, 0x233A, --0x2395, IBUS_KEY_emopencircle, 0x233C, --IBUS_KEY_emopencircle, IBUS_KEY_asterisk, 0x235F, --IBUS_KEY_emopencircle, IBUS_KEY_minus, 0x2296, --IBUS_KEY_emopencircle, IBUS_KEY_period, 0x2299, --IBUS_KEY_emopencircle, IBUS_KEY_backslash, 0x2349, --IBUS_KEY_emopencircle, IBUS_KEY_underscore, 0x235C, --IBUS_KEY_emopencircle, IBUS_KEY_bar, 0x233D, --IBUS_KEY_emopencircle, IBUS_KEY_diaeresis, 0x2365, --IBUS_KEY_emopencircle, 0x2218, 0x233E, --IBUS_KEY_emopencircle, 0x2395, 0x233C, --0x2ADD, 0x0338, 0x2ADC, --IBUS_KEY_KP_Divide, IBUS_KEY_D, 0x0110, --IBUS_KEY_KP_Divide, IBUS_KEY_G, 0x01E4, --IBUS_KEY_KP_Divide, IBUS_KEY_H, 0x0126, --IBUS_KEY_KP_Divide, IBUS_KEY_I, 0x0197, --IBUS_KEY_KP_Divide, IBUS_KEY_L, 0x0141, --IBUS_KEY_KP_Divide, IBUS_KEY_O, 0x00D8, --IBUS_KEY_KP_Divide, IBUS_KEY_T, 0x0166, --IBUS_KEY_KP_Divide, IBUS_KEY_Z, 0x01B5, --IBUS_KEY_KP_Divide, IBUS_KEY_b, 0x0180, --IBUS_KEY_KP_Divide, IBUS_KEY_d, 0x0111, --IBUS_KEY_KP_Divide, IBUS_KEY_g, 0x01E5, --IBUS_KEY_KP_Divide, IBUS_KEY_h, 0x0127, --IBUS_KEY_KP_Divide, IBUS_KEY_i, 0x0268, --IBUS_KEY_KP_Divide, IBUS_KEY_l, 0x0142, --IBUS_KEY_KP_Divide, IBUS_KEY_o, 0x00F8, --IBUS_KEY_KP_Divide, IBUS_KEY_t, 0x0167, --IBUS_KEY_KP_Divide, IBUS_KEY_z, 0x01B6, --IBUS_KEY_KP_Divide, 0x0294, 0x02A1, --IBUS_KEY_KP_Divide, 0x04AE, 0x04B0, --IBUS_KEY_KP_Divide, 0x04AF, 0x04B1, --IBUS_KEY_KP_Divide, IBUS_KEY_Cyrillic_ghe, 0x0493, --IBUS_KEY_KP_Divide, IBUS_KEY_Cyrillic_ka, 0x049F, --IBUS_KEY_KP_Divide, IBUS_KEY_Cyrillic_GHE, 0x0492, --IBUS_KEY_KP_Divide, IBUS_KEY_Cyrillic_KA, 0x049E, --IBUS_KEY_KP_Divide, IBUS_KEY_leftarrow, 0x219A, --IBUS_KEY_KP_Divide, IBUS_KEY_rightarrow, 0x219B, --IBUS_KEY_KP_Divide, 0x2194, 0x21AE, --IBUS_KEY_KP_Equal, 0x0338, 0x2260, --IBUS_KEY_exclam, IBUS_KEY_plus, IBUS_KEY_O, 0x1EE2, --IBUS_KEY_exclam, IBUS_KEY_plus, IBUS_KEY_U, 0x1EF0, --IBUS_KEY_exclam, IBUS_KEY_plus, IBUS_KEY_o, 0x1EE3, --IBUS_KEY_exclam, IBUS_KEY_plus, IBUS_KEY_u, 0x1EF1, --IBUS_KEY_exclam, IBUS_KEY_dead_horn, IBUS_KEY_O, 0x1EE2, --IBUS_KEY_exclam, IBUS_KEY_dead_horn, IBUS_KEY_U, 0x1EF0, --IBUS_KEY_exclam, IBUS_KEY_dead_horn, IBUS_KEY_o, 0x1EE3, --IBUS_KEY_exclam, IBUS_KEY_dead_horn, IBUS_KEY_u, 0x1EF1, --IBUS_KEY_quotedbl, IBUS_KEY_underscore, IBUS_KEY_U, 0x1E7A, --IBUS_KEY_quotedbl, IBUS_KEY_underscore, IBUS_KEY_u, 0x1E7B, --IBUS_KEY_quotedbl, IBUS_KEY_asciitilde, IBUS_KEY_O, 0x1E4E, --IBUS_KEY_quotedbl, IBUS_KEY_asciitilde, IBUS_KEY_o, 0x1E4F, --IBUS_KEY_quotedbl, IBUS_KEY_macron, IBUS_KEY_U, 0x1E7A, --IBUS_KEY_quotedbl, IBUS_KEY_macron, IBUS_KEY_u, 0x1E7B, --IBUS_KEY_quotedbl, IBUS_KEY_dead_tilde, IBUS_KEY_O, 0x1E4E, --IBUS_KEY_quotedbl, IBUS_KEY_dead_tilde, IBUS_KEY_o, 0x1E4F, --IBUS_KEY_quotedbl, IBUS_KEY_dead_macron, IBUS_KEY_U, 0x1E7A, --IBUS_KEY_quotedbl, IBUS_KEY_dead_macron, IBUS_KEY_u, 0x1E7B, --IBUS_KEY_apostrophe, IBUS_KEY_quotedbl, IBUS_KEY_space, 0x0385, --IBUS_KEY_apostrophe, IBUS_KEY_quotedbl, IBUS_KEY_I, 0x1E2E, --IBUS_KEY_apostrophe, IBUS_KEY_quotedbl, IBUS_KEY_U, 0x01D7, --IBUS_KEY_apostrophe, IBUS_KEY_quotedbl, IBUS_KEY_i, 0x1E2F, --IBUS_KEY_apostrophe, IBUS_KEY_quotedbl, IBUS_KEY_u, 0x01D8, --IBUS_KEY_apostrophe, IBUS_KEY_quotedbl, IBUS_KEY_Greek_iota, 0x0390, --IBUS_KEY_apostrophe, IBUS_KEY_quotedbl, IBUS_KEY_Greek_upsilon, 0x03B0, --IBUS_KEY_apostrophe, IBUS_KEY_parenleft, IBUS_KEY_Greek_ALPHA, 0x1F0D, --IBUS_KEY_apostrophe, IBUS_KEY_parenleft, IBUS_KEY_Greek_EPSILON, 0x1F1D, --IBUS_KEY_apostrophe, IBUS_KEY_parenleft, IBUS_KEY_Greek_ETA, 0x1F2D, --IBUS_KEY_apostrophe, IBUS_KEY_parenleft, IBUS_KEY_Greek_IOTA, 0x1F3D, --IBUS_KEY_apostrophe, IBUS_KEY_parenleft, IBUS_KEY_Greek_OMICRON, 0x1F4D, --IBUS_KEY_apostrophe, IBUS_KEY_parenleft, IBUS_KEY_Greek_UPSILON, 0x1F5D, --IBUS_KEY_apostrophe, IBUS_KEY_parenleft, IBUS_KEY_Greek_OMEGA, 0x1F6D, --IBUS_KEY_apostrophe, IBUS_KEY_parenleft, IBUS_KEY_Greek_alpha, 0x1F05, --IBUS_KEY_apostrophe, IBUS_KEY_parenleft, IBUS_KEY_Greek_epsilon, 0x1F15, --IBUS_KEY_apostrophe, IBUS_KEY_parenleft, IBUS_KEY_Greek_eta, 0x1F25, --IBUS_KEY_apostrophe, IBUS_KEY_parenleft, IBUS_KEY_Greek_iota, 0x1F35, --IBUS_KEY_apostrophe, IBUS_KEY_parenleft, IBUS_KEY_Greek_omicron, 0x1F45, --IBUS_KEY_apostrophe, IBUS_KEY_parenleft, IBUS_KEY_Greek_upsilon, 0x1F55, --IBUS_KEY_apostrophe, IBUS_KEY_parenleft, IBUS_KEY_Greek_omega, 0x1F65, --IBUS_KEY_apostrophe, IBUS_KEY_parenright, IBUS_KEY_Greek_ALPHA, 0x1F0C, --IBUS_KEY_apostrophe, IBUS_KEY_parenright, IBUS_KEY_Greek_EPSILON, 0x1F1C, --IBUS_KEY_apostrophe, IBUS_KEY_parenright, IBUS_KEY_Greek_ETA, 0x1F2C, --IBUS_KEY_apostrophe, IBUS_KEY_parenright, IBUS_KEY_Greek_IOTA, 0x1F3C, --IBUS_KEY_apostrophe, IBUS_KEY_parenright, IBUS_KEY_Greek_OMICRON, 0x1F4C, --IBUS_KEY_apostrophe, IBUS_KEY_parenright, IBUS_KEY_Greek_OMEGA, 0x1F6C, --IBUS_KEY_apostrophe, IBUS_KEY_parenright, IBUS_KEY_Greek_alpha, 0x1F04, --IBUS_KEY_apostrophe, IBUS_KEY_parenright, IBUS_KEY_Greek_epsilon, 0x1F14, --IBUS_KEY_apostrophe, IBUS_KEY_parenright, IBUS_KEY_Greek_eta, 0x1F24, --IBUS_KEY_apostrophe, IBUS_KEY_parenright, IBUS_KEY_Greek_iota, 0x1F34, --IBUS_KEY_apostrophe, IBUS_KEY_parenright, IBUS_KEY_Greek_omicron, 0x1F44, --IBUS_KEY_apostrophe, IBUS_KEY_parenright, IBUS_KEY_Greek_upsilon, 0x1F54, --IBUS_KEY_apostrophe, IBUS_KEY_parenright, IBUS_KEY_Greek_omega, 0x1F64, --IBUS_KEY_apostrophe, IBUS_KEY_plus, IBUS_KEY_O, 0x1EDA, --IBUS_KEY_apostrophe, IBUS_KEY_plus, IBUS_KEY_U, 0x1EE8, --IBUS_KEY_apostrophe, IBUS_KEY_plus, IBUS_KEY_o, 0x1EDB, --IBUS_KEY_apostrophe, IBUS_KEY_plus, IBUS_KEY_u, 0x1EE9, --IBUS_KEY_apostrophe, IBUS_KEY_slash, IBUS_KEY_O, 0x01FE, --IBUS_KEY_apostrophe, IBUS_KEY_slash, IBUS_KEY_o, 0x01FF, --IBUS_KEY_apostrophe, IBUS_KEY_asciicircum, IBUS_KEY_A, 0x1EA4, --IBUS_KEY_apostrophe, IBUS_KEY_asciicircum, IBUS_KEY_E, 0x1EBE, --IBUS_KEY_apostrophe, IBUS_KEY_asciicircum, IBUS_KEY_O, 0x1ED0, --IBUS_KEY_apostrophe, IBUS_KEY_asciicircum, IBUS_KEY_a, 0x1EA5, --IBUS_KEY_apostrophe, IBUS_KEY_asciicircum, IBUS_KEY_e, 0x1EBF, --IBUS_KEY_apostrophe, IBUS_KEY_asciicircum, IBUS_KEY_o, 0x1ED1, --IBUS_KEY_apostrophe, IBUS_KEY_underscore, IBUS_KEY_E, 0x1E16, --IBUS_KEY_apostrophe, IBUS_KEY_underscore, IBUS_KEY_O, 0x1E52, --IBUS_KEY_apostrophe, IBUS_KEY_underscore, IBUS_KEY_e, 0x1E17, --IBUS_KEY_apostrophe, IBUS_KEY_underscore, IBUS_KEY_o, 0x1E53, --IBUS_KEY_apostrophe, IBUS_KEY_b, IBUS_KEY_A, 0x1EAE, --IBUS_KEY_apostrophe, IBUS_KEY_b, IBUS_KEY_a, 0x1EAF, --IBUS_KEY_apostrophe, IBUS_KEY_asciitilde, IBUS_KEY_O, 0x1E4C, --IBUS_KEY_apostrophe, IBUS_KEY_asciitilde, IBUS_KEY_U, 0x1E78, --IBUS_KEY_apostrophe, IBUS_KEY_asciitilde, IBUS_KEY_o, 0x1E4D, --IBUS_KEY_apostrophe, IBUS_KEY_asciitilde, IBUS_KEY_u, 0x1E79, --IBUS_KEY_apostrophe, IBUS_KEY_macron, IBUS_KEY_E, 0x1E16, --IBUS_KEY_apostrophe, IBUS_KEY_macron, IBUS_KEY_O, 0x1E52, --IBUS_KEY_apostrophe, IBUS_KEY_macron, IBUS_KEY_e, 0x1E17, --IBUS_KEY_apostrophe, IBUS_KEY_macron, IBUS_KEY_o, 0x1E53, --IBUS_KEY_apostrophe, IBUS_KEY_cedilla, IBUS_KEY_C, 0x1E08, --IBUS_KEY_apostrophe, IBUS_KEY_cedilla, IBUS_KEY_c, 0x1E09, --IBUS_KEY_apostrophe, IBUS_KEY_dead_circumflex, IBUS_KEY_A, 0x1EA4, --IBUS_KEY_apostrophe, IBUS_KEY_dead_circumflex, IBUS_KEY_E, 0x1EBE, --IBUS_KEY_apostrophe, IBUS_KEY_dead_circumflex, IBUS_KEY_O, 0x1ED0, --IBUS_KEY_apostrophe, IBUS_KEY_dead_circumflex, IBUS_KEY_a, 0x1EA5, --IBUS_KEY_apostrophe, IBUS_KEY_dead_circumflex, IBUS_KEY_e, 0x1EBF, --IBUS_KEY_apostrophe, IBUS_KEY_dead_circumflex, IBUS_KEY_o, 0x1ED1, --IBUS_KEY_apostrophe, IBUS_KEY_dead_tilde, IBUS_KEY_O, 0x1E4C, --IBUS_KEY_apostrophe, IBUS_KEY_dead_tilde, IBUS_KEY_U, 0x1E78, --IBUS_KEY_apostrophe, IBUS_KEY_dead_tilde, IBUS_KEY_o, 0x1E4D, --IBUS_KEY_apostrophe, IBUS_KEY_dead_tilde, IBUS_KEY_u, 0x1E79, --IBUS_KEY_apostrophe, IBUS_KEY_dead_macron, IBUS_KEY_E, 0x1E16, --IBUS_KEY_apostrophe, IBUS_KEY_dead_macron, IBUS_KEY_O, 0x1E52, --IBUS_KEY_apostrophe, IBUS_KEY_dead_macron, IBUS_KEY_e, 0x1E17, --IBUS_KEY_apostrophe, IBUS_KEY_dead_macron, IBUS_KEY_o, 0x1E53, --IBUS_KEY_apostrophe, IBUS_KEY_dead_breve, IBUS_KEY_A, 0x1EAE, --IBUS_KEY_apostrophe, IBUS_KEY_dead_breve, IBUS_KEY_a, 0x1EAF, --IBUS_KEY_apostrophe, IBUS_KEY_dead_diaeresis, IBUS_KEY_I, 0x1E2E, --IBUS_KEY_apostrophe, IBUS_KEY_dead_diaeresis, IBUS_KEY_U, 0x01D7, --IBUS_KEY_apostrophe, IBUS_KEY_dead_diaeresis, IBUS_KEY_i, 0x1E2F, --IBUS_KEY_apostrophe, IBUS_KEY_dead_diaeresis, IBUS_KEY_u, 0x01D8, --IBUS_KEY_apostrophe, IBUS_KEY_dead_diaeresis, IBUS_KEY_Greek_iota, 0x0390, --IBUS_KEY_apostrophe, IBUS_KEY_dead_diaeresis, IBUS_KEY_Greek_upsilon, 0x03B0, --IBUS_KEY_apostrophe, IBUS_KEY_dead_abovering, IBUS_KEY_A, 0x01FA, --IBUS_KEY_apostrophe, IBUS_KEY_dead_abovering, IBUS_KEY_a, 0x01FB, --IBUS_KEY_apostrophe, IBUS_KEY_dead_cedilla, IBUS_KEY_C, 0x1E08, --IBUS_KEY_apostrophe, IBUS_KEY_dead_cedilla, IBUS_KEY_c, 0x1E09, --IBUS_KEY_apostrophe, IBUS_KEY_dead_horn, IBUS_KEY_O, 0x1EDA, --IBUS_KEY_apostrophe, IBUS_KEY_dead_horn, IBUS_KEY_U, 0x1EE8, --IBUS_KEY_apostrophe, IBUS_KEY_dead_horn, IBUS_KEY_o, 0x1EDB, --IBUS_KEY_apostrophe, IBUS_KEY_dead_horn, IBUS_KEY_u, 0x1EE9, --IBUS_KEY_apostrophe, IBUS_KEY_dead_psili, IBUS_KEY_Greek_ALPHA, 0x1F0C, --IBUS_KEY_apostrophe, IBUS_KEY_dead_psili, IBUS_KEY_Greek_EPSILON, 0x1F1C, --IBUS_KEY_apostrophe, IBUS_KEY_dead_psili, IBUS_KEY_Greek_ETA, 0x1F2C, --IBUS_KEY_apostrophe, IBUS_KEY_dead_psili, IBUS_KEY_Greek_IOTA, 0x1F3C, --IBUS_KEY_apostrophe, IBUS_KEY_dead_psili, IBUS_KEY_Greek_OMICRON, 0x1F4C, --IBUS_KEY_apostrophe, IBUS_KEY_dead_psili, IBUS_KEY_Greek_OMEGA, 0x1F6C, --IBUS_KEY_apostrophe, IBUS_KEY_dead_psili, IBUS_KEY_Greek_alpha, 0x1F04, --IBUS_KEY_apostrophe, IBUS_KEY_dead_psili, IBUS_KEY_Greek_epsilon, 0x1F14, --IBUS_KEY_apostrophe, IBUS_KEY_dead_psili, IBUS_KEY_Greek_eta, 0x1F24, --IBUS_KEY_apostrophe, IBUS_KEY_dead_psili, IBUS_KEY_Greek_iota, 0x1F34, --IBUS_KEY_apostrophe, IBUS_KEY_dead_psili, IBUS_KEY_Greek_omicron, 0x1F44, --IBUS_KEY_apostrophe, IBUS_KEY_dead_psili, IBUS_KEY_Greek_upsilon, 0x1F54, --IBUS_KEY_apostrophe, IBUS_KEY_dead_psili, IBUS_KEY_Greek_omega, 0x1F64, --IBUS_KEY_apostrophe, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_ALPHA, 0x1F0D, --IBUS_KEY_apostrophe, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_EPSILON, 0x1F1D, --IBUS_KEY_apostrophe, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_ETA, 0x1F2D, --IBUS_KEY_apostrophe, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_IOTA, 0x1F3D, --IBUS_KEY_apostrophe, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_OMICRON, 0x1F4D, --IBUS_KEY_apostrophe, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_UPSILON, 0x1F5D, --IBUS_KEY_apostrophe, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_OMEGA, 0x1F6D, --IBUS_KEY_apostrophe, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_alpha, 0x1F05, --IBUS_KEY_apostrophe, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_epsilon, 0x1F15, --IBUS_KEY_apostrophe, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_eta, 0x1F25, --IBUS_KEY_apostrophe, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_iota, 0x1F35, --IBUS_KEY_apostrophe, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_omicron, 0x1F45, --IBUS_KEY_apostrophe, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_upsilon, 0x1F55, --IBUS_KEY_apostrophe, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_omega, 0x1F65, --IBUS_KEY_apostrophe, IBUS_KEY_KP_Divide, IBUS_KEY_O, 0x01FE, --IBUS_KEY_apostrophe, IBUS_KEY_KP_Divide, IBUS_KEY_o, 0x01FF, --IBUS_KEY_parenleft, IBUS_KEY_0, IBUS_KEY_parenright, 0x24EA, --IBUS_KEY_parenleft, IBUS_KEY_1, IBUS_KEY_parenright, 0x2460, --IBUS_KEY_parenleft, IBUS_KEY_2, IBUS_KEY_parenright, 0x2461, --IBUS_KEY_parenleft, IBUS_KEY_3, IBUS_KEY_parenright, 0x2462, --IBUS_KEY_parenleft, IBUS_KEY_4, IBUS_KEY_parenright, 0x2463, --IBUS_KEY_parenleft, IBUS_KEY_5, IBUS_KEY_parenright, 0x2464, --IBUS_KEY_parenleft, IBUS_KEY_6, IBUS_KEY_parenright, 0x2465, --IBUS_KEY_parenleft, IBUS_KEY_7, IBUS_KEY_parenright, 0x2466, --IBUS_KEY_parenleft, IBUS_KEY_8, IBUS_KEY_parenright, 0x2467, --IBUS_KEY_parenleft, IBUS_KEY_9, IBUS_KEY_parenright, 0x2468, --IBUS_KEY_parenleft, IBUS_KEY_A, IBUS_KEY_parenright, 0x24B6, --IBUS_KEY_parenleft, IBUS_KEY_B, IBUS_KEY_parenright, 0x24B7, --IBUS_KEY_parenleft, IBUS_KEY_C, IBUS_KEY_parenright, 0x24B8, --IBUS_KEY_parenleft, IBUS_KEY_D, IBUS_KEY_parenright, 0x24B9, --IBUS_KEY_parenleft, IBUS_KEY_E, IBUS_KEY_parenright, 0x24BA, --IBUS_KEY_parenleft, IBUS_KEY_F, IBUS_KEY_parenright, 0x24BB, --IBUS_KEY_parenleft, IBUS_KEY_G, IBUS_KEY_parenright, 0x24BC, --IBUS_KEY_parenleft, IBUS_KEY_H, IBUS_KEY_parenright, 0x24BD, --IBUS_KEY_parenleft, IBUS_KEY_I, IBUS_KEY_parenright, 0x24BE, --IBUS_KEY_parenleft, IBUS_KEY_J, IBUS_KEY_parenright, 0x24BF, --IBUS_KEY_parenleft, IBUS_KEY_K, IBUS_KEY_parenright, 0x24C0, --IBUS_KEY_parenleft, IBUS_KEY_L, IBUS_KEY_parenright, 0x24C1, --IBUS_KEY_parenleft, IBUS_KEY_M, IBUS_KEY_parenright, 0x24C2, --IBUS_KEY_parenleft, IBUS_KEY_N, IBUS_KEY_parenright, 0x24C3, --IBUS_KEY_parenleft, IBUS_KEY_O, IBUS_KEY_parenright, 0x24C4, --IBUS_KEY_parenleft, IBUS_KEY_P, IBUS_KEY_parenright, 0x24C5, --IBUS_KEY_parenleft, IBUS_KEY_Q, IBUS_KEY_parenright, 0x24C6, --IBUS_KEY_parenleft, IBUS_KEY_R, IBUS_KEY_parenright, 0x24C7, --IBUS_KEY_parenleft, IBUS_KEY_S, IBUS_KEY_parenright, 0x24C8, --IBUS_KEY_parenleft, IBUS_KEY_T, IBUS_KEY_parenright, 0x24C9, --IBUS_KEY_parenleft, IBUS_KEY_U, IBUS_KEY_parenright, 0x24CA, --IBUS_KEY_parenleft, IBUS_KEY_V, IBUS_KEY_parenright, 0x24CB, --IBUS_KEY_parenleft, IBUS_KEY_W, IBUS_KEY_parenright, 0x24CC, --IBUS_KEY_parenleft, IBUS_KEY_X, IBUS_KEY_parenright, 0x24CD, --IBUS_KEY_parenleft, IBUS_KEY_Y, IBUS_KEY_parenright, 0x24CE, --IBUS_KEY_parenleft, IBUS_KEY_Z, IBUS_KEY_parenright, 0x24CF, --IBUS_KEY_parenleft, IBUS_KEY_a, IBUS_KEY_parenright, 0x24D0, --IBUS_KEY_parenleft, IBUS_KEY_b, IBUS_KEY_parenright, 0x24D1, --IBUS_KEY_parenleft, IBUS_KEY_c, IBUS_KEY_parenright, 0x24D2, --IBUS_KEY_parenleft, IBUS_KEY_d, IBUS_KEY_parenright, 0x24D3, --IBUS_KEY_parenleft, IBUS_KEY_e, IBUS_KEY_parenright, 0x24D4, --IBUS_KEY_parenleft, IBUS_KEY_f, IBUS_KEY_parenright, 0x24D5, --IBUS_KEY_parenleft, IBUS_KEY_g, IBUS_KEY_parenright, 0x24D6, --IBUS_KEY_parenleft, IBUS_KEY_h, IBUS_KEY_parenright, 0x24D7, --IBUS_KEY_parenleft, IBUS_KEY_i, IBUS_KEY_parenright, 0x24D8, --IBUS_KEY_parenleft, IBUS_KEY_j, IBUS_KEY_parenright, 0x24D9, --IBUS_KEY_parenleft, IBUS_KEY_k, IBUS_KEY_parenright, 0x24DA, --IBUS_KEY_parenleft, IBUS_KEY_l, IBUS_KEY_parenright, 0x24DB, --IBUS_KEY_parenleft, IBUS_KEY_m, IBUS_KEY_parenright, 0x24DC, --IBUS_KEY_parenleft, IBUS_KEY_n, IBUS_KEY_parenright, 0x24DD, --IBUS_KEY_parenleft, IBUS_KEY_o, IBUS_KEY_parenright, 0x24DE, --IBUS_KEY_parenleft, IBUS_KEY_p, IBUS_KEY_parenright, 0x24DF, --IBUS_KEY_parenleft, IBUS_KEY_q, IBUS_KEY_parenright, 0x24E0, --IBUS_KEY_parenleft, IBUS_KEY_r, IBUS_KEY_parenright, 0x24E1, --IBUS_KEY_parenleft, IBUS_KEY_s, IBUS_KEY_parenright, 0x24E2, --IBUS_KEY_parenleft, IBUS_KEY_t, IBUS_KEY_parenright, 0x24E3, --IBUS_KEY_parenleft, IBUS_KEY_u, IBUS_KEY_parenright, 0x24E4, --IBUS_KEY_parenleft, IBUS_KEY_v, IBUS_KEY_parenright, 0x24E5, --IBUS_KEY_parenleft, IBUS_KEY_w, IBUS_KEY_parenright, 0x24E6, --IBUS_KEY_parenleft, IBUS_KEY_x, IBUS_KEY_parenright, 0x24E7, --IBUS_KEY_parenleft, IBUS_KEY_y, IBUS_KEY_parenright, 0x24E8, --IBUS_KEY_parenleft, IBUS_KEY_z, IBUS_KEY_parenright, 0x24E9, --IBUS_KEY_parenleft, IBUS_KEY_kana_WO, IBUS_KEY_parenright, 0x32FE, --IBUS_KEY_parenleft, IBUS_KEY_kana_A, IBUS_KEY_parenright, 0x32D0, --IBUS_KEY_parenleft, IBUS_KEY_kana_I, IBUS_KEY_parenright, 0x32D1, --IBUS_KEY_parenleft, IBUS_KEY_kana_U, IBUS_KEY_parenright, 0x32D2, --IBUS_KEY_parenleft, IBUS_KEY_kana_E, IBUS_KEY_parenright, 0x32D3, --IBUS_KEY_parenleft, IBUS_KEY_kana_O, IBUS_KEY_parenright, 0x32D4, --IBUS_KEY_parenleft, IBUS_KEY_kana_KA, IBUS_KEY_parenright, 0x32D5, --IBUS_KEY_parenleft, IBUS_KEY_kana_KI, IBUS_KEY_parenright, 0x32D6, --IBUS_KEY_parenleft, IBUS_KEY_kana_KU, IBUS_KEY_parenright, 0x32D7, --IBUS_KEY_parenleft, IBUS_KEY_kana_KE, IBUS_KEY_parenright, 0x32D8, --IBUS_KEY_parenleft, IBUS_KEY_kana_KO, IBUS_KEY_parenright, 0x32D9, --IBUS_KEY_parenleft, IBUS_KEY_kana_SA, IBUS_KEY_parenright, 0x32DA, --IBUS_KEY_parenleft, IBUS_KEY_kana_SHI, IBUS_KEY_parenright, 0x32DB, --IBUS_KEY_parenleft, IBUS_KEY_kana_SU, IBUS_KEY_parenright, 0x32DC, --IBUS_KEY_parenleft, IBUS_KEY_kana_SE, IBUS_KEY_parenright, 0x32DD, --IBUS_KEY_parenleft, IBUS_KEY_kana_SO, IBUS_KEY_parenright, 0x32DE, --IBUS_KEY_parenleft, IBUS_KEY_kana_TA, IBUS_KEY_parenright, 0x32DF, --IBUS_KEY_parenleft, IBUS_KEY_kana_CHI, IBUS_KEY_parenright, 0x32E0, --IBUS_KEY_parenleft, IBUS_KEY_kana_TSU, IBUS_KEY_parenright, 0x32E1, --IBUS_KEY_parenleft, IBUS_KEY_kana_TE, IBUS_KEY_parenright, 0x32E2, --IBUS_KEY_parenleft, IBUS_KEY_kana_TO, IBUS_KEY_parenright, 0x32E3, --IBUS_KEY_parenleft, IBUS_KEY_kana_NA, IBUS_KEY_parenright, 0x32E4, --IBUS_KEY_parenleft, IBUS_KEY_kana_NI, IBUS_KEY_parenright, 0x32E5, --IBUS_KEY_parenleft, IBUS_KEY_kana_NU, IBUS_KEY_parenright, 0x32E6, --IBUS_KEY_parenleft, IBUS_KEY_kana_NE, IBUS_KEY_parenright, 0x32E7, --IBUS_KEY_parenleft, IBUS_KEY_kana_NO, IBUS_KEY_parenright, 0x32E8, --IBUS_KEY_parenleft, IBUS_KEY_kana_HA, IBUS_KEY_parenright, 0x32E9, --IBUS_KEY_parenleft, IBUS_KEY_kana_HI, IBUS_KEY_parenright, 0x32EA, --IBUS_KEY_parenleft, IBUS_KEY_kana_FU, IBUS_KEY_parenright, 0x32EB, --IBUS_KEY_parenleft, IBUS_KEY_kana_HE, IBUS_KEY_parenright, 0x32EC, --IBUS_KEY_parenleft, IBUS_KEY_kana_HO, IBUS_KEY_parenright, 0x32ED, --IBUS_KEY_parenleft, IBUS_KEY_kana_MA, IBUS_KEY_parenright, 0x32EE, --IBUS_KEY_parenleft, IBUS_KEY_kana_MI, IBUS_KEY_parenright, 0x32EF, --IBUS_KEY_parenleft, IBUS_KEY_kana_MU, IBUS_KEY_parenright, 0x32F0, --IBUS_KEY_parenleft, IBUS_KEY_kana_ME, IBUS_KEY_parenright, 0x32F1, --IBUS_KEY_parenleft, IBUS_KEY_kana_MO, IBUS_KEY_parenright, 0x32F2, --IBUS_KEY_parenleft, IBUS_KEY_kana_YA, IBUS_KEY_parenright, 0x32F3, --IBUS_KEY_parenleft, IBUS_KEY_kana_YU, IBUS_KEY_parenright, 0x32F4, --IBUS_KEY_parenleft, IBUS_KEY_kana_YO, IBUS_KEY_parenright, 0x32F5, --IBUS_KEY_parenleft, IBUS_KEY_kana_RA, IBUS_KEY_parenright, 0x32F6, --IBUS_KEY_parenleft, IBUS_KEY_kana_RI, IBUS_KEY_parenright, 0x32F7, --IBUS_KEY_parenleft, IBUS_KEY_kana_RU, IBUS_KEY_parenright, 0x32F8, --IBUS_KEY_parenleft, IBUS_KEY_kana_RE, IBUS_KEY_parenright, 0x32F9, --IBUS_KEY_parenleft, IBUS_KEY_kana_RO, IBUS_KEY_parenright, 0x32FA, --IBUS_KEY_parenleft, IBUS_KEY_kana_WA, IBUS_KEY_parenright, 0x32FB, --IBUS_KEY_parenleft, 0x1100, IBUS_KEY_parenright, 0x3260, --IBUS_KEY_parenleft, 0x1102, IBUS_KEY_parenright, 0x3261, --IBUS_KEY_parenleft, 0x1103, IBUS_KEY_parenright, 0x3262, --IBUS_KEY_parenleft, 0x1105, IBUS_KEY_parenright, 0x3263, --IBUS_KEY_parenleft, 0x1106, IBUS_KEY_parenright, 0x3264, --IBUS_KEY_parenleft, 0x1107, IBUS_KEY_parenright, 0x3265, --IBUS_KEY_parenleft, 0x1109, IBUS_KEY_parenright, 0x3266, --IBUS_KEY_parenleft, 0x110B, IBUS_KEY_parenright, 0x3267, --IBUS_KEY_parenleft, 0x110C, IBUS_KEY_parenright, 0x3268, --IBUS_KEY_parenleft, 0x110E, IBUS_KEY_parenright, 0x3269, --IBUS_KEY_parenleft, 0x110F, IBUS_KEY_parenright, 0x326A, --IBUS_KEY_parenleft, 0x1110, IBUS_KEY_parenright, 0x326B, --IBUS_KEY_parenleft, 0x1111, IBUS_KEY_parenright, 0x326C, --IBUS_KEY_parenleft, 0x1112, IBUS_KEY_parenright, 0x326D, --IBUS_KEY_parenleft, 0x30F0, IBUS_KEY_parenright, 0x32FC, --IBUS_KEY_parenleft, 0x30F1, IBUS_KEY_parenright, 0x32FD, --IBUS_KEY_parenleft, 0x4E00, IBUS_KEY_parenright, 0x3280, --IBUS_KEY_parenleft, 0x4E03, IBUS_KEY_parenright, 0x3286, --IBUS_KEY_parenleft, 0x4E09, IBUS_KEY_parenright, 0x3282, --IBUS_KEY_parenleft, 0x4E0A, IBUS_KEY_parenright, 0x32A4, --IBUS_KEY_parenleft, 0x4E0B, IBUS_KEY_parenright, 0x32A6, --IBUS_KEY_parenleft, 0x4E2D, IBUS_KEY_parenright, 0x32A5, --IBUS_KEY_parenleft, 0x4E5D, IBUS_KEY_parenright, 0x3288, --IBUS_KEY_parenleft, 0x4E8C, IBUS_KEY_parenright, 0x3281, --IBUS_KEY_parenleft, 0x4E94, IBUS_KEY_parenright, 0x3284, --IBUS_KEY_parenleft, 0x4F01, IBUS_KEY_parenright, 0x32AD, --IBUS_KEY_parenleft, 0x4F11, IBUS_KEY_parenright, 0x32A1, --IBUS_KEY_parenleft, 0x512A, IBUS_KEY_parenright, 0x329D, --IBUS_KEY_parenleft, 0x516B, IBUS_KEY_parenright, 0x3287, --IBUS_KEY_parenleft, 0x516D, IBUS_KEY_parenright, 0x3285, --IBUS_KEY_parenleft, 0x5199, IBUS_KEY_parenright, 0x32A2, --IBUS_KEY_parenleft, 0x52B4, IBUS_KEY_parenright, 0x3298, --IBUS_KEY_parenleft, 0x533B, IBUS_KEY_parenright, 0x32A9, --IBUS_KEY_parenleft, 0x5341, IBUS_KEY_parenright, 0x3289, --IBUS_KEY_parenleft, 0x5354, IBUS_KEY_parenright, 0x32AF, --IBUS_KEY_parenleft, 0x5370, IBUS_KEY_parenright, 0x329E, --IBUS_KEY_parenleft, 0x53F3, IBUS_KEY_parenright, 0x32A8, --IBUS_KEY_parenleft, 0x540D, IBUS_KEY_parenright, 0x3294, --IBUS_KEY_parenleft, 0x56DB, IBUS_KEY_parenright, 0x3283, --IBUS_KEY_parenleft, 0x571F, IBUS_KEY_parenright, 0x328F, --IBUS_KEY_parenleft, 0x591C, IBUS_KEY_parenright, 0x32B0, --IBUS_KEY_parenleft, 0x5973, IBUS_KEY_parenright, 0x329B, --IBUS_KEY_parenleft, 0x5B66, IBUS_KEY_parenright, 0x32AB, --IBUS_KEY_parenleft, 0x5B97, IBUS_KEY_parenright, 0x32AA, --IBUS_KEY_parenleft, 0x5DE6, IBUS_KEY_parenright, 0x32A7, --IBUS_KEY_parenleft, 0x65E5, IBUS_KEY_parenright, 0x3290, --IBUS_KEY_parenleft, 0x6708, IBUS_KEY_parenright, 0x328A, --IBUS_KEY_parenleft, 0x6709, IBUS_KEY_parenright, 0x3292, --IBUS_KEY_parenleft, 0x6728, IBUS_KEY_parenright, 0x328D, --IBUS_KEY_parenleft, 0x682A, IBUS_KEY_parenright, 0x3291, --IBUS_KEY_parenleft, 0x6B63, IBUS_KEY_parenright, 0x32A3, --IBUS_KEY_parenleft, 0x6C34, IBUS_KEY_parenright, 0x328C, --IBUS_KEY_parenleft, 0x6CE8, IBUS_KEY_parenright, 0x329F, --IBUS_KEY_parenleft, 0x706B, IBUS_KEY_parenright, 0x328B, --IBUS_KEY_parenleft, 0x7279, IBUS_KEY_parenright, 0x3295, --IBUS_KEY_parenleft, 0x7537, IBUS_KEY_parenright, 0x329A, --IBUS_KEY_parenleft, 0x76E3, IBUS_KEY_parenright, 0x32AC, --IBUS_KEY_parenleft, 0x793E, IBUS_KEY_parenright, 0x3293, --IBUS_KEY_parenleft, 0x795D, IBUS_KEY_parenright, 0x3297, --IBUS_KEY_parenleft, 0x79D8, IBUS_KEY_parenright, 0x3299, --IBUS_KEY_parenleft, 0x8CA1, IBUS_KEY_parenright, 0x3296, --IBUS_KEY_parenleft, 0x8CC7, IBUS_KEY_parenright, 0x32AE, --IBUS_KEY_parenleft, 0x9069, IBUS_KEY_parenright, 0x329C, --IBUS_KEY_parenleft, 0x91D1, IBUS_KEY_parenright, 0x328E, --IBUS_KEY_parenleft, 0x9805, IBUS_KEY_parenright, 0x32A0, --IBUS_KEY_parenleft, IBUS_KEY_KP_Space, IBUS_KEY_parenright, 0x2461, --IBUS_KEY_parenleft, IBUS_KEY_KP_0, IBUS_KEY_parenright, 0x24EA, --IBUS_KEY_parenleft, IBUS_KEY_KP_1, IBUS_KEY_parenright, 0x2460, --IBUS_KEY_parenleft, IBUS_KEY_KP_2, IBUS_KEY_parenright, 0x2461, --IBUS_KEY_parenleft, IBUS_KEY_KP_3, IBUS_KEY_parenright, 0x2462, --IBUS_KEY_parenleft, IBUS_KEY_KP_4, IBUS_KEY_parenright, 0x2463, --IBUS_KEY_parenleft, IBUS_KEY_KP_5, IBUS_KEY_parenright, 0x2464, --IBUS_KEY_parenleft, IBUS_KEY_KP_6, IBUS_KEY_parenright, 0x2465, --IBUS_KEY_parenleft, IBUS_KEY_KP_7, IBUS_KEY_parenright, 0x2466, --IBUS_KEY_parenleft, IBUS_KEY_KP_8, IBUS_KEY_parenright, 0x2467, --IBUS_KEY_parenleft, IBUS_KEY_KP_9, IBUS_KEY_parenright, 0x2468, --IBUS_KEY_asterisk, IBUS_KEY_apostrophe, IBUS_KEY_A, 0x01FA, --IBUS_KEY_asterisk, IBUS_KEY_apostrophe, IBUS_KEY_a, 0x01FB, --IBUS_KEY_minus, IBUS_KEY_minus, IBUS_KEY_space, 0x00AD, --IBUS_KEY_minus, IBUS_KEY_minus, IBUS_KEY_minus, 0x2014, --IBUS_KEY_minus, IBUS_KEY_minus, IBUS_KEY_period, 0x2013, --IBUS_KEY_period, IBUS_KEY_exclam, IBUS_KEY_S, 0x1E68, --IBUS_KEY_period, IBUS_KEY_exclam, IBUS_KEY_s, 0x1E69, --IBUS_KEY_period, IBUS_KEY_apostrophe, IBUS_KEY_S, 0x1E64, --IBUS_KEY_period, IBUS_KEY_apostrophe, IBUS_KEY_s, 0x1E65, --IBUS_KEY_period, IBUS_KEY_acute, IBUS_KEY_S, 0x1E64, --IBUS_KEY_period, IBUS_KEY_acute, IBUS_KEY_s, 0x1E65, --IBUS_KEY_period, IBUS_KEY_dead_acute, IBUS_KEY_S, 0x1E64, --IBUS_KEY_period, IBUS_KEY_dead_acute, IBUS_KEY_s, 0x1E65, --IBUS_KEY_period, IBUS_KEY_dead_caron, IBUS_KEY_S, 0x1E66, --IBUS_KEY_period, IBUS_KEY_dead_caron, IBUS_KEY_s, 0x1E67, --IBUS_KEY_period, IBUS_KEY_dead_belowdot, IBUS_KEY_S, 0x1E68, --IBUS_KEY_period, IBUS_KEY_dead_belowdot, IBUS_KEY_s, 0x1E69, --IBUS_KEY_1, IBUS_KEY_1, IBUS_KEY_0, 0x2152, --IBUS_KEY_question, IBUS_KEY_plus, IBUS_KEY_O, 0x1EDE, --IBUS_KEY_question, IBUS_KEY_plus, IBUS_KEY_U, 0x1EEC, --IBUS_KEY_question, IBUS_KEY_plus, IBUS_KEY_o, 0x1EDF, --IBUS_KEY_question, IBUS_KEY_plus, IBUS_KEY_u, 0x1EED, --IBUS_KEY_question, IBUS_KEY_asciicircum, IBUS_KEY_A, 0x1EA8, --IBUS_KEY_question, IBUS_KEY_asciicircum, IBUS_KEY_E, 0x1EC2, --IBUS_KEY_question, IBUS_KEY_asciicircum, IBUS_KEY_O, 0x1ED4, --IBUS_KEY_question, IBUS_KEY_asciicircum, IBUS_KEY_a, 0x1EA9, --IBUS_KEY_question, IBUS_KEY_asciicircum, IBUS_KEY_e, 0x1EC3, --IBUS_KEY_question, IBUS_KEY_asciicircum, IBUS_KEY_o, 0x1ED5, --IBUS_KEY_question, IBUS_KEY_b, IBUS_KEY_A, 0x1EB2, --IBUS_KEY_question, IBUS_KEY_b, IBUS_KEY_a, 0x1EB3, --IBUS_KEY_question, IBUS_KEY_dead_circumflex, IBUS_KEY_A, 0x1EA8, --IBUS_KEY_question, IBUS_KEY_dead_circumflex, IBUS_KEY_E, 0x1EC2, --IBUS_KEY_question, IBUS_KEY_dead_circumflex, IBUS_KEY_O, 0x1ED4, --IBUS_KEY_question, IBUS_KEY_dead_circumflex, IBUS_KEY_a, 0x1EA9, --IBUS_KEY_question, IBUS_KEY_dead_circumflex, IBUS_KEY_e, 0x1EC3, --IBUS_KEY_question, IBUS_KEY_dead_circumflex, IBUS_KEY_o, 0x1ED5, --IBUS_KEY_question, IBUS_KEY_dead_breve, IBUS_KEY_A, 0x1EB2, --IBUS_KEY_question, IBUS_KEY_dead_breve, IBUS_KEY_a, 0x1EB3, --IBUS_KEY_question, IBUS_KEY_dead_horn, IBUS_KEY_O, 0x1EDE, --IBUS_KEY_question, IBUS_KEY_dead_horn, IBUS_KEY_U, 0x1EEC, --IBUS_KEY_question, IBUS_KEY_dead_horn, IBUS_KEY_o, 0x1EDF, --IBUS_KEY_question, IBUS_KEY_dead_horn, IBUS_KEY_u, 0x1EED, --IBUS_KEY_U, IBUS_KEY_exclam, IBUS_KEY_A, 0x1EB6, --IBUS_KEY_U, IBUS_KEY_exclam, IBUS_KEY_a, 0x1EB7, --IBUS_KEY_U, IBUS_KEY_cedilla, IBUS_KEY_E, 0x1E1C, --IBUS_KEY_U, IBUS_KEY_cedilla, IBUS_KEY_e, 0x1E1D, --IBUS_KEY_U, IBUS_KEY_dead_cedilla, IBUS_KEY_E, 0x1E1C, --IBUS_KEY_U, IBUS_KEY_dead_cedilla, IBUS_KEY_e, 0x1E1D, --IBUS_KEY_U, IBUS_KEY_dead_belowdot, IBUS_KEY_A, 0x1EB6, --IBUS_KEY_U, IBUS_KEY_dead_belowdot, IBUS_KEY_a, 0x1EB7, --IBUS_KEY_asciicircum, IBUS_KEY_exclam, IBUS_KEY_A, 0x1EAC, --IBUS_KEY_asciicircum, IBUS_KEY_exclam, IBUS_KEY_E, 0x1EC6, --IBUS_KEY_asciicircum, IBUS_KEY_exclam, IBUS_KEY_O, 0x1ED8, --IBUS_KEY_asciicircum, IBUS_KEY_exclam, IBUS_KEY_a, 0x1EAD, --IBUS_KEY_asciicircum, IBUS_KEY_exclam, IBUS_KEY_e, 0x1EC7, --IBUS_KEY_asciicircum, IBUS_KEY_exclam, IBUS_KEY_o, 0x1ED9, --IBUS_KEY_asciicircum, IBUS_KEY_underscore, IBUS_KEY_a, 0x00AA, --IBUS_KEY_asciicircum, IBUS_KEY_underscore, IBUS_KEY_h, 0x02B0, --IBUS_KEY_asciicircum, IBUS_KEY_underscore, IBUS_KEY_i, 0x2071, --IBUS_KEY_asciicircum, IBUS_KEY_underscore, IBUS_KEY_j, 0x02B2, --IBUS_KEY_asciicircum, IBUS_KEY_underscore, IBUS_KEY_l, 0x02E1, --IBUS_KEY_asciicircum, IBUS_KEY_underscore, IBUS_KEY_n, 0x207F, --IBUS_KEY_asciicircum, IBUS_KEY_underscore, IBUS_KEY_o, 0x00BA, --IBUS_KEY_asciicircum, IBUS_KEY_underscore, IBUS_KEY_r, 0x02B3, --IBUS_KEY_asciicircum, IBUS_KEY_underscore, IBUS_KEY_s, 0x02E2, --IBUS_KEY_asciicircum, IBUS_KEY_underscore, IBUS_KEY_w, 0x02B7, --IBUS_KEY_asciicircum, IBUS_KEY_underscore, IBUS_KEY_x, 0x02E3, --IBUS_KEY_asciicircum, IBUS_KEY_underscore, IBUS_KEY_y, 0x02B8, --IBUS_KEY_asciicircum, IBUS_KEY_underscore, 0x0263, 0x02E0, --IBUS_KEY_asciicircum, IBUS_KEY_underscore, 0x0266, 0x02B1, --IBUS_KEY_asciicircum, IBUS_KEY_underscore, 0x0279, 0x02B4, --IBUS_KEY_asciicircum, IBUS_KEY_underscore, 0x027B, 0x02B5, --IBUS_KEY_asciicircum, IBUS_KEY_underscore, 0x0281, 0x02B6, --IBUS_KEY_asciicircum, IBUS_KEY_underscore, 0x0295, 0x02E4, --IBUS_KEY_asciicircum, IBUS_KEY_underbar, IBUS_KEY_a, 0x00AA, --IBUS_KEY_asciicircum, IBUS_KEY_underbar, IBUS_KEY_h, 0x02B0, --IBUS_KEY_asciicircum, IBUS_KEY_underbar, IBUS_KEY_i, 0x2071, --IBUS_KEY_asciicircum, IBUS_KEY_underbar, IBUS_KEY_j, 0x02B2, --IBUS_KEY_asciicircum, IBUS_KEY_underbar, IBUS_KEY_l, 0x02E1, --IBUS_KEY_asciicircum, IBUS_KEY_underbar, IBUS_KEY_n, 0x207F, --IBUS_KEY_asciicircum, IBUS_KEY_underbar, IBUS_KEY_o, 0x00BA, --IBUS_KEY_asciicircum, IBUS_KEY_underbar, IBUS_KEY_r, 0x02B3, --IBUS_KEY_asciicircum, IBUS_KEY_underbar, IBUS_KEY_s, 0x02E2, --IBUS_KEY_asciicircum, IBUS_KEY_underbar, IBUS_KEY_w, 0x02B7, --IBUS_KEY_asciicircum, IBUS_KEY_underbar, IBUS_KEY_x, 0x02E3, --IBUS_KEY_asciicircum, IBUS_KEY_underbar, IBUS_KEY_y, 0x02B8, --IBUS_KEY_asciicircum, IBUS_KEY_underbar, 0x0263, 0x02E0, --IBUS_KEY_asciicircum, IBUS_KEY_underbar, 0x0266, 0x02B1, --IBUS_KEY_asciicircum, IBUS_KEY_underbar, 0x0279, 0x02B4, --IBUS_KEY_asciicircum, IBUS_KEY_underbar, 0x027B, 0x02B5, --IBUS_KEY_asciicircum, IBUS_KEY_underbar, 0x0281, 0x02B6, --IBUS_KEY_asciicircum, IBUS_KEY_underbar, 0x0295, 0x02E4, --IBUS_KEY_asciicircum, IBUS_KEY_dead_belowdot, IBUS_KEY_A, 0x1EAC, --IBUS_KEY_asciicircum, IBUS_KEY_dead_belowdot, IBUS_KEY_E, 0x1EC6, --IBUS_KEY_asciicircum, IBUS_KEY_dead_belowdot, IBUS_KEY_O, 0x1ED8, --IBUS_KEY_asciicircum, IBUS_KEY_dead_belowdot, IBUS_KEY_a, 0x1EAD, --IBUS_KEY_asciicircum, IBUS_KEY_dead_belowdot, IBUS_KEY_e, 0x1EC7, --IBUS_KEY_asciicircum, IBUS_KEY_dead_belowdot, IBUS_KEY_o, 0x1ED9, --IBUS_KEY_underscore, IBUS_KEY_exclam, IBUS_KEY_L, 0x1E38, --IBUS_KEY_underscore, IBUS_KEY_exclam, IBUS_KEY_R, 0x1E5C, --IBUS_KEY_underscore, IBUS_KEY_exclam, IBUS_KEY_l, 0x1E39, --IBUS_KEY_underscore, IBUS_KEY_exclam, IBUS_KEY_r, 0x1E5D, --IBUS_KEY_underscore, IBUS_KEY_quotedbl, IBUS_KEY_A, 0x01DE, --IBUS_KEY_underscore, IBUS_KEY_quotedbl, IBUS_KEY_O, 0x022A, --IBUS_KEY_underscore, IBUS_KEY_quotedbl, IBUS_KEY_U, 0x01D5, --IBUS_KEY_underscore, IBUS_KEY_quotedbl, IBUS_KEY_a, 0x01DF, --IBUS_KEY_underscore, IBUS_KEY_quotedbl, IBUS_KEY_o, 0x022B, --IBUS_KEY_underscore, IBUS_KEY_quotedbl, IBUS_KEY_u, 0x01D6, --IBUS_KEY_underscore, IBUS_KEY_period, IBUS_KEY_A, 0x01E0, --IBUS_KEY_underscore, IBUS_KEY_period, IBUS_KEY_O, 0x0230, --IBUS_KEY_underscore, IBUS_KEY_period, IBUS_KEY_a, 0x01E1, --IBUS_KEY_underscore, IBUS_KEY_period, IBUS_KEY_o, 0x0231, --IBUS_KEY_underscore, IBUS_KEY_semicolon, IBUS_KEY_O, 0x01EC, --IBUS_KEY_underscore, IBUS_KEY_semicolon, IBUS_KEY_o, 0x01ED, --IBUS_KEY_underscore, IBUS_KEY_asciitilde, IBUS_KEY_O, 0x022C, --IBUS_KEY_underscore, IBUS_KEY_asciitilde, IBUS_KEY_o, 0x022D, --IBUS_KEY_underscore, IBUS_KEY_dead_tilde, IBUS_KEY_O, 0x022C, --IBUS_KEY_underscore, IBUS_KEY_dead_tilde, IBUS_KEY_o, 0x022D, --IBUS_KEY_underscore, IBUS_KEY_dead_abovedot, IBUS_KEY_A, 0x01E0, --IBUS_KEY_underscore, IBUS_KEY_dead_abovedot, IBUS_KEY_O, 0x0230, --IBUS_KEY_underscore, IBUS_KEY_dead_abovedot, IBUS_KEY_a, 0x01E1, --IBUS_KEY_underscore, IBUS_KEY_dead_abovedot, IBUS_KEY_o, 0x0231, --IBUS_KEY_underscore, IBUS_KEY_dead_diaeresis, IBUS_KEY_A, 0x01DE, --IBUS_KEY_underscore, IBUS_KEY_dead_diaeresis, IBUS_KEY_O, 0x022A, --IBUS_KEY_underscore, IBUS_KEY_dead_diaeresis, IBUS_KEY_U, 0x01D5, --IBUS_KEY_underscore, IBUS_KEY_dead_diaeresis, IBUS_KEY_a, 0x01DF, --IBUS_KEY_underscore, IBUS_KEY_dead_diaeresis, IBUS_KEY_o, 0x022B, --IBUS_KEY_underscore, IBUS_KEY_dead_diaeresis, IBUS_KEY_u, 0x01D6, --IBUS_KEY_underscore, IBUS_KEY_dead_ogonek, IBUS_KEY_O, 0x01EC, --IBUS_KEY_underscore, IBUS_KEY_dead_ogonek, IBUS_KEY_o, 0x01ED, --IBUS_KEY_underscore, IBUS_KEY_dead_belowdot, IBUS_KEY_L, 0x1E38, --IBUS_KEY_underscore, IBUS_KEY_dead_belowdot, IBUS_KEY_R, 0x1E5C, --IBUS_KEY_underscore, IBUS_KEY_dead_belowdot, IBUS_KEY_l, 0x1E39, --IBUS_KEY_underscore, IBUS_KEY_dead_belowdot, IBUS_KEY_r, 0x1E5D, --IBUS_KEY_grave, IBUS_KEY_quotedbl, IBUS_KEY_U, 0x01DB, --IBUS_KEY_grave, IBUS_KEY_quotedbl, IBUS_KEY_u, 0x01DC, --IBUS_KEY_grave, IBUS_KEY_quotedbl, IBUS_KEY_Greek_iota, 0x1FD2, --IBUS_KEY_grave, IBUS_KEY_quotedbl, IBUS_KEY_Greek_upsilon, 0x1FE2, --IBUS_KEY_grave, IBUS_KEY_parenleft, IBUS_KEY_Greek_ALPHA, 0x1F0B, --IBUS_KEY_grave, IBUS_KEY_parenleft, IBUS_KEY_Greek_EPSILON, 0x1F1B, --IBUS_KEY_grave, IBUS_KEY_parenleft, IBUS_KEY_Greek_ETA, 0x1F2B, --IBUS_KEY_grave, IBUS_KEY_parenleft, IBUS_KEY_Greek_IOTA, 0x1F3B, --IBUS_KEY_grave, IBUS_KEY_parenleft, IBUS_KEY_Greek_OMICRON, 0x1F4B, --IBUS_KEY_grave, IBUS_KEY_parenleft, IBUS_KEY_Greek_UPSILON, 0x1F5B, --IBUS_KEY_grave, IBUS_KEY_parenleft, IBUS_KEY_Greek_OMEGA, 0x1F6B, --IBUS_KEY_grave, IBUS_KEY_parenleft, IBUS_KEY_Greek_alpha, 0x1F03, --IBUS_KEY_grave, IBUS_KEY_parenleft, IBUS_KEY_Greek_epsilon, 0x1F13, --IBUS_KEY_grave, IBUS_KEY_parenleft, IBUS_KEY_Greek_eta, 0x1F23, --IBUS_KEY_grave, IBUS_KEY_parenleft, IBUS_KEY_Greek_iota, 0x1F33, --IBUS_KEY_grave, IBUS_KEY_parenleft, IBUS_KEY_Greek_omicron, 0x1F43, --IBUS_KEY_grave, IBUS_KEY_parenleft, IBUS_KEY_Greek_upsilon, 0x1F53, --IBUS_KEY_grave, IBUS_KEY_parenleft, IBUS_KEY_Greek_omega, 0x1F63, --IBUS_KEY_grave, IBUS_KEY_parenright, IBUS_KEY_Greek_ALPHA, 0x1F0A, --IBUS_KEY_grave, IBUS_KEY_parenright, IBUS_KEY_Greek_EPSILON, 0x1F1A, --IBUS_KEY_grave, IBUS_KEY_parenright, IBUS_KEY_Greek_ETA, 0x1F2A, --IBUS_KEY_grave, IBUS_KEY_parenright, IBUS_KEY_Greek_IOTA, 0x1F3A, --IBUS_KEY_grave, IBUS_KEY_parenright, IBUS_KEY_Greek_OMICRON, 0x1F4A, --IBUS_KEY_grave, IBUS_KEY_parenright, IBUS_KEY_Greek_OMEGA, 0x1F6A, --IBUS_KEY_grave, IBUS_KEY_parenright, IBUS_KEY_Greek_alpha, 0x1F02, --IBUS_KEY_grave, IBUS_KEY_parenright, IBUS_KEY_Greek_epsilon, 0x1F12, --IBUS_KEY_grave, IBUS_KEY_parenright, IBUS_KEY_Greek_eta, 0x1F22, --IBUS_KEY_grave, IBUS_KEY_parenright, IBUS_KEY_Greek_iota, 0x1F32, --IBUS_KEY_grave, IBUS_KEY_parenright, IBUS_KEY_Greek_omicron, 0x1F42, --IBUS_KEY_grave, IBUS_KEY_parenright, IBUS_KEY_Greek_upsilon, 0x1F52, --IBUS_KEY_grave, IBUS_KEY_parenright, IBUS_KEY_Greek_omega, 0x1F62, --IBUS_KEY_grave, IBUS_KEY_plus, IBUS_KEY_O, 0x1EDC, --IBUS_KEY_grave, IBUS_KEY_plus, IBUS_KEY_U, 0x1EEA, --IBUS_KEY_grave, IBUS_KEY_plus, IBUS_KEY_o, 0x1EDD, --IBUS_KEY_grave, IBUS_KEY_plus, IBUS_KEY_u, 0x1EEB, --IBUS_KEY_grave, IBUS_KEY_asciicircum, IBUS_KEY_A, 0x1EA6, --IBUS_KEY_grave, IBUS_KEY_asciicircum, IBUS_KEY_E, 0x1EC0, --IBUS_KEY_grave, IBUS_KEY_asciicircum, IBUS_KEY_O, 0x1ED2, --IBUS_KEY_grave, IBUS_KEY_asciicircum, IBUS_KEY_a, 0x1EA7, --IBUS_KEY_grave, IBUS_KEY_asciicircum, IBUS_KEY_e, 0x1EC1, --IBUS_KEY_grave, IBUS_KEY_asciicircum, IBUS_KEY_o, 0x1ED3, --IBUS_KEY_grave, IBUS_KEY_underscore, IBUS_KEY_E, 0x1E14, --IBUS_KEY_grave, IBUS_KEY_underscore, IBUS_KEY_O, 0x1E50, --IBUS_KEY_grave, IBUS_KEY_underscore, IBUS_KEY_e, 0x1E15, --IBUS_KEY_grave, IBUS_KEY_underscore, IBUS_KEY_o, 0x1E51, --IBUS_KEY_grave, IBUS_KEY_b, IBUS_KEY_A, 0x1EB0, --IBUS_KEY_grave, IBUS_KEY_b, IBUS_KEY_a, 0x1EB1, --IBUS_KEY_grave, IBUS_KEY_macron, IBUS_KEY_E, 0x1E14, --IBUS_KEY_grave, IBUS_KEY_macron, IBUS_KEY_O, 0x1E50, --IBUS_KEY_grave, IBUS_KEY_macron, IBUS_KEY_e, 0x1E15, --IBUS_KEY_grave, IBUS_KEY_macron, IBUS_KEY_o, 0x1E51, --IBUS_KEY_grave, IBUS_KEY_dead_circumflex, IBUS_KEY_A, 0x1EA6, --IBUS_KEY_grave, IBUS_KEY_dead_circumflex, IBUS_KEY_E, 0x1EC0, --IBUS_KEY_grave, IBUS_KEY_dead_circumflex, IBUS_KEY_O, 0x1ED2, --IBUS_KEY_grave, IBUS_KEY_dead_circumflex, IBUS_KEY_a, 0x1EA7, --IBUS_KEY_grave, IBUS_KEY_dead_circumflex, IBUS_KEY_e, 0x1EC1, --IBUS_KEY_grave, IBUS_KEY_dead_circumflex, IBUS_KEY_o, 0x1ED3, --IBUS_KEY_grave, IBUS_KEY_dead_macron, IBUS_KEY_E, 0x1E14, --IBUS_KEY_grave, IBUS_KEY_dead_macron, IBUS_KEY_O, 0x1E50, --IBUS_KEY_grave, IBUS_KEY_dead_macron, IBUS_KEY_e, 0x1E15, --IBUS_KEY_grave, IBUS_KEY_dead_macron, IBUS_KEY_o, 0x1E51, --IBUS_KEY_grave, IBUS_KEY_dead_breve, IBUS_KEY_A, 0x1EB0, --IBUS_KEY_grave, IBUS_KEY_dead_breve, IBUS_KEY_a, 0x1EB1, --IBUS_KEY_grave, IBUS_KEY_dead_diaeresis, IBUS_KEY_U, 0x01DB, --IBUS_KEY_grave, IBUS_KEY_dead_diaeresis, IBUS_KEY_u, 0x01DC, --IBUS_KEY_grave, IBUS_KEY_dead_diaeresis, IBUS_KEY_Greek_iota, 0x1FD2, --IBUS_KEY_grave, IBUS_KEY_dead_diaeresis, IBUS_KEY_Greek_upsilon, 0x1FE2, --IBUS_KEY_grave, IBUS_KEY_dead_horn, IBUS_KEY_O, 0x1EDC, --IBUS_KEY_grave, IBUS_KEY_dead_horn, IBUS_KEY_U, 0x1EEA, --IBUS_KEY_grave, IBUS_KEY_dead_horn, IBUS_KEY_o, 0x1EDD, --IBUS_KEY_grave, IBUS_KEY_dead_horn, IBUS_KEY_u, 0x1EEB, --IBUS_KEY_grave, IBUS_KEY_dead_psili, IBUS_KEY_Greek_ALPHA, 0x1F0A, --IBUS_KEY_grave, IBUS_KEY_dead_psili, IBUS_KEY_Greek_EPSILON, 0x1F1A, --IBUS_KEY_grave, IBUS_KEY_dead_psili, IBUS_KEY_Greek_ETA, 0x1F2A, --IBUS_KEY_grave, IBUS_KEY_dead_psili, IBUS_KEY_Greek_IOTA, 0x1F3A, --IBUS_KEY_grave, IBUS_KEY_dead_psili, IBUS_KEY_Greek_OMICRON, 0x1F4A, --IBUS_KEY_grave, IBUS_KEY_dead_psili, IBUS_KEY_Greek_OMEGA, 0x1F6A, --IBUS_KEY_grave, IBUS_KEY_dead_psili, IBUS_KEY_Greek_alpha, 0x1F02, --IBUS_KEY_grave, IBUS_KEY_dead_psili, IBUS_KEY_Greek_epsilon, 0x1F12, --IBUS_KEY_grave, IBUS_KEY_dead_psili, IBUS_KEY_Greek_eta, 0x1F22, --IBUS_KEY_grave, IBUS_KEY_dead_psili, IBUS_KEY_Greek_iota, 0x1F32, --IBUS_KEY_grave, IBUS_KEY_dead_psili, IBUS_KEY_Greek_omicron, 0x1F42, --IBUS_KEY_grave, IBUS_KEY_dead_psili, IBUS_KEY_Greek_upsilon, 0x1F52, --IBUS_KEY_grave, IBUS_KEY_dead_psili, IBUS_KEY_Greek_omega, 0x1F62, --IBUS_KEY_grave, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_ALPHA, 0x1F0B, --IBUS_KEY_grave, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_EPSILON, 0x1F1B, --IBUS_KEY_grave, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_ETA, 0x1F2B, --IBUS_KEY_grave, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_IOTA, 0x1F3B, --IBUS_KEY_grave, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_OMICRON, 0x1F4B, --IBUS_KEY_grave, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_UPSILON, 0x1F5B, --IBUS_KEY_grave, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_OMEGA, 0x1F6B, --IBUS_KEY_grave, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_alpha, 0x1F03, --IBUS_KEY_grave, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_epsilon, 0x1F13, --IBUS_KEY_grave, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_eta, 0x1F23, --IBUS_KEY_grave, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_iota, 0x1F33, --IBUS_KEY_grave, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_omicron, 0x1F43, --IBUS_KEY_grave, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_upsilon, 0x1F53, --IBUS_KEY_grave, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_omega, 0x1F63, --IBUS_KEY_b, IBUS_KEY_exclam, IBUS_KEY_A, 0x1EB6, --IBUS_KEY_b, IBUS_KEY_exclam, IBUS_KEY_a, 0x1EB7, --IBUS_KEY_b, IBUS_KEY_comma, IBUS_KEY_E, 0x1E1C, --IBUS_KEY_b, IBUS_KEY_comma, IBUS_KEY_e, 0x1E1D, --IBUS_KEY_b, IBUS_KEY_cedilla, IBUS_KEY_E, 0x1E1C, --IBUS_KEY_b, IBUS_KEY_cedilla, IBUS_KEY_e, 0x1E1D, --IBUS_KEY_b, IBUS_KEY_dead_cedilla, IBUS_KEY_E, 0x1E1C, --IBUS_KEY_b, IBUS_KEY_dead_cedilla, IBUS_KEY_e, 0x1E1D, --IBUS_KEY_b, IBUS_KEY_dead_belowdot, IBUS_KEY_A, 0x1EB6, --IBUS_KEY_b, IBUS_KEY_dead_belowdot, IBUS_KEY_a, 0x1EB7, --IBUS_KEY_c, IBUS_KEY_quotedbl, IBUS_KEY_U, 0x01D9, --IBUS_KEY_c, IBUS_KEY_quotedbl, IBUS_KEY_u, 0x01DA, --IBUS_KEY_c, IBUS_KEY_dead_diaeresis, IBUS_KEY_U, 0x01D9, --IBUS_KEY_c, IBUS_KEY_dead_diaeresis, IBUS_KEY_u, 0x01DA, --IBUS_KEY_asciitilde, IBUS_KEY_quotedbl, IBUS_KEY_Greek_iota, 0x1FD7, --IBUS_KEY_asciitilde, IBUS_KEY_quotedbl, IBUS_KEY_Greek_upsilon, 0x1FE7, --IBUS_KEY_asciitilde, IBUS_KEY_parenleft, IBUS_KEY_Greek_ALPHA, 0x1F0F, --IBUS_KEY_asciitilde, IBUS_KEY_parenleft, IBUS_KEY_Greek_ETA, 0x1F2F, --IBUS_KEY_asciitilde, IBUS_KEY_parenleft, IBUS_KEY_Greek_IOTA, 0x1F3F, --IBUS_KEY_asciitilde, IBUS_KEY_parenleft, IBUS_KEY_Greek_UPSILON, 0x1F5F, --IBUS_KEY_asciitilde, IBUS_KEY_parenleft, IBUS_KEY_Greek_OMEGA, 0x1F6F, --IBUS_KEY_asciitilde, IBUS_KEY_parenleft, IBUS_KEY_Greek_alpha, 0x1F07, --IBUS_KEY_asciitilde, IBUS_KEY_parenleft, IBUS_KEY_Greek_eta, 0x1F27, --IBUS_KEY_asciitilde, IBUS_KEY_parenleft, IBUS_KEY_Greek_iota, 0x1F37, --IBUS_KEY_asciitilde, IBUS_KEY_parenleft, IBUS_KEY_Greek_upsilon, 0x1F57, --IBUS_KEY_asciitilde, IBUS_KEY_parenleft, IBUS_KEY_Greek_omega, 0x1F67, --IBUS_KEY_asciitilde, IBUS_KEY_parenright, IBUS_KEY_Greek_ALPHA, 0x1F0E, --IBUS_KEY_asciitilde, IBUS_KEY_parenright, IBUS_KEY_Greek_ETA, 0x1F2E, --IBUS_KEY_asciitilde, IBUS_KEY_parenright, IBUS_KEY_Greek_IOTA, 0x1F3E, --IBUS_KEY_asciitilde, IBUS_KEY_parenright, IBUS_KEY_Greek_OMEGA, 0x1F6E, --IBUS_KEY_asciitilde, IBUS_KEY_parenright, IBUS_KEY_Greek_alpha, 0x1F06, --IBUS_KEY_asciitilde, IBUS_KEY_parenright, IBUS_KEY_Greek_eta, 0x1F26, --IBUS_KEY_asciitilde, IBUS_KEY_parenright, IBUS_KEY_Greek_iota, 0x1F36, --IBUS_KEY_asciitilde, IBUS_KEY_parenright, IBUS_KEY_Greek_upsilon, 0x1F56, --IBUS_KEY_asciitilde, IBUS_KEY_parenright, IBUS_KEY_Greek_omega, 0x1F66, --IBUS_KEY_asciitilde, IBUS_KEY_plus, IBUS_KEY_O, 0x1EE0, --IBUS_KEY_asciitilde, IBUS_KEY_plus, IBUS_KEY_U, 0x1EEE, --IBUS_KEY_asciitilde, IBUS_KEY_plus, IBUS_KEY_o, 0x1EE1, --IBUS_KEY_asciitilde, IBUS_KEY_plus, IBUS_KEY_u, 0x1EEF, --IBUS_KEY_asciitilde, IBUS_KEY_asciicircum, IBUS_KEY_A, 0x1EAA, --IBUS_KEY_asciitilde, IBUS_KEY_asciicircum, IBUS_KEY_E, 0x1EC4, --IBUS_KEY_asciitilde, IBUS_KEY_asciicircum, IBUS_KEY_O, 0x1ED6, --IBUS_KEY_asciitilde, IBUS_KEY_asciicircum, IBUS_KEY_a, 0x1EAB, --IBUS_KEY_asciitilde, IBUS_KEY_asciicircum, IBUS_KEY_e, 0x1EC5, --IBUS_KEY_asciitilde, IBUS_KEY_asciicircum, IBUS_KEY_o, 0x1ED7, --IBUS_KEY_asciitilde, IBUS_KEY_b, IBUS_KEY_A, 0x1EB4, --IBUS_KEY_asciitilde, IBUS_KEY_b, IBUS_KEY_a, 0x1EB5, --IBUS_KEY_asciitilde, IBUS_KEY_dead_circumflex, IBUS_KEY_A, 0x1EAA, --IBUS_KEY_asciitilde, IBUS_KEY_dead_circumflex, IBUS_KEY_E, 0x1EC4, --IBUS_KEY_asciitilde, IBUS_KEY_dead_circumflex, IBUS_KEY_O, 0x1ED6, --IBUS_KEY_asciitilde, IBUS_KEY_dead_circumflex, IBUS_KEY_a, 0x1EAB, --IBUS_KEY_asciitilde, IBUS_KEY_dead_circumflex, IBUS_KEY_e, 0x1EC5, --IBUS_KEY_asciitilde, IBUS_KEY_dead_circumflex, IBUS_KEY_o, 0x1ED7, --IBUS_KEY_asciitilde, IBUS_KEY_dead_breve, IBUS_KEY_A, 0x1EB4, --IBUS_KEY_asciitilde, IBUS_KEY_dead_breve, IBUS_KEY_a, 0x1EB5, --IBUS_KEY_asciitilde, IBUS_KEY_dead_diaeresis, IBUS_KEY_Greek_iota, 0x1FD7, --IBUS_KEY_asciitilde, IBUS_KEY_dead_diaeresis, IBUS_KEY_Greek_upsilon, 0x1FE7, --IBUS_KEY_asciitilde, IBUS_KEY_dead_horn, IBUS_KEY_O, 0x1EE0, --IBUS_KEY_asciitilde, IBUS_KEY_dead_horn, IBUS_KEY_U, 0x1EEE, --IBUS_KEY_asciitilde, IBUS_KEY_dead_horn, IBUS_KEY_o, 0x1EE1, --IBUS_KEY_asciitilde, IBUS_KEY_dead_horn, IBUS_KEY_u, 0x1EEF, --IBUS_KEY_asciitilde, IBUS_KEY_dead_psili, IBUS_KEY_Greek_ALPHA, 0x1F0E, --IBUS_KEY_asciitilde, IBUS_KEY_dead_psili, IBUS_KEY_Greek_ETA, 0x1F2E, --IBUS_KEY_asciitilde, IBUS_KEY_dead_psili, IBUS_KEY_Greek_IOTA, 0x1F3E, --IBUS_KEY_asciitilde, IBUS_KEY_dead_psili, IBUS_KEY_Greek_OMEGA, 0x1F6E, --IBUS_KEY_asciitilde, IBUS_KEY_dead_psili, IBUS_KEY_Greek_alpha, 0x1F06, --IBUS_KEY_asciitilde, IBUS_KEY_dead_psili, IBUS_KEY_Greek_eta, 0x1F26, --IBUS_KEY_asciitilde, IBUS_KEY_dead_psili, IBUS_KEY_Greek_iota, 0x1F36, --IBUS_KEY_asciitilde, IBUS_KEY_dead_psili, IBUS_KEY_Greek_upsilon, 0x1F56, --IBUS_KEY_asciitilde, IBUS_KEY_dead_psili, IBUS_KEY_Greek_omega, 0x1F66, --IBUS_KEY_asciitilde, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_ALPHA, 0x1F0F, --IBUS_KEY_asciitilde, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_ETA, 0x1F2F, --IBUS_KEY_asciitilde, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_IOTA, 0x1F3F, --IBUS_KEY_asciitilde, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_UPSILON, 0x1F5F, --IBUS_KEY_asciitilde, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_OMEGA, 0x1F6F, --IBUS_KEY_asciitilde, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_alpha, 0x1F07, --IBUS_KEY_asciitilde, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_eta, 0x1F27, --IBUS_KEY_asciitilde, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_iota, 0x1F37, --IBUS_KEY_asciitilde, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_upsilon, 0x1F57, --IBUS_KEY_asciitilde, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_omega, 0x1F67, --IBUS_KEY_macron, IBUS_KEY_exclam, IBUS_KEY_L, 0x1E38, --IBUS_KEY_macron, IBUS_KEY_exclam, IBUS_KEY_R, 0x1E5C, --IBUS_KEY_macron, IBUS_KEY_exclam, IBUS_KEY_l, 0x1E39, --IBUS_KEY_macron, IBUS_KEY_exclam, IBUS_KEY_r, 0x1E5D, --IBUS_KEY_macron, IBUS_KEY_quotedbl, IBUS_KEY_A, 0x01DE, --IBUS_KEY_macron, IBUS_KEY_quotedbl, IBUS_KEY_O, 0x022A, --IBUS_KEY_macron, IBUS_KEY_quotedbl, IBUS_KEY_U, 0x01D5, --IBUS_KEY_macron, IBUS_KEY_quotedbl, IBUS_KEY_a, 0x01DF, --IBUS_KEY_macron, IBUS_KEY_quotedbl, IBUS_KEY_o, 0x022B, --IBUS_KEY_macron, IBUS_KEY_quotedbl, IBUS_KEY_u, 0x01D6, --IBUS_KEY_macron, IBUS_KEY_period, IBUS_KEY_A, 0x01E0, --IBUS_KEY_macron, IBUS_KEY_period, IBUS_KEY_O, 0x0230, --IBUS_KEY_macron, IBUS_KEY_period, IBUS_KEY_a, 0x01E1, --IBUS_KEY_macron, IBUS_KEY_period, IBUS_KEY_o, 0x0231, --IBUS_KEY_macron, IBUS_KEY_semicolon, IBUS_KEY_O, 0x01EC, --IBUS_KEY_macron, IBUS_KEY_semicolon, IBUS_KEY_o, 0x01ED, --IBUS_KEY_macron, IBUS_KEY_asciitilde, IBUS_KEY_O, 0x022C, --IBUS_KEY_macron, IBUS_KEY_asciitilde, IBUS_KEY_o, 0x022D, --IBUS_KEY_macron, IBUS_KEY_dead_tilde, IBUS_KEY_O, 0x022C, --IBUS_KEY_macron, IBUS_KEY_dead_tilde, IBUS_KEY_o, 0x022D, --IBUS_KEY_macron, IBUS_KEY_dead_abovedot, IBUS_KEY_A, 0x01E0, --IBUS_KEY_macron, IBUS_KEY_dead_abovedot, IBUS_KEY_O, 0x0230, --IBUS_KEY_macron, IBUS_KEY_dead_abovedot, IBUS_KEY_a, 0x01E1, --IBUS_KEY_macron, IBUS_KEY_dead_abovedot, IBUS_KEY_o, 0x0231, --IBUS_KEY_macron, IBUS_KEY_dead_diaeresis, IBUS_KEY_A, 0x01DE, --IBUS_KEY_macron, IBUS_KEY_dead_diaeresis, IBUS_KEY_O, 0x022A, --IBUS_KEY_macron, IBUS_KEY_dead_diaeresis, IBUS_KEY_U, 0x01D5, --IBUS_KEY_macron, IBUS_KEY_dead_diaeresis, IBUS_KEY_a, 0x01DF, --IBUS_KEY_macron, IBUS_KEY_dead_diaeresis, IBUS_KEY_o, 0x022B, --IBUS_KEY_macron, IBUS_KEY_dead_diaeresis, IBUS_KEY_u, 0x01D6, --IBUS_KEY_macron, IBUS_KEY_dead_ogonek, IBUS_KEY_O, 0x01EC, --IBUS_KEY_macron, IBUS_KEY_dead_ogonek, IBUS_KEY_o, 0x01ED, --IBUS_KEY_macron, IBUS_KEY_dead_belowdot, IBUS_KEY_L, 0x1E38, --IBUS_KEY_macron, IBUS_KEY_dead_belowdot, IBUS_KEY_R, 0x1E5C, --IBUS_KEY_macron, IBUS_KEY_dead_belowdot, IBUS_KEY_l, 0x1E39, --IBUS_KEY_macron, IBUS_KEY_dead_belowdot, IBUS_KEY_r, 0x1E5D, --IBUS_KEY_acute, IBUS_KEY_quotedbl, IBUS_KEY_I, 0x1E2E, --IBUS_KEY_acute, IBUS_KEY_quotedbl, IBUS_KEY_U, 0x01D7, --IBUS_KEY_acute, IBUS_KEY_quotedbl, IBUS_KEY_i, 0x1E2F, --IBUS_KEY_acute, IBUS_KEY_quotedbl, IBUS_KEY_u, 0x01D8, --IBUS_KEY_acute, IBUS_KEY_quotedbl, IBUS_KEY_Greek_iota, 0x0390, --IBUS_KEY_acute, IBUS_KEY_quotedbl, IBUS_KEY_Greek_upsilon, 0x03B0, --IBUS_KEY_acute, IBUS_KEY_parenleft, IBUS_KEY_Greek_ALPHA, 0x1F0D, --IBUS_KEY_acute, IBUS_KEY_parenleft, IBUS_KEY_Greek_EPSILON, 0x1F1D, --IBUS_KEY_acute, IBUS_KEY_parenleft, IBUS_KEY_Greek_ETA, 0x1F2D, --IBUS_KEY_acute, IBUS_KEY_parenleft, IBUS_KEY_Greek_IOTA, 0x1F3D, --IBUS_KEY_acute, IBUS_KEY_parenleft, IBUS_KEY_Greek_OMICRON, 0x1F4D, --IBUS_KEY_acute, IBUS_KEY_parenleft, IBUS_KEY_Greek_UPSILON, 0x1F5D, --IBUS_KEY_acute, IBUS_KEY_parenleft, IBUS_KEY_Greek_OMEGA, 0x1F6D, --IBUS_KEY_acute, IBUS_KEY_parenleft, IBUS_KEY_Greek_alpha, 0x1F05, --IBUS_KEY_acute, IBUS_KEY_parenleft, IBUS_KEY_Greek_epsilon, 0x1F15, --IBUS_KEY_acute, IBUS_KEY_parenleft, IBUS_KEY_Greek_eta, 0x1F25, --IBUS_KEY_acute, IBUS_KEY_parenleft, IBUS_KEY_Greek_iota, 0x1F35, --IBUS_KEY_acute, IBUS_KEY_parenleft, IBUS_KEY_Greek_omicron, 0x1F45, --IBUS_KEY_acute, IBUS_KEY_parenleft, IBUS_KEY_Greek_upsilon, 0x1F55, --IBUS_KEY_acute, IBUS_KEY_parenleft, IBUS_KEY_Greek_omega, 0x1F65, --IBUS_KEY_acute, IBUS_KEY_parenright, IBUS_KEY_Greek_ALPHA, 0x1F0C, --IBUS_KEY_acute, IBUS_KEY_parenright, IBUS_KEY_Greek_EPSILON, 0x1F1C, --IBUS_KEY_acute, IBUS_KEY_parenright, IBUS_KEY_Greek_ETA, 0x1F2C, --IBUS_KEY_acute, IBUS_KEY_parenright, IBUS_KEY_Greek_IOTA, 0x1F3C, --IBUS_KEY_acute, IBUS_KEY_parenright, IBUS_KEY_Greek_OMICRON, 0x1F4C, --IBUS_KEY_acute, IBUS_KEY_parenright, IBUS_KEY_Greek_OMEGA, 0x1F6C, --IBUS_KEY_acute, IBUS_KEY_parenright, IBUS_KEY_Greek_alpha, 0x1F04, --IBUS_KEY_acute, IBUS_KEY_parenright, IBUS_KEY_Greek_epsilon, 0x1F14, --IBUS_KEY_acute, IBUS_KEY_parenright, IBUS_KEY_Greek_eta, 0x1F24, --IBUS_KEY_acute, IBUS_KEY_parenright, IBUS_KEY_Greek_iota, 0x1F34, --IBUS_KEY_acute, IBUS_KEY_parenright, IBUS_KEY_Greek_omicron, 0x1F44, --IBUS_KEY_acute, IBUS_KEY_parenright, IBUS_KEY_Greek_upsilon, 0x1F54, --IBUS_KEY_acute, IBUS_KEY_parenright, IBUS_KEY_Greek_omega, 0x1F64, --IBUS_KEY_acute, IBUS_KEY_plus, IBUS_KEY_O, 0x1EDA, --IBUS_KEY_acute, IBUS_KEY_plus, IBUS_KEY_U, 0x1EE8, --IBUS_KEY_acute, IBUS_KEY_plus, IBUS_KEY_o, 0x1EDB, --IBUS_KEY_acute, IBUS_KEY_plus, IBUS_KEY_u, 0x1EE9, --IBUS_KEY_acute, IBUS_KEY_comma, IBUS_KEY_C, 0x1E08, --IBUS_KEY_acute, IBUS_KEY_comma, IBUS_KEY_c, 0x1E09, --IBUS_KEY_acute, IBUS_KEY_slash, IBUS_KEY_O, 0x01FE, --IBUS_KEY_acute, IBUS_KEY_slash, IBUS_KEY_o, 0x01FF, --IBUS_KEY_acute, IBUS_KEY_asciicircum, IBUS_KEY_A, 0x1EA4, --IBUS_KEY_acute, IBUS_KEY_asciicircum, IBUS_KEY_E, 0x1EBE, --IBUS_KEY_acute, IBUS_KEY_asciicircum, IBUS_KEY_O, 0x1ED0, --IBUS_KEY_acute, IBUS_KEY_asciicircum, IBUS_KEY_a, 0x1EA5, --IBUS_KEY_acute, IBUS_KEY_asciicircum, IBUS_KEY_e, 0x1EBF, --IBUS_KEY_acute, IBUS_KEY_asciicircum, IBUS_KEY_o, 0x1ED1, --IBUS_KEY_acute, IBUS_KEY_underscore, IBUS_KEY_E, 0x1E16, --IBUS_KEY_acute, IBUS_KEY_underscore, IBUS_KEY_O, 0x1E52, --IBUS_KEY_acute, IBUS_KEY_underscore, IBUS_KEY_e, 0x1E17, --IBUS_KEY_acute, IBUS_KEY_underscore, IBUS_KEY_o, 0x1E53, --IBUS_KEY_acute, IBUS_KEY_b, IBUS_KEY_A, 0x1EAE, --IBUS_KEY_acute, IBUS_KEY_b, IBUS_KEY_a, 0x1EAF, --IBUS_KEY_acute, IBUS_KEY_asciitilde, IBUS_KEY_O, 0x1E4C, --IBUS_KEY_acute, IBUS_KEY_asciitilde, IBUS_KEY_U, 0x1E78, --IBUS_KEY_acute, IBUS_KEY_asciitilde, IBUS_KEY_o, 0x1E4D, --IBUS_KEY_acute, IBUS_KEY_asciitilde, IBUS_KEY_u, 0x1E79, --IBUS_KEY_acute, IBUS_KEY_macron, IBUS_KEY_E, 0x1E16, --IBUS_KEY_acute, IBUS_KEY_macron, IBUS_KEY_O, 0x1E52, --IBUS_KEY_acute, IBUS_KEY_macron, IBUS_KEY_e, 0x1E17, --IBUS_KEY_acute, IBUS_KEY_macron, IBUS_KEY_o, 0x1E53, --IBUS_KEY_acute, IBUS_KEY_cedilla, IBUS_KEY_C, 0x1E08, --IBUS_KEY_acute, IBUS_KEY_cedilla, IBUS_KEY_c, 0x1E09, --IBUS_KEY_acute, IBUS_KEY_dead_circumflex, IBUS_KEY_A, 0x1EA4, --IBUS_KEY_acute, IBUS_KEY_dead_circumflex, IBUS_KEY_E, 0x1EBE, --IBUS_KEY_acute, IBUS_KEY_dead_circumflex, IBUS_KEY_O, 0x1ED0, --IBUS_KEY_acute, IBUS_KEY_dead_circumflex, IBUS_KEY_a, 0x1EA5, --IBUS_KEY_acute, IBUS_KEY_dead_circumflex, IBUS_KEY_e, 0x1EBF, --IBUS_KEY_acute, IBUS_KEY_dead_circumflex, IBUS_KEY_o, 0x1ED1, --IBUS_KEY_acute, IBUS_KEY_dead_tilde, IBUS_KEY_O, 0x1E4C, --IBUS_KEY_acute, IBUS_KEY_dead_tilde, IBUS_KEY_U, 0x1E78, --IBUS_KEY_acute, IBUS_KEY_dead_tilde, IBUS_KEY_o, 0x1E4D, --IBUS_KEY_acute, IBUS_KEY_dead_tilde, IBUS_KEY_u, 0x1E79, --IBUS_KEY_acute, IBUS_KEY_dead_macron, IBUS_KEY_E, 0x1E16, --IBUS_KEY_acute, IBUS_KEY_dead_macron, IBUS_KEY_O, 0x1E52, --IBUS_KEY_acute, IBUS_KEY_dead_macron, IBUS_KEY_e, 0x1E17, --IBUS_KEY_acute, IBUS_KEY_dead_macron, IBUS_KEY_o, 0x1E53, --IBUS_KEY_acute, IBUS_KEY_dead_breve, IBUS_KEY_A, 0x1EAE, --IBUS_KEY_acute, IBUS_KEY_dead_breve, IBUS_KEY_a, 0x1EAF, --IBUS_KEY_acute, IBUS_KEY_dead_diaeresis, IBUS_KEY_I, 0x1E2E, --IBUS_KEY_acute, IBUS_KEY_dead_diaeresis, IBUS_KEY_U, 0x01D7, --IBUS_KEY_acute, IBUS_KEY_dead_diaeresis, IBUS_KEY_i, 0x1E2F, --IBUS_KEY_acute, IBUS_KEY_dead_diaeresis, IBUS_KEY_u, 0x01D8, --IBUS_KEY_acute, IBUS_KEY_dead_diaeresis, IBUS_KEY_Greek_iota, 0x0390, --IBUS_KEY_acute, IBUS_KEY_dead_diaeresis, IBUS_KEY_Greek_upsilon, 0x03B0, --IBUS_KEY_acute, IBUS_KEY_dead_abovering, IBUS_KEY_A, 0x01FA, --IBUS_KEY_acute, IBUS_KEY_dead_abovering, IBUS_KEY_a, 0x01FB, --IBUS_KEY_acute, IBUS_KEY_dead_cedilla, IBUS_KEY_C, 0x1E08, --IBUS_KEY_acute, IBUS_KEY_dead_cedilla, IBUS_KEY_c, 0x1E09, --IBUS_KEY_acute, IBUS_KEY_dead_horn, IBUS_KEY_O, 0x1EDA, --IBUS_KEY_acute, IBUS_KEY_dead_horn, IBUS_KEY_U, 0x1EE8, --IBUS_KEY_acute, IBUS_KEY_dead_horn, IBUS_KEY_o, 0x1EDB, --IBUS_KEY_acute, IBUS_KEY_dead_horn, IBUS_KEY_u, 0x1EE9, --IBUS_KEY_acute, IBUS_KEY_dead_psili, IBUS_KEY_Greek_ALPHA, 0x1F0C, --IBUS_KEY_acute, IBUS_KEY_dead_psili, IBUS_KEY_Greek_EPSILON, 0x1F1C, --IBUS_KEY_acute, IBUS_KEY_dead_psili, IBUS_KEY_Greek_ETA, 0x1F2C, --IBUS_KEY_acute, IBUS_KEY_dead_psili, IBUS_KEY_Greek_IOTA, 0x1F3C, --IBUS_KEY_acute, IBUS_KEY_dead_psili, IBUS_KEY_Greek_OMICRON, 0x1F4C, --IBUS_KEY_acute, IBUS_KEY_dead_psili, IBUS_KEY_Greek_OMEGA, 0x1F6C, --IBUS_KEY_acute, IBUS_KEY_dead_psili, IBUS_KEY_Greek_alpha, 0x1F04, --IBUS_KEY_acute, IBUS_KEY_dead_psili, IBUS_KEY_Greek_epsilon, 0x1F14, --IBUS_KEY_acute, IBUS_KEY_dead_psili, IBUS_KEY_Greek_eta, 0x1F24, --IBUS_KEY_acute, IBUS_KEY_dead_psili, IBUS_KEY_Greek_iota, 0x1F34, --IBUS_KEY_acute, IBUS_KEY_dead_psili, IBUS_KEY_Greek_omicron, 0x1F44, --IBUS_KEY_acute, IBUS_KEY_dead_psili, IBUS_KEY_Greek_upsilon, 0x1F54, --IBUS_KEY_acute, IBUS_KEY_dead_psili, IBUS_KEY_Greek_omega, 0x1F64, --IBUS_KEY_acute, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_ALPHA, 0x1F0D, --IBUS_KEY_acute, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_EPSILON, 0x1F1D, --IBUS_KEY_acute, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_ETA, 0x1F2D, --IBUS_KEY_acute, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_IOTA, 0x1F3D, --IBUS_KEY_acute, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_OMICRON, 0x1F4D, --IBUS_KEY_acute, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_UPSILON, 0x1F5D, --IBUS_KEY_acute, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_OMEGA, 0x1F6D, --IBUS_KEY_acute, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_alpha, 0x1F05, --IBUS_KEY_acute, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_epsilon, 0x1F15, --IBUS_KEY_acute, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_eta, 0x1F25, --IBUS_KEY_acute, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_iota, 0x1F35, --IBUS_KEY_acute, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_omicron, 0x1F45, --IBUS_KEY_acute, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_upsilon, 0x1F55, --IBUS_KEY_acute, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_omega, 0x1F65, --IBUS_KEY_acute, IBUS_KEY_KP_Divide, IBUS_KEY_O, 0x01FE, --IBUS_KEY_acute, IBUS_KEY_KP_Divide, IBUS_KEY_o, 0x01FF, --0x05C1, 0x05BC, IBUS_KEY_hebrew_shin, 0xFB2C, --0x05C2, 0x05BC, IBUS_KEY_hebrew_shin, 0xFB2D, --IBUS_KEY_Greek_iota, IBUS_KEY_apostrophe, IBUS_KEY_Greek_alpha, 0x1FB4, --IBUS_KEY_Greek_iota, IBUS_KEY_apostrophe, IBUS_KEY_Greek_eta, 0x1FC4, --IBUS_KEY_Greek_iota, IBUS_KEY_apostrophe, IBUS_KEY_Greek_omega, 0x1FF4, --IBUS_KEY_Greek_iota, IBUS_KEY_apostrophe, 0x1F00, 0x1F84, --IBUS_KEY_Greek_iota, IBUS_KEY_apostrophe, 0x1F01, 0x1F85, --IBUS_KEY_Greek_iota, IBUS_KEY_apostrophe, 0x1F08, 0x1F8C, --IBUS_KEY_Greek_iota, IBUS_KEY_apostrophe, 0x1F09, 0x1F8D, --IBUS_KEY_Greek_iota, IBUS_KEY_apostrophe, 0x1F20, 0x1F94, --IBUS_KEY_Greek_iota, IBUS_KEY_apostrophe, 0x1F21, 0x1F95, --IBUS_KEY_Greek_iota, IBUS_KEY_apostrophe, 0x1F28, 0x1F9C, --IBUS_KEY_Greek_iota, IBUS_KEY_apostrophe, 0x1F29, 0x1F9D, --IBUS_KEY_Greek_iota, IBUS_KEY_apostrophe, 0x1F60, 0x1FA4, --IBUS_KEY_Greek_iota, IBUS_KEY_apostrophe, 0x1F61, 0x1FA5, --IBUS_KEY_Greek_iota, IBUS_KEY_apostrophe, 0x1F68, 0x1FAC, --IBUS_KEY_Greek_iota, IBUS_KEY_apostrophe, 0x1F69, 0x1FAD, --IBUS_KEY_Greek_iota, IBUS_KEY_parenleft, IBUS_KEY_Greek_ALPHA, 0x1F89, --IBUS_KEY_Greek_iota, IBUS_KEY_parenleft, IBUS_KEY_Greek_ETA, 0x1F99, --IBUS_KEY_Greek_iota, IBUS_KEY_parenleft, IBUS_KEY_Greek_OMEGA, 0x1FA9, --IBUS_KEY_Greek_iota, IBUS_KEY_parenleft, IBUS_KEY_Greek_alpha, 0x1F81, --IBUS_KEY_Greek_iota, IBUS_KEY_parenleft, IBUS_KEY_Greek_eta, 0x1F91, --IBUS_KEY_Greek_iota, IBUS_KEY_parenleft, IBUS_KEY_Greek_omega, 0x1FA1, --IBUS_KEY_Greek_iota, IBUS_KEY_parenright, IBUS_KEY_Greek_ALPHA, 0x1F88, --IBUS_KEY_Greek_iota, IBUS_KEY_parenright, IBUS_KEY_Greek_ETA, 0x1F98, --IBUS_KEY_Greek_iota, IBUS_KEY_parenright, IBUS_KEY_Greek_OMEGA, 0x1FA8, --IBUS_KEY_Greek_iota, IBUS_KEY_parenright, IBUS_KEY_Greek_alpha, 0x1F80, --IBUS_KEY_Greek_iota, IBUS_KEY_parenright, IBUS_KEY_Greek_eta, 0x1F90, --IBUS_KEY_Greek_iota, IBUS_KEY_parenright, IBUS_KEY_Greek_omega, 0x1FA0, --IBUS_KEY_Greek_iota, IBUS_KEY_grave, IBUS_KEY_Greek_alpha, 0x1FB2, --IBUS_KEY_Greek_iota, IBUS_KEY_grave, IBUS_KEY_Greek_eta, 0x1FC2, --IBUS_KEY_Greek_iota, IBUS_KEY_grave, IBUS_KEY_Greek_omega, 0x1FF2, --IBUS_KEY_Greek_iota, IBUS_KEY_grave, 0x1F00, 0x1F82, --IBUS_KEY_Greek_iota, IBUS_KEY_grave, 0x1F01, 0x1F83, --IBUS_KEY_Greek_iota, IBUS_KEY_grave, 0x1F08, 0x1F8A, --IBUS_KEY_Greek_iota, IBUS_KEY_grave, 0x1F09, 0x1F8B, --IBUS_KEY_Greek_iota, IBUS_KEY_grave, 0x1F20, 0x1F92, --IBUS_KEY_Greek_iota, IBUS_KEY_grave, 0x1F21, 0x1F93, --IBUS_KEY_Greek_iota, IBUS_KEY_grave, 0x1F28, 0x1F9A, --IBUS_KEY_Greek_iota, IBUS_KEY_grave, 0x1F29, 0x1F9B, --IBUS_KEY_Greek_iota, IBUS_KEY_grave, 0x1F60, 0x1FA2, --IBUS_KEY_Greek_iota, IBUS_KEY_grave, 0x1F61, 0x1FA3, --IBUS_KEY_Greek_iota, IBUS_KEY_grave, 0x1F68, 0x1FAA, --IBUS_KEY_Greek_iota, IBUS_KEY_grave, 0x1F69, 0x1FAB, --IBUS_KEY_Greek_iota, IBUS_KEY_asciitilde, IBUS_KEY_Greek_alpha, 0x1FB7, --IBUS_KEY_Greek_iota, IBUS_KEY_asciitilde, IBUS_KEY_Greek_eta, 0x1FC7, --IBUS_KEY_Greek_iota, IBUS_KEY_asciitilde, IBUS_KEY_Greek_omega, 0x1FF7, --IBUS_KEY_Greek_iota, IBUS_KEY_asciitilde, 0x1F00, 0x1F86, --IBUS_KEY_Greek_iota, IBUS_KEY_asciitilde, 0x1F01, 0x1F87, --IBUS_KEY_Greek_iota, IBUS_KEY_asciitilde, 0x1F08, 0x1F8E, --IBUS_KEY_Greek_iota, IBUS_KEY_asciitilde, 0x1F09, 0x1F8F, --IBUS_KEY_Greek_iota, IBUS_KEY_asciitilde, 0x1F20, 0x1F96, --IBUS_KEY_Greek_iota, IBUS_KEY_asciitilde, 0x1F21, 0x1F97, --IBUS_KEY_Greek_iota, IBUS_KEY_asciitilde, 0x1F28, 0x1F9E, --IBUS_KEY_Greek_iota, IBUS_KEY_asciitilde, 0x1F29, 0x1F9F, --IBUS_KEY_Greek_iota, IBUS_KEY_asciitilde, 0x1F60, 0x1FA6, --IBUS_KEY_Greek_iota, IBUS_KEY_asciitilde, 0x1F61, 0x1FA7, --IBUS_KEY_Greek_iota, IBUS_KEY_asciitilde, 0x1F68, 0x1FAE, --IBUS_KEY_Greek_iota, IBUS_KEY_asciitilde, 0x1F69, 0x1FAF, --IBUS_KEY_Greek_iota, IBUS_KEY_acute, IBUS_KEY_Greek_alpha, 0x1FB4, --IBUS_KEY_Greek_iota, IBUS_KEY_acute, IBUS_KEY_Greek_eta, 0x1FC4, --IBUS_KEY_Greek_iota, IBUS_KEY_acute, IBUS_KEY_Greek_omega, 0x1FF4, --IBUS_KEY_Greek_iota, IBUS_KEY_acute, 0x1F00, 0x1F84, --IBUS_KEY_Greek_iota, IBUS_KEY_acute, 0x1F01, 0x1F85, --IBUS_KEY_Greek_iota, IBUS_KEY_acute, 0x1F08, 0x1F8C, --IBUS_KEY_Greek_iota, IBUS_KEY_acute, 0x1F09, 0x1F8D, --IBUS_KEY_Greek_iota, IBUS_KEY_acute, 0x1F20, 0x1F94, --IBUS_KEY_Greek_iota, IBUS_KEY_acute, 0x1F21, 0x1F95, --IBUS_KEY_Greek_iota, IBUS_KEY_acute, 0x1F28, 0x1F9C, --IBUS_KEY_Greek_iota, IBUS_KEY_acute, 0x1F29, 0x1F9D, --IBUS_KEY_Greek_iota, IBUS_KEY_acute, 0x1F60, 0x1FA4, --IBUS_KEY_Greek_iota, IBUS_KEY_acute, 0x1F61, 0x1FA5, --IBUS_KEY_Greek_iota, IBUS_KEY_acute, 0x1F68, 0x1FAC, --IBUS_KEY_Greek_iota, IBUS_KEY_acute, 0x1F69, 0x1FAD, --IBUS_KEY_Greek_iota, IBUS_KEY_dead_grave, IBUS_KEY_Greek_alpha, 0x1FB2, --IBUS_KEY_Greek_iota, IBUS_KEY_dead_grave, IBUS_KEY_Greek_eta, 0x1FC2, --IBUS_KEY_Greek_iota, IBUS_KEY_dead_grave, IBUS_KEY_Greek_omega, 0x1FF2, --IBUS_KEY_Greek_iota, IBUS_KEY_dead_grave, 0x1F00, 0x1F82, --IBUS_KEY_Greek_iota, IBUS_KEY_dead_grave, 0x1F01, 0x1F83, --IBUS_KEY_Greek_iota, IBUS_KEY_dead_grave, 0x1F08, 0x1F8A, --IBUS_KEY_Greek_iota, IBUS_KEY_dead_grave, 0x1F09, 0x1F8B, --IBUS_KEY_Greek_iota, IBUS_KEY_dead_grave, 0x1F20, 0x1F92, --IBUS_KEY_Greek_iota, IBUS_KEY_dead_grave, 0x1F21, 0x1F93, --IBUS_KEY_Greek_iota, IBUS_KEY_dead_grave, 0x1F28, 0x1F9A, --IBUS_KEY_Greek_iota, IBUS_KEY_dead_grave, 0x1F29, 0x1F9B, --IBUS_KEY_Greek_iota, IBUS_KEY_dead_grave, 0x1F60, 0x1FA2, --IBUS_KEY_Greek_iota, IBUS_KEY_dead_grave, 0x1F61, 0x1FA3, --IBUS_KEY_Greek_iota, IBUS_KEY_dead_grave, 0x1F68, 0x1FAA, --IBUS_KEY_Greek_iota, IBUS_KEY_dead_grave, 0x1F69, 0x1FAB, --IBUS_KEY_Greek_iota, IBUS_KEY_dead_acute, IBUS_KEY_Greek_alpha, 0x1FB4, --IBUS_KEY_Greek_iota, IBUS_KEY_dead_acute, IBUS_KEY_Greek_eta, 0x1FC4, --IBUS_KEY_Greek_iota, IBUS_KEY_dead_acute, IBUS_KEY_Greek_omega, 0x1FF4, --IBUS_KEY_Greek_iota, IBUS_KEY_dead_acute, 0x1F00, 0x1F84, --IBUS_KEY_Greek_iota, IBUS_KEY_dead_acute, 0x1F01, 0x1F85, --IBUS_KEY_Greek_iota, IBUS_KEY_dead_acute, 0x1F08, 0x1F8C, --IBUS_KEY_Greek_iota, IBUS_KEY_dead_acute, 0x1F09, 0x1F8D, --IBUS_KEY_Greek_iota, IBUS_KEY_dead_acute, 0x1F20, 0x1F94, --IBUS_KEY_Greek_iota, IBUS_KEY_dead_acute, 0x1F21, 0x1F95, --IBUS_KEY_Greek_iota, IBUS_KEY_dead_acute, 0x1F28, 0x1F9C, --IBUS_KEY_Greek_iota, IBUS_KEY_dead_acute, 0x1F29, 0x1F9D, --IBUS_KEY_Greek_iota, IBUS_KEY_dead_acute, 0x1F60, 0x1FA4, --IBUS_KEY_Greek_iota, IBUS_KEY_dead_acute, 0x1F61, 0x1FA5, --IBUS_KEY_Greek_iota, IBUS_KEY_dead_acute, 0x1F68, 0x1FAC, --IBUS_KEY_Greek_iota, IBUS_KEY_dead_acute, 0x1F69, 0x1FAD, --IBUS_KEY_Greek_iota, IBUS_KEY_dead_tilde, IBUS_KEY_Greek_alpha, 0x1FB7, --IBUS_KEY_Greek_iota, IBUS_KEY_dead_tilde, IBUS_KEY_Greek_eta, 0x1FC7, --IBUS_KEY_Greek_iota, IBUS_KEY_dead_tilde, IBUS_KEY_Greek_omega, 0x1FF7, --IBUS_KEY_Greek_iota, IBUS_KEY_dead_tilde, 0x1F00, 0x1F86, --IBUS_KEY_Greek_iota, IBUS_KEY_dead_tilde, 0x1F01, 0x1F87, --IBUS_KEY_Greek_iota, IBUS_KEY_dead_tilde, 0x1F08, 0x1F8E, --IBUS_KEY_Greek_iota, IBUS_KEY_dead_tilde, 0x1F09, 0x1F8F, --IBUS_KEY_Greek_iota, IBUS_KEY_dead_tilde, 0x1F20, 0x1F96, --IBUS_KEY_Greek_iota, IBUS_KEY_dead_tilde, 0x1F21, 0x1F97, --IBUS_KEY_Greek_iota, IBUS_KEY_dead_tilde, 0x1F28, 0x1F9E, --IBUS_KEY_Greek_iota, IBUS_KEY_dead_tilde, 0x1F29, 0x1F9F, --IBUS_KEY_Greek_iota, IBUS_KEY_dead_tilde, 0x1F60, 0x1FA6, --IBUS_KEY_Greek_iota, IBUS_KEY_dead_tilde, 0x1F61, 0x1FA7, --IBUS_KEY_Greek_iota, IBUS_KEY_dead_tilde, 0x1F68, 0x1FAE, --IBUS_KEY_Greek_iota, IBUS_KEY_dead_tilde, 0x1F69, 0x1FAF, --IBUS_KEY_Greek_iota, IBUS_KEY_dead_psili, IBUS_KEY_Greek_ALPHA, 0x1F88, --IBUS_KEY_Greek_iota, IBUS_KEY_dead_psili, IBUS_KEY_Greek_ETA, 0x1F98, --IBUS_KEY_Greek_iota, IBUS_KEY_dead_psili, IBUS_KEY_Greek_OMEGA, 0x1FA8, --IBUS_KEY_Greek_iota, IBUS_KEY_dead_psili, IBUS_KEY_Greek_alpha, 0x1F80, --IBUS_KEY_Greek_iota, IBUS_KEY_dead_psili, IBUS_KEY_Greek_eta, 0x1F90, --IBUS_KEY_Greek_iota, IBUS_KEY_dead_psili, IBUS_KEY_Greek_omega, 0x1FA0, --IBUS_KEY_Greek_iota, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_ALPHA, 0x1F89, --IBUS_KEY_Greek_iota, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_ETA, 0x1F99, --IBUS_KEY_Greek_iota, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_OMEGA, 0x1FA9, --IBUS_KEY_Greek_iota, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_alpha, 0x1F81, --IBUS_KEY_Greek_iota, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_eta, 0x1F91, --IBUS_KEY_Greek_iota, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_omega, 0x1FA1, --IBUS_KEY_dead_abovedot, IBUS_KEY_f, IBUS_KEY_s, 0x1E9B, --IBUS_KEY_parenleft, IBUS_KEY_1, IBUS_KEY_0, IBUS_KEY_parenright, 0x2469, --IBUS_KEY_parenleft, IBUS_KEY_1, IBUS_KEY_1, IBUS_KEY_parenright, 0x246A, --IBUS_KEY_parenleft, IBUS_KEY_1, IBUS_KEY_2, IBUS_KEY_parenright, 0x246B, --IBUS_KEY_parenleft, IBUS_KEY_1, IBUS_KEY_3, IBUS_KEY_parenright, 0x246C, --IBUS_KEY_parenleft, IBUS_KEY_1, IBUS_KEY_4, IBUS_KEY_parenright, 0x246D, --IBUS_KEY_parenleft, IBUS_KEY_1, IBUS_KEY_5, IBUS_KEY_parenright, 0x246E, --IBUS_KEY_parenleft, IBUS_KEY_1, IBUS_KEY_6, IBUS_KEY_parenright, 0x246F, --IBUS_KEY_parenleft, IBUS_KEY_1, IBUS_KEY_7, IBUS_KEY_parenright, 0x2470, --IBUS_KEY_parenleft, IBUS_KEY_1, IBUS_KEY_8, IBUS_KEY_parenright, 0x2471, --IBUS_KEY_parenleft, IBUS_KEY_1, IBUS_KEY_9, IBUS_KEY_parenright, 0x2472, --IBUS_KEY_parenleft, IBUS_KEY_1, IBUS_KEY_KP_Space, IBUS_KEY_parenright, 0x246B, --IBUS_KEY_parenleft, IBUS_KEY_1, IBUS_KEY_KP_0, IBUS_KEY_parenright, 0x2469, --IBUS_KEY_parenleft, IBUS_KEY_1, IBUS_KEY_KP_1, IBUS_KEY_parenright, 0x246A, --IBUS_KEY_parenleft, IBUS_KEY_1, IBUS_KEY_KP_2, IBUS_KEY_parenright, 0x246B, --IBUS_KEY_parenleft, IBUS_KEY_1, IBUS_KEY_KP_3, IBUS_KEY_parenright, 0x246C, --IBUS_KEY_parenleft, IBUS_KEY_1, IBUS_KEY_KP_4, IBUS_KEY_parenright, 0x246D, --IBUS_KEY_parenleft, IBUS_KEY_1, IBUS_KEY_KP_5, IBUS_KEY_parenright, 0x246E, --IBUS_KEY_parenleft, IBUS_KEY_1, IBUS_KEY_KP_6, IBUS_KEY_parenright, 0x246F, --IBUS_KEY_parenleft, IBUS_KEY_1, IBUS_KEY_KP_7, IBUS_KEY_parenright, 0x2470, --IBUS_KEY_parenleft, IBUS_KEY_1, IBUS_KEY_KP_8, IBUS_KEY_parenright, 0x2471, --IBUS_KEY_parenleft, IBUS_KEY_1, IBUS_KEY_KP_9, IBUS_KEY_parenright, 0x2472, --IBUS_KEY_parenleft, IBUS_KEY_2, IBUS_KEY_0, IBUS_KEY_parenright, 0x2473, --IBUS_KEY_parenleft, IBUS_KEY_2, IBUS_KEY_1, IBUS_KEY_parenright, 0x3251, --IBUS_KEY_parenleft, IBUS_KEY_2, IBUS_KEY_2, IBUS_KEY_parenright, 0x3252, --IBUS_KEY_parenleft, IBUS_KEY_2, IBUS_KEY_3, IBUS_KEY_parenright, 0x3253, --IBUS_KEY_parenleft, IBUS_KEY_2, IBUS_KEY_4, IBUS_KEY_parenright, 0x3254, --IBUS_KEY_parenleft, IBUS_KEY_2, IBUS_KEY_5, IBUS_KEY_parenright, 0x3255, --IBUS_KEY_parenleft, IBUS_KEY_2, IBUS_KEY_6, IBUS_KEY_parenright, 0x3256, --IBUS_KEY_parenleft, IBUS_KEY_2, IBUS_KEY_7, IBUS_KEY_parenright, 0x3257, --IBUS_KEY_parenleft, IBUS_KEY_2, IBUS_KEY_8, IBUS_KEY_parenright, 0x3258, --IBUS_KEY_parenleft, IBUS_KEY_2, IBUS_KEY_9, IBUS_KEY_parenright, 0x3259, --IBUS_KEY_parenleft, IBUS_KEY_2, IBUS_KEY_KP_Space, IBUS_KEY_parenright, 0x3252, --IBUS_KEY_parenleft, IBUS_KEY_2, IBUS_KEY_KP_0, IBUS_KEY_parenright, 0x2473, --IBUS_KEY_parenleft, IBUS_KEY_2, IBUS_KEY_KP_1, IBUS_KEY_parenright, 0x3251, --IBUS_KEY_parenleft, IBUS_KEY_2, IBUS_KEY_KP_2, IBUS_KEY_parenright, 0x3252, --IBUS_KEY_parenleft, IBUS_KEY_2, IBUS_KEY_KP_3, IBUS_KEY_parenright, 0x3253, --IBUS_KEY_parenleft, IBUS_KEY_2, IBUS_KEY_KP_4, IBUS_KEY_parenright, 0x3254, --IBUS_KEY_parenleft, IBUS_KEY_2, IBUS_KEY_KP_5, IBUS_KEY_parenright, 0x3255, --IBUS_KEY_parenleft, IBUS_KEY_2, IBUS_KEY_KP_6, IBUS_KEY_parenright, 0x3256, --IBUS_KEY_parenleft, IBUS_KEY_2, IBUS_KEY_KP_7, IBUS_KEY_parenright, 0x3257, --IBUS_KEY_parenleft, IBUS_KEY_2, IBUS_KEY_KP_8, IBUS_KEY_parenright, 0x3258, --IBUS_KEY_parenleft, IBUS_KEY_2, IBUS_KEY_KP_9, IBUS_KEY_parenright, 0x3259, --IBUS_KEY_parenleft, IBUS_KEY_3, IBUS_KEY_0, IBUS_KEY_parenright, 0x325A, --IBUS_KEY_parenleft, IBUS_KEY_3, IBUS_KEY_1, IBUS_KEY_parenright, 0x325B, --IBUS_KEY_parenleft, IBUS_KEY_3, IBUS_KEY_2, IBUS_KEY_parenright, 0x325C, --IBUS_KEY_parenleft, IBUS_KEY_3, IBUS_KEY_3, IBUS_KEY_parenright, 0x325D, --IBUS_KEY_parenleft, IBUS_KEY_3, IBUS_KEY_4, IBUS_KEY_parenright, 0x325E, --IBUS_KEY_parenleft, IBUS_KEY_3, IBUS_KEY_5, IBUS_KEY_parenright, 0x325F, --IBUS_KEY_parenleft, IBUS_KEY_3, IBUS_KEY_6, IBUS_KEY_parenright, 0x32B1, --IBUS_KEY_parenleft, IBUS_KEY_3, IBUS_KEY_7, IBUS_KEY_parenright, 0x32B2, --IBUS_KEY_parenleft, IBUS_KEY_3, IBUS_KEY_8, IBUS_KEY_parenright, 0x32B3, --IBUS_KEY_parenleft, IBUS_KEY_3, IBUS_KEY_9, IBUS_KEY_parenright, 0x32B4, --IBUS_KEY_parenleft, IBUS_KEY_3, IBUS_KEY_KP_Space, IBUS_KEY_parenright, 0x325C, --IBUS_KEY_parenleft, IBUS_KEY_3, IBUS_KEY_KP_0, IBUS_KEY_parenright, 0x325A, --IBUS_KEY_parenleft, IBUS_KEY_3, IBUS_KEY_KP_1, IBUS_KEY_parenright, 0x325B, --IBUS_KEY_parenleft, IBUS_KEY_3, IBUS_KEY_KP_2, IBUS_KEY_parenright, 0x325C, --IBUS_KEY_parenleft, IBUS_KEY_3, IBUS_KEY_KP_3, IBUS_KEY_parenright, 0x325D, --IBUS_KEY_parenleft, IBUS_KEY_3, IBUS_KEY_KP_4, IBUS_KEY_parenright, 0x325E, --IBUS_KEY_parenleft, IBUS_KEY_3, IBUS_KEY_KP_5, IBUS_KEY_parenright, 0x325F, --IBUS_KEY_parenleft, IBUS_KEY_3, IBUS_KEY_KP_6, IBUS_KEY_parenright, 0x32B1, --IBUS_KEY_parenleft, IBUS_KEY_3, IBUS_KEY_KP_7, IBUS_KEY_parenright, 0x32B2, --IBUS_KEY_parenleft, IBUS_KEY_3, IBUS_KEY_KP_8, IBUS_KEY_parenright, 0x32B3, --IBUS_KEY_parenleft, IBUS_KEY_3, IBUS_KEY_KP_9, IBUS_KEY_parenright, 0x32B4, --IBUS_KEY_parenleft, IBUS_KEY_4, IBUS_KEY_0, IBUS_KEY_parenright, 0x32B5, --IBUS_KEY_parenleft, IBUS_KEY_4, IBUS_KEY_1, IBUS_KEY_parenright, 0x32B6, --IBUS_KEY_parenleft, IBUS_KEY_4, IBUS_KEY_2, IBUS_KEY_parenright, 0x32B7, --IBUS_KEY_parenleft, IBUS_KEY_4, IBUS_KEY_3, IBUS_KEY_parenright, 0x32B8, --IBUS_KEY_parenleft, IBUS_KEY_4, IBUS_KEY_4, IBUS_KEY_parenright, 0x32B9, --IBUS_KEY_parenleft, IBUS_KEY_4, IBUS_KEY_5, IBUS_KEY_parenright, 0x32BA, --IBUS_KEY_parenleft, IBUS_KEY_4, IBUS_KEY_6, IBUS_KEY_parenright, 0x32BB, --IBUS_KEY_parenleft, IBUS_KEY_4, IBUS_KEY_7, IBUS_KEY_parenright, 0x32BC, --IBUS_KEY_parenleft, IBUS_KEY_4, IBUS_KEY_8, IBUS_KEY_parenright, 0x32BD, --IBUS_KEY_parenleft, IBUS_KEY_4, IBUS_KEY_9, IBUS_KEY_parenright, 0x32BE, --IBUS_KEY_parenleft, IBUS_KEY_4, IBUS_KEY_KP_Space, IBUS_KEY_parenright, 0x32B7, --IBUS_KEY_parenleft, IBUS_KEY_4, IBUS_KEY_KP_0, IBUS_KEY_parenright, 0x32B5, --IBUS_KEY_parenleft, IBUS_KEY_4, IBUS_KEY_KP_1, IBUS_KEY_parenright, 0x32B6, --IBUS_KEY_parenleft, IBUS_KEY_4, IBUS_KEY_KP_2, IBUS_KEY_parenright, 0x32B7, --IBUS_KEY_parenleft, IBUS_KEY_4, IBUS_KEY_KP_3, IBUS_KEY_parenright, 0x32B8, --IBUS_KEY_parenleft, IBUS_KEY_4, IBUS_KEY_KP_4, IBUS_KEY_parenright, 0x32B9, --IBUS_KEY_parenleft, IBUS_KEY_4, IBUS_KEY_KP_5, IBUS_KEY_parenright, 0x32BA, --IBUS_KEY_parenleft, IBUS_KEY_4, IBUS_KEY_KP_6, IBUS_KEY_parenright, 0x32BB, --IBUS_KEY_parenleft, IBUS_KEY_4, IBUS_KEY_KP_7, IBUS_KEY_parenright, 0x32BC, --IBUS_KEY_parenleft, IBUS_KEY_4, IBUS_KEY_KP_8, IBUS_KEY_parenright, 0x32BD, --IBUS_KEY_parenleft, IBUS_KEY_4, IBUS_KEY_KP_9, IBUS_KEY_parenright, 0x32BE, --IBUS_KEY_parenleft, IBUS_KEY_5, IBUS_KEY_KP_0, IBUS_KEY_parenright, 0x32BF, --IBUS_KEY_parenleft, 0x1100, 0x1161, IBUS_KEY_parenright, 0x326E, --IBUS_KEY_parenleft, 0x1102, 0x1161, IBUS_KEY_parenright, 0x326F, --IBUS_KEY_parenleft, 0x1103, 0x1161, IBUS_KEY_parenright, 0x3270, --IBUS_KEY_parenleft, 0x1105, 0x1161, IBUS_KEY_parenright, 0x3271, --IBUS_KEY_parenleft, 0x1106, 0x1161, IBUS_KEY_parenright, 0x3272, --IBUS_KEY_parenleft, 0x1107, 0x1161, IBUS_KEY_parenright, 0x3273, --IBUS_KEY_parenleft, 0x1109, 0x1161, IBUS_KEY_parenright, 0x3274, --IBUS_KEY_parenleft, 0x110B, 0x1161, IBUS_KEY_parenright, 0x3275, --IBUS_KEY_parenleft, 0x110C, 0x1161, IBUS_KEY_parenright, 0x3276, --IBUS_KEY_parenleft, 0x110E, 0x1161, IBUS_KEY_parenright, 0x3277, --IBUS_KEY_parenleft, 0x110F, 0x1161, IBUS_KEY_parenright, 0x3278, --IBUS_KEY_parenleft, 0x1110, 0x1161, IBUS_KEY_parenright, 0x3279, --IBUS_KEY_parenleft, 0x1111, 0x1161, IBUS_KEY_parenright, 0x327A, --IBUS_KEY_parenleft, 0x1112, 0x1161, IBUS_KEY_parenright, 0x327B, --IBUS_KEY_parenleft, IBUS_KEY_KP_Space, IBUS_KEY_0, IBUS_KEY_parenright, 0x2473, --IBUS_KEY_parenleft, IBUS_KEY_KP_Space, IBUS_KEY_1, IBUS_KEY_parenright, 0x3251, --IBUS_KEY_parenleft, IBUS_KEY_KP_Space, IBUS_KEY_2, IBUS_KEY_parenright, 0x3252, --IBUS_KEY_parenleft, IBUS_KEY_KP_Space, IBUS_KEY_3, IBUS_KEY_parenright, 0x3253, --IBUS_KEY_parenleft, IBUS_KEY_KP_Space, IBUS_KEY_4, IBUS_KEY_parenright, 0x3254, --IBUS_KEY_parenleft, IBUS_KEY_KP_Space, IBUS_KEY_5, IBUS_KEY_parenright, 0x3255, --IBUS_KEY_parenleft, IBUS_KEY_KP_Space, IBUS_KEY_6, IBUS_KEY_parenright, 0x3256, --IBUS_KEY_parenleft, IBUS_KEY_KP_Space, IBUS_KEY_7, IBUS_KEY_parenright, 0x3257, --IBUS_KEY_parenleft, IBUS_KEY_KP_Space, IBUS_KEY_8, IBUS_KEY_parenright, 0x3258, --IBUS_KEY_parenleft, IBUS_KEY_KP_Space, IBUS_KEY_9, IBUS_KEY_parenright, 0x3259, --IBUS_KEY_parenleft, IBUS_KEY_KP_Space, IBUS_KEY_KP_Space, IBUS_KEY_parenright, 0x3252, --IBUS_KEY_parenleft, IBUS_KEY_KP_Space, IBUS_KEY_KP_0, IBUS_KEY_parenright, 0x2473, --IBUS_KEY_parenleft, IBUS_KEY_KP_Space, IBUS_KEY_KP_1, IBUS_KEY_parenright, 0x3251, --IBUS_KEY_parenleft, IBUS_KEY_KP_Space, IBUS_KEY_KP_2, IBUS_KEY_parenright, 0x3252, --IBUS_KEY_parenleft, IBUS_KEY_KP_Space, IBUS_KEY_KP_3, IBUS_KEY_parenright, 0x3253, --IBUS_KEY_parenleft, IBUS_KEY_KP_Space, IBUS_KEY_KP_4, IBUS_KEY_parenright, 0x3254, --IBUS_KEY_parenleft, IBUS_KEY_KP_Space, IBUS_KEY_KP_5, IBUS_KEY_parenright, 0x3255, --IBUS_KEY_parenleft, IBUS_KEY_KP_Space, IBUS_KEY_KP_6, IBUS_KEY_parenright, 0x3256, --IBUS_KEY_parenleft, IBUS_KEY_KP_Space, IBUS_KEY_KP_7, IBUS_KEY_parenright, 0x3257, --IBUS_KEY_parenleft, IBUS_KEY_KP_Space, IBUS_KEY_KP_8, IBUS_KEY_parenright, 0x3258, --IBUS_KEY_parenleft, IBUS_KEY_KP_Space, IBUS_KEY_KP_9, IBUS_KEY_parenright, 0x3259, --IBUS_KEY_parenleft, IBUS_KEY_KP_1, IBUS_KEY_0, IBUS_KEY_parenright, 0x2469, --IBUS_KEY_parenleft, IBUS_KEY_KP_1, IBUS_KEY_1, IBUS_KEY_parenright, 0x246A, --IBUS_KEY_parenleft, IBUS_KEY_KP_1, IBUS_KEY_2, IBUS_KEY_parenright, 0x246B, --IBUS_KEY_parenleft, IBUS_KEY_KP_1, IBUS_KEY_3, IBUS_KEY_parenright, 0x246C, --IBUS_KEY_parenleft, IBUS_KEY_KP_1, IBUS_KEY_4, IBUS_KEY_parenright, 0x246D, --IBUS_KEY_parenleft, IBUS_KEY_KP_1, IBUS_KEY_5, IBUS_KEY_parenright, 0x246E, --IBUS_KEY_parenleft, IBUS_KEY_KP_1, IBUS_KEY_6, IBUS_KEY_parenright, 0x246F, --IBUS_KEY_parenleft, IBUS_KEY_KP_1, IBUS_KEY_7, IBUS_KEY_parenright, 0x2470, --IBUS_KEY_parenleft, IBUS_KEY_KP_1, IBUS_KEY_8, IBUS_KEY_parenright, 0x2471, --IBUS_KEY_parenleft, IBUS_KEY_KP_1, IBUS_KEY_9, IBUS_KEY_parenright, 0x2472, --IBUS_KEY_parenleft, IBUS_KEY_KP_1, IBUS_KEY_KP_Space, IBUS_KEY_parenright, 0x246B, --IBUS_KEY_parenleft, IBUS_KEY_KP_1, IBUS_KEY_KP_0, IBUS_KEY_parenright, 0x2469, --IBUS_KEY_parenleft, IBUS_KEY_KP_1, IBUS_KEY_KP_1, IBUS_KEY_parenright, 0x246A, --IBUS_KEY_parenleft, IBUS_KEY_KP_1, IBUS_KEY_KP_2, IBUS_KEY_parenright, 0x246B, --IBUS_KEY_parenleft, IBUS_KEY_KP_1, IBUS_KEY_KP_3, IBUS_KEY_parenright, 0x246C, --IBUS_KEY_parenleft, IBUS_KEY_KP_1, IBUS_KEY_KP_4, IBUS_KEY_parenright, 0x246D, --IBUS_KEY_parenleft, IBUS_KEY_KP_1, IBUS_KEY_KP_5, IBUS_KEY_parenright, 0x246E, --IBUS_KEY_parenleft, IBUS_KEY_KP_1, IBUS_KEY_KP_6, IBUS_KEY_parenright, 0x246F, --IBUS_KEY_parenleft, IBUS_KEY_KP_1, IBUS_KEY_KP_7, IBUS_KEY_parenright, 0x2470, --IBUS_KEY_parenleft, IBUS_KEY_KP_1, IBUS_KEY_KP_8, IBUS_KEY_parenright, 0x2471, --IBUS_KEY_parenleft, IBUS_KEY_KP_1, IBUS_KEY_KP_9, IBUS_KEY_parenright, 0x2472, --IBUS_KEY_parenleft, IBUS_KEY_KP_2, IBUS_KEY_0, IBUS_KEY_parenright, 0x2473, --IBUS_KEY_parenleft, IBUS_KEY_KP_2, IBUS_KEY_1, IBUS_KEY_parenright, 0x3251, --IBUS_KEY_parenleft, IBUS_KEY_KP_2, IBUS_KEY_2, IBUS_KEY_parenright, 0x3252, --IBUS_KEY_parenleft, IBUS_KEY_KP_2, IBUS_KEY_3, IBUS_KEY_parenright, 0x3253, --IBUS_KEY_parenleft, IBUS_KEY_KP_2, IBUS_KEY_4, IBUS_KEY_parenright, 0x3254, --IBUS_KEY_parenleft, IBUS_KEY_KP_2, IBUS_KEY_5, IBUS_KEY_parenright, 0x3255, --IBUS_KEY_parenleft, IBUS_KEY_KP_2, IBUS_KEY_6, IBUS_KEY_parenright, 0x3256, --IBUS_KEY_parenleft, IBUS_KEY_KP_2, IBUS_KEY_7, IBUS_KEY_parenright, 0x3257, --IBUS_KEY_parenleft, IBUS_KEY_KP_2, IBUS_KEY_8, IBUS_KEY_parenright, 0x3258, --IBUS_KEY_parenleft, IBUS_KEY_KP_2, IBUS_KEY_9, IBUS_KEY_parenright, 0x3259, --IBUS_KEY_parenleft, IBUS_KEY_KP_2, IBUS_KEY_KP_Space, IBUS_KEY_parenright, 0x3252, --IBUS_KEY_parenleft, IBUS_KEY_KP_2, IBUS_KEY_KP_0, IBUS_KEY_parenright, 0x2473, --IBUS_KEY_parenleft, IBUS_KEY_KP_2, IBUS_KEY_KP_1, IBUS_KEY_parenright, 0x3251, --IBUS_KEY_parenleft, IBUS_KEY_KP_2, IBUS_KEY_KP_2, IBUS_KEY_parenright, 0x3252, --IBUS_KEY_parenleft, IBUS_KEY_KP_2, IBUS_KEY_KP_3, IBUS_KEY_parenright, 0x3253, --IBUS_KEY_parenleft, IBUS_KEY_KP_2, IBUS_KEY_KP_4, IBUS_KEY_parenright, 0x3254, --IBUS_KEY_parenleft, IBUS_KEY_KP_2, IBUS_KEY_KP_5, IBUS_KEY_parenright, 0x3255, --IBUS_KEY_parenleft, IBUS_KEY_KP_2, IBUS_KEY_KP_6, IBUS_KEY_parenright, 0x3256, --IBUS_KEY_parenleft, IBUS_KEY_KP_2, IBUS_KEY_KP_7, IBUS_KEY_parenright, 0x3257, --IBUS_KEY_parenleft, IBUS_KEY_KP_2, IBUS_KEY_KP_8, IBUS_KEY_parenright, 0x3258, --IBUS_KEY_parenleft, IBUS_KEY_KP_2, IBUS_KEY_KP_9, IBUS_KEY_parenright, 0x3259, --IBUS_KEY_parenleft, IBUS_KEY_KP_3, IBUS_KEY_0, IBUS_KEY_parenright, 0x325A, --IBUS_KEY_parenleft, IBUS_KEY_KP_3, IBUS_KEY_1, IBUS_KEY_parenright, 0x325B, --IBUS_KEY_parenleft, IBUS_KEY_KP_3, IBUS_KEY_2, IBUS_KEY_parenright, 0x325C, --IBUS_KEY_parenleft, IBUS_KEY_KP_3, IBUS_KEY_3, IBUS_KEY_parenright, 0x325D, --IBUS_KEY_parenleft, IBUS_KEY_KP_3, IBUS_KEY_4, IBUS_KEY_parenright, 0x325E, --IBUS_KEY_parenleft, IBUS_KEY_KP_3, IBUS_KEY_5, IBUS_KEY_parenright, 0x325F, --IBUS_KEY_parenleft, IBUS_KEY_KP_3, IBUS_KEY_6, IBUS_KEY_parenright, 0x32B1, --IBUS_KEY_parenleft, IBUS_KEY_KP_3, IBUS_KEY_7, IBUS_KEY_parenright, 0x32B2, --IBUS_KEY_parenleft, IBUS_KEY_KP_3, IBUS_KEY_8, IBUS_KEY_parenright, 0x32B3, --IBUS_KEY_parenleft, IBUS_KEY_KP_3, IBUS_KEY_9, IBUS_KEY_parenright, 0x32B4, --IBUS_KEY_parenleft, IBUS_KEY_KP_3, IBUS_KEY_KP_Space, IBUS_KEY_parenright, 0x325C, --IBUS_KEY_parenleft, IBUS_KEY_KP_3, IBUS_KEY_KP_0, IBUS_KEY_parenright, 0x325A, --IBUS_KEY_parenleft, IBUS_KEY_KP_3, IBUS_KEY_KP_1, IBUS_KEY_parenright, 0x325B, --IBUS_KEY_parenleft, IBUS_KEY_KP_3, IBUS_KEY_KP_2, IBUS_KEY_parenright, 0x325C, --IBUS_KEY_parenleft, IBUS_KEY_KP_3, IBUS_KEY_KP_3, IBUS_KEY_parenright, 0x325D, --IBUS_KEY_parenleft, IBUS_KEY_KP_3, IBUS_KEY_KP_4, IBUS_KEY_parenright, 0x325E, --IBUS_KEY_parenleft, IBUS_KEY_KP_3, IBUS_KEY_KP_5, IBUS_KEY_parenright, 0x325F, --IBUS_KEY_parenleft, IBUS_KEY_KP_3, IBUS_KEY_KP_6, IBUS_KEY_parenright, 0x32B1, --IBUS_KEY_parenleft, IBUS_KEY_KP_3, IBUS_KEY_KP_7, IBUS_KEY_parenright, 0x32B2, --IBUS_KEY_parenleft, IBUS_KEY_KP_3, IBUS_KEY_KP_8, IBUS_KEY_parenright, 0x32B3, --IBUS_KEY_parenleft, IBUS_KEY_KP_3, IBUS_KEY_KP_9, IBUS_KEY_parenright, 0x32B4, --IBUS_KEY_parenleft, IBUS_KEY_KP_4, IBUS_KEY_0, IBUS_KEY_parenright, 0x32B5, --IBUS_KEY_parenleft, IBUS_KEY_KP_4, IBUS_KEY_1, IBUS_KEY_parenright, 0x32B6, --IBUS_KEY_parenleft, IBUS_KEY_KP_4, IBUS_KEY_2, IBUS_KEY_parenright, 0x32B7, --IBUS_KEY_parenleft, IBUS_KEY_KP_4, IBUS_KEY_3, IBUS_KEY_parenright, 0x32B8, --IBUS_KEY_parenleft, IBUS_KEY_KP_4, IBUS_KEY_4, IBUS_KEY_parenright, 0x32B9, --IBUS_KEY_parenleft, IBUS_KEY_KP_4, IBUS_KEY_5, IBUS_KEY_parenright, 0x32BA, --IBUS_KEY_parenleft, IBUS_KEY_KP_4, IBUS_KEY_6, IBUS_KEY_parenright, 0x32BB, --IBUS_KEY_parenleft, IBUS_KEY_KP_4, IBUS_KEY_7, IBUS_KEY_parenright, 0x32BC, --IBUS_KEY_parenleft, IBUS_KEY_KP_4, IBUS_KEY_8, IBUS_KEY_parenright, 0x32BD, --IBUS_KEY_parenleft, IBUS_KEY_KP_4, IBUS_KEY_9, IBUS_KEY_parenright, 0x32BE, --IBUS_KEY_parenleft, IBUS_KEY_KP_4, IBUS_KEY_KP_Space, IBUS_KEY_parenright, 0x32B7, --IBUS_KEY_parenleft, IBUS_KEY_KP_4, IBUS_KEY_KP_0, IBUS_KEY_parenright, 0x32B5, --IBUS_KEY_parenleft, IBUS_KEY_KP_4, IBUS_KEY_KP_1, IBUS_KEY_parenright, 0x32B6, --IBUS_KEY_parenleft, IBUS_KEY_KP_4, IBUS_KEY_KP_2, IBUS_KEY_parenright, 0x32B7, --IBUS_KEY_parenleft, IBUS_KEY_KP_4, IBUS_KEY_KP_3, IBUS_KEY_parenright, 0x32B8, --IBUS_KEY_parenleft, IBUS_KEY_KP_4, IBUS_KEY_KP_4, IBUS_KEY_parenright, 0x32B9, --IBUS_KEY_parenleft, IBUS_KEY_KP_4, IBUS_KEY_KP_5, IBUS_KEY_parenright, 0x32BA, --IBUS_KEY_parenleft, IBUS_KEY_KP_4, IBUS_KEY_KP_6, IBUS_KEY_parenright, 0x32BB, --IBUS_KEY_parenleft, IBUS_KEY_KP_4, IBUS_KEY_KP_7, IBUS_KEY_parenright, 0x32BC, --IBUS_KEY_parenleft, IBUS_KEY_KP_4, IBUS_KEY_KP_8, IBUS_KEY_parenright, 0x32BD, --IBUS_KEY_parenleft, IBUS_KEY_KP_4, IBUS_KEY_KP_9, IBUS_KEY_parenright, 0x32BE, --IBUS_KEY_parenleft, IBUS_KEY_KP_5, IBUS_KEY_KP_0, IBUS_KEY_parenright, 0x32BF, --IBUS_KEY_C, IBUS_KEY_C, IBUS_KEY_C, IBUS_KEY_P, 0x262D, --IBUS_KEY_U, IBUS_KEY_space, IBUS_KEY_comma, IBUS_KEY_E, 0x1E1C, --IBUS_KEY_U, IBUS_KEY_space, IBUS_KEY_comma, IBUS_KEY_e, 0x1E1D, --IBUS_KEY_Greek_iota, IBUS_KEY_apostrophe, IBUS_KEY_parenleft, IBUS_KEY_Greek_ALPHA, 0x1F8D, --IBUS_KEY_Greek_iota, IBUS_KEY_apostrophe, IBUS_KEY_parenleft, IBUS_KEY_Greek_ETA, 0x1F9D, --IBUS_KEY_Greek_iota, IBUS_KEY_apostrophe, IBUS_KEY_parenleft, IBUS_KEY_Greek_OMEGA, 0x1FAD, --IBUS_KEY_Greek_iota, IBUS_KEY_apostrophe, IBUS_KEY_parenleft, IBUS_KEY_Greek_alpha, 0x1F85, --IBUS_KEY_Greek_iota, IBUS_KEY_apostrophe, IBUS_KEY_parenleft, IBUS_KEY_Greek_eta, 0x1F95, --IBUS_KEY_Greek_iota, IBUS_KEY_apostrophe, IBUS_KEY_parenleft, IBUS_KEY_Greek_omega, 0x1FA5, --IBUS_KEY_Greek_iota, IBUS_KEY_apostrophe, IBUS_KEY_parenright, IBUS_KEY_Greek_ALPHA, 0x1F8C, --IBUS_KEY_Greek_iota, IBUS_KEY_apostrophe, IBUS_KEY_parenright, IBUS_KEY_Greek_ETA, 0x1F9C, --IBUS_KEY_Greek_iota, IBUS_KEY_apostrophe, IBUS_KEY_parenright, IBUS_KEY_Greek_OMEGA, 0x1FAC, --IBUS_KEY_Greek_iota, IBUS_KEY_apostrophe, IBUS_KEY_parenright, IBUS_KEY_Greek_alpha, 0x1F84, --IBUS_KEY_Greek_iota, IBUS_KEY_apostrophe, IBUS_KEY_parenright, IBUS_KEY_Greek_eta, 0x1F94, --IBUS_KEY_Greek_iota, IBUS_KEY_apostrophe, IBUS_KEY_parenright, IBUS_KEY_Greek_omega, 0x1FA4, --IBUS_KEY_Greek_iota, IBUS_KEY_apostrophe, IBUS_KEY_dead_psili, IBUS_KEY_Greek_ALPHA, 0x1F8C, --IBUS_KEY_Greek_iota, IBUS_KEY_apostrophe, IBUS_KEY_dead_psili, IBUS_KEY_Greek_ETA, 0x1F9C, --IBUS_KEY_Greek_iota, IBUS_KEY_apostrophe, IBUS_KEY_dead_psili, IBUS_KEY_Greek_OMEGA, 0x1FAC, --IBUS_KEY_Greek_iota, IBUS_KEY_apostrophe, IBUS_KEY_dead_psili, IBUS_KEY_Greek_alpha, 0x1F84, --IBUS_KEY_Greek_iota, IBUS_KEY_apostrophe, IBUS_KEY_dead_psili, IBUS_KEY_Greek_eta, 0x1F94, --IBUS_KEY_Greek_iota, IBUS_KEY_apostrophe, IBUS_KEY_dead_psili, IBUS_KEY_Greek_omega, 0x1FA4, --IBUS_KEY_Greek_iota, IBUS_KEY_apostrophe, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_ALPHA, 0x1F8D, --IBUS_KEY_Greek_iota, IBUS_KEY_apostrophe, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_ETA, 0x1F9D, --IBUS_KEY_Greek_iota, IBUS_KEY_apostrophe, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_OMEGA, 0x1FAD, --IBUS_KEY_Greek_iota, IBUS_KEY_apostrophe, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_alpha, 0x1F85, --IBUS_KEY_Greek_iota, IBUS_KEY_apostrophe, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_eta, 0x1F95, --IBUS_KEY_Greek_iota, IBUS_KEY_apostrophe, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_omega, 0x1FA5, --IBUS_KEY_Greek_iota, IBUS_KEY_grave, IBUS_KEY_parenleft, IBUS_KEY_Greek_ALPHA, 0x1F8B, --IBUS_KEY_Greek_iota, IBUS_KEY_grave, IBUS_KEY_parenleft, IBUS_KEY_Greek_ETA, 0x1F9B, --IBUS_KEY_Greek_iota, IBUS_KEY_grave, IBUS_KEY_parenleft, IBUS_KEY_Greek_OMEGA, 0x1FAB, --IBUS_KEY_Greek_iota, IBUS_KEY_grave, IBUS_KEY_parenleft, IBUS_KEY_Greek_alpha, 0x1F83, --IBUS_KEY_Greek_iota, IBUS_KEY_grave, IBUS_KEY_parenleft, IBUS_KEY_Greek_eta, 0x1F93, --IBUS_KEY_Greek_iota, IBUS_KEY_grave, IBUS_KEY_parenleft, IBUS_KEY_Greek_omega, 0x1FA3, --IBUS_KEY_Greek_iota, IBUS_KEY_grave, IBUS_KEY_parenright, IBUS_KEY_Greek_ALPHA, 0x1F8A, --IBUS_KEY_Greek_iota, IBUS_KEY_grave, IBUS_KEY_parenright, IBUS_KEY_Greek_ETA, 0x1F9A, --IBUS_KEY_Greek_iota, IBUS_KEY_grave, IBUS_KEY_parenright, IBUS_KEY_Greek_OMEGA, 0x1FAA, --IBUS_KEY_Greek_iota, IBUS_KEY_grave, IBUS_KEY_parenright, IBUS_KEY_Greek_alpha, 0x1F82, --IBUS_KEY_Greek_iota, IBUS_KEY_grave, IBUS_KEY_parenright, IBUS_KEY_Greek_eta, 0x1F92, --IBUS_KEY_Greek_iota, IBUS_KEY_grave, IBUS_KEY_parenright, IBUS_KEY_Greek_omega, 0x1FA2, --IBUS_KEY_Greek_iota, IBUS_KEY_grave, IBUS_KEY_dead_psili, IBUS_KEY_Greek_ALPHA, 0x1F8A, --IBUS_KEY_Greek_iota, IBUS_KEY_grave, IBUS_KEY_dead_psili, IBUS_KEY_Greek_ETA, 0x1F9A, --IBUS_KEY_Greek_iota, IBUS_KEY_grave, IBUS_KEY_dead_psili, IBUS_KEY_Greek_OMEGA, 0x1FAA, --IBUS_KEY_Greek_iota, IBUS_KEY_grave, IBUS_KEY_dead_psili, IBUS_KEY_Greek_alpha, 0x1F82, --IBUS_KEY_Greek_iota, IBUS_KEY_grave, IBUS_KEY_dead_psili, IBUS_KEY_Greek_eta, 0x1F92, --IBUS_KEY_Greek_iota, IBUS_KEY_grave, IBUS_KEY_dead_psili, IBUS_KEY_Greek_omega, 0x1FA2, --IBUS_KEY_Greek_iota, IBUS_KEY_grave, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_ALPHA, 0x1F8B, --IBUS_KEY_Greek_iota, IBUS_KEY_grave, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_ETA, 0x1F9B, --IBUS_KEY_Greek_iota, IBUS_KEY_grave, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_OMEGA, 0x1FAB, --IBUS_KEY_Greek_iota, IBUS_KEY_grave, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_alpha, 0x1F83, --IBUS_KEY_Greek_iota, IBUS_KEY_grave, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_eta, 0x1F93, --IBUS_KEY_Greek_iota, IBUS_KEY_grave, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_omega, 0x1FA3, --IBUS_KEY_Greek_iota, IBUS_KEY_asciitilde, IBUS_KEY_parenleft, IBUS_KEY_Greek_ALPHA, 0x1F8F, --IBUS_KEY_Greek_iota, IBUS_KEY_asciitilde, IBUS_KEY_parenleft, IBUS_KEY_Greek_ETA, 0x1F9F, --IBUS_KEY_Greek_iota, IBUS_KEY_asciitilde, IBUS_KEY_parenleft, IBUS_KEY_Greek_OMEGA, 0x1FAF, --IBUS_KEY_Greek_iota, IBUS_KEY_asciitilde, IBUS_KEY_parenleft, IBUS_KEY_Greek_alpha, 0x1F87, --IBUS_KEY_Greek_iota, IBUS_KEY_asciitilde, IBUS_KEY_parenleft, IBUS_KEY_Greek_eta, 0x1F97, --IBUS_KEY_Greek_iota, IBUS_KEY_asciitilde, IBUS_KEY_parenleft, IBUS_KEY_Greek_omega, 0x1FA7, --IBUS_KEY_Greek_iota, IBUS_KEY_asciitilde, IBUS_KEY_parenright, IBUS_KEY_Greek_ALPHA, 0x1F8E, --IBUS_KEY_Greek_iota, IBUS_KEY_asciitilde, IBUS_KEY_parenright, IBUS_KEY_Greek_ETA, 0x1F9E, --IBUS_KEY_Greek_iota, IBUS_KEY_asciitilde, IBUS_KEY_parenright, IBUS_KEY_Greek_OMEGA, 0x1FAE, --IBUS_KEY_Greek_iota, IBUS_KEY_asciitilde, IBUS_KEY_parenright, IBUS_KEY_Greek_alpha, 0x1F86, --IBUS_KEY_Greek_iota, IBUS_KEY_asciitilde, IBUS_KEY_parenright, IBUS_KEY_Greek_eta, 0x1F96, --IBUS_KEY_Greek_iota, IBUS_KEY_asciitilde, IBUS_KEY_parenright, IBUS_KEY_Greek_omega, 0x1FA6, --IBUS_KEY_Greek_iota, IBUS_KEY_asciitilde, IBUS_KEY_dead_psili, IBUS_KEY_Greek_ALPHA, 0x1F8E, --IBUS_KEY_Greek_iota, IBUS_KEY_asciitilde, IBUS_KEY_dead_psili, IBUS_KEY_Greek_ETA, 0x1F9E, --IBUS_KEY_Greek_iota, IBUS_KEY_asciitilde, IBUS_KEY_dead_psili, IBUS_KEY_Greek_OMEGA, 0x1FAE, --IBUS_KEY_Greek_iota, IBUS_KEY_asciitilde, IBUS_KEY_dead_psili, IBUS_KEY_Greek_alpha, 0x1F86, --IBUS_KEY_Greek_iota, IBUS_KEY_asciitilde, IBUS_KEY_dead_psili, IBUS_KEY_Greek_eta, 0x1F96, --IBUS_KEY_Greek_iota, IBUS_KEY_asciitilde, IBUS_KEY_dead_psili, IBUS_KEY_Greek_omega, 0x1FA6, --IBUS_KEY_Greek_iota, IBUS_KEY_asciitilde, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_ALPHA, 0x1F8F, --IBUS_KEY_Greek_iota, IBUS_KEY_asciitilde, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_ETA, 0x1F9F, --IBUS_KEY_Greek_iota, IBUS_KEY_asciitilde, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_OMEGA, 0x1FAF, --IBUS_KEY_Greek_iota, IBUS_KEY_asciitilde, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_alpha, 0x1F87, --IBUS_KEY_Greek_iota, IBUS_KEY_asciitilde, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_eta, 0x1F97, --IBUS_KEY_Greek_iota, IBUS_KEY_asciitilde, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_omega, 0x1FA7, --IBUS_KEY_Greek_iota, IBUS_KEY_acute, IBUS_KEY_parenleft, IBUS_KEY_Greek_ALPHA, 0x1F8D, --IBUS_KEY_Greek_iota, IBUS_KEY_acute, IBUS_KEY_parenleft, IBUS_KEY_Greek_ETA, 0x1F9D, --IBUS_KEY_Greek_iota, IBUS_KEY_acute, IBUS_KEY_parenleft, IBUS_KEY_Greek_OMEGA, 0x1FAD, --IBUS_KEY_Greek_iota, IBUS_KEY_acute, IBUS_KEY_parenleft, IBUS_KEY_Greek_alpha, 0x1F85, --IBUS_KEY_Greek_iota, IBUS_KEY_acute, IBUS_KEY_parenleft, IBUS_KEY_Greek_eta, 0x1F95, --IBUS_KEY_Greek_iota, IBUS_KEY_acute, IBUS_KEY_parenleft, IBUS_KEY_Greek_omega, 0x1FA5, --IBUS_KEY_Greek_iota, IBUS_KEY_acute, IBUS_KEY_parenright, IBUS_KEY_Greek_ALPHA, 0x1F8C, --IBUS_KEY_Greek_iota, IBUS_KEY_acute, IBUS_KEY_parenright, IBUS_KEY_Greek_ETA, 0x1F9C, --IBUS_KEY_Greek_iota, IBUS_KEY_acute, IBUS_KEY_parenright, IBUS_KEY_Greek_OMEGA, 0x1FAC, --IBUS_KEY_Greek_iota, IBUS_KEY_acute, IBUS_KEY_parenright, IBUS_KEY_Greek_alpha, 0x1F84, --IBUS_KEY_Greek_iota, IBUS_KEY_acute, IBUS_KEY_parenright, IBUS_KEY_Greek_eta, 0x1F94, --IBUS_KEY_Greek_iota, IBUS_KEY_acute, IBUS_KEY_parenright, IBUS_KEY_Greek_omega, 0x1FA4, --IBUS_KEY_Greek_iota, IBUS_KEY_acute, IBUS_KEY_dead_psili, IBUS_KEY_Greek_ALPHA, 0x1F8C, --IBUS_KEY_Greek_iota, IBUS_KEY_acute, IBUS_KEY_dead_psili, IBUS_KEY_Greek_ETA, 0x1F9C, --IBUS_KEY_Greek_iota, IBUS_KEY_acute, IBUS_KEY_dead_psili, IBUS_KEY_Greek_OMEGA, 0x1FAC, --IBUS_KEY_Greek_iota, IBUS_KEY_acute, IBUS_KEY_dead_psili, IBUS_KEY_Greek_alpha, 0x1F84, --IBUS_KEY_Greek_iota, IBUS_KEY_acute, IBUS_KEY_dead_psili, IBUS_KEY_Greek_eta, 0x1F94, --IBUS_KEY_Greek_iota, IBUS_KEY_acute, IBUS_KEY_dead_psili, IBUS_KEY_Greek_omega, 0x1FA4, --IBUS_KEY_Greek_iota, IBUS_KEY_acute, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_ALPHA, 0x1F8D, --IBUS_KEY_Greek_iota, IBUS_KEY_acute, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_ETA, 0x1F9D, --IBUS_KEY_Greek_iota, IBUS_KEY_acute, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_OMEGA, 0x1FAD, --IBUS_KEY_Greek_iota, IBUS_KEY_acute, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_alpha, 0x1F85, --IBUS_KEY_Greek_iota, IBUS_KEY_acute, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_eta, 0x1F95, --IBUS_KEY_Greek_iota, IBUS_KEY_acute, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_omega, 0x1FA5, --IBUS_KEY_Greek_iota, IBUS_KEY_dead_grave, IBUS_KEY_parenleft, IBUS_KEY_Greek_ALPHA, 0x1F8B, --IBUS_KEY_Greek_iota, IBUS_KEY_dead_grave, IBUS_KEY_parenleft, IBUS_KEY_Greek_ETA, 0x1F9B, --IBUS_KEY_Greek_iota, IBUS_KEY_dead_grave, IBUS_KEY_parenleft, IBUS_KEY_Greek_OMEGA, 0x1FAB, --IBUS_KEY_Greek_iota, IBUS_KEY_dead_grave, IBUS_KEY_parenleft, IBUS_KEY_Greek_alpha, 0x1F83, --IBUS_KEY_Greek_iota, IBUS_KEY_dead_grave, IBUS_KEY_parenleft, IBUS_KEY_Greek_eta, 0x1F93, --IBUS_KEY_Greek_iota, IBUS_KEY_dead_grave, IBUS_KEY_parenleft, IBUS_KEY_Greek_omega, 0x1FA3, --IBUS_KEY_Greek_iota, IBUS_KEY_dead_grave, IBUS_KEY_parenright, IBUS_KEY_Greek_ALPHA, 0x1F8A, --IBUS_KEY_Greek_iota, IBUS_KEY_dead_grave, IBUS_KEY_parenright, IBUS_KEY_Greek_ETA, 0x1F9A, --IBUS_KEY_Greek_iota, IBUS_KEY_dead_grave, IBUS_KEY_parenright, IBUS_KEY_Greek_OMEGA, 0x1FAA, --IBUS_KEY_Greek_iota, IBUS_KEY_dead_grave, IBUS_KEY_parenright, IBUS_KEY_Greek_alpha, 0x1F82, --IBUS_KEY_Greek_iota, IBUS_KEY_dead_grave, IBUS_KEY_parenright, IBUS_KEY_Greek_eta, 0x1F92, --IBUS_KEY_Greek_iota, IBUS_KEY_dead_grave, IBUS_KEY_parenright, IBUS_KEY_Greek_omega, 0x1FA2, --IBUS_KEY_Greek_iota, IBUS_KEY_dead_grave, IBUS_KEY_dead_psili, IBUS_KEY_Greek_ALPHA, 0x1F8A, --IBUS_KEY_Greek_iota, IBUS_KEY_dead_grave, IBUS_KEY_dead_psili, IBUS_KEY_Greek_ETA, 0x1F9A, --IBUS_KEY_Greek_iota, IBUS_KEY_dead_grave, IBUS_KEY_dead_psili, IBUS_KEY_Greek_OMEGA, 0x1FAA, --IBUS_KEY_Greek_iota, IBUS_KEY_dead_grave, IBUS_KEY_dead_psili, IBUS_KEY_Greek_alpha, 0x1F82, --IBUS_KEY_Greek_iota, IBUS_KEY_dead_grave, IBUS_KEY_dead_psili, IBUS_KEY_Greek_eta, 0x1F92, --IBUS_KEY_Greek_iota, IBUS_KEY_dead_grave, IBUS_KEY_dead_psili, IBUS_KEY_Greek_omega, 0x1FA2, --IBUS_KEY_Greek_iota, IBUS_KEY_dead_grave, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_ALPHA, 0x1F8B, --IBUS_KEY_Greek_iota, IBUS_KEY_dead_grave, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_ETA, 0x1F9B, --IBUS_KEY_Greek_iota, IBUS_KEY_dead_grave, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_OMEGA, 0x1FAB, --IBUS_KEY_Greek_iota, IBUS_KEY_dead_grave, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_alpha, 0x1F83, --IBUS_KEY_Greek_iota, IBUS_KEY_dead_grave, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_eta, 0x1F93, --IBUS_KEY_Greek_iota, IBUS_KEY_dead_grave, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_omega, 0x1FA3, --IBUS_KEY_Greek_iota, IBUS_KEY_dead_acute, IBUS_KEY_parenleft, IBUS_KEY_Greek_ALPHA, 0x1F8D, --IBUS_KEY_Greek_iota, IBUS_KEY_dead_acute, IBUS_KEY_parenleft, IBUS_KEY_Greek_ETA, 0x1F9D, --IBUS_KEY_Greek_iota, IBUS_KEY_dead_acute, IBUS_KEY_parenleft, IBUS_KEY_Greek_OMEGA, 0x1FAD, --IBUS_KEY_Greek_iota, IBUS_KEY_dead_acute, IBUS_KEY_parenleft, IBUS_KEY_Greek_alpha, 0x1F85, --IBUS_KEY_Greek_iota, IBUS_KEY_dead_acute, IBUS_KEY_parenleft, IBUS_KEY_Greek_eta, 0x1F95, --IBUS_KEY_Greek_iota, IBUS_KEY_dead_acute, IBUS_KEY_parenleft, IBUS_KEY_Greek_omega, 0x1FA5, --IBUS_KEY_Greek_iota, IBUS_KEY_dead_acute, IBUS_KEY_parenright, IBUS_KEY_Greek_ALPHA, 0x1F8C, --IBUS_KEY_Greek_iota, IBUS_KEY_dead_acute, IBUS_KEY_parenright, IBUS_KEY_Greek_ETA, 0x1F9C, --IBUS_KEY_Greek_iota, IBUS_KEY_dead_acute, IBUS_KEY_parenright, IBUS_KEY_Greek_OMEGA, 0x1FAC, --IBUS_KEY_Greek_iota, IBUS_KEY_dead_acute, IBUS_KEY_parenright, IBUS_KEY_Greek_alpha, 0x1F84, --IBUS_KEY_Greek_iota, IBUS_KEY_dead_acute, IBUS_KEY_parenright, IBUS_KEY_Greek_eta, 0x1F94, --IBUS_KEY_Greek_iota, IBUS_KEY_dead_acute, IBUS_KEY_parenright, IBUS_KEY_Greek_omega, 0x1FA4, --IBUS_KEY_Greek_iota, IBUS_KEY_dead_acute, IBUS_KEY_dead_psili, IBUS_KEY_Greek_ALPHA, 0x1F8C, --IBUS_KEY_Greek_iota, IBUS_KEY_dead_acute, IBUS_KEY_dead_psili, IBUS_KEY_Greek_ETA, 0x1F9C, --IBUS_KEY_Greek_iota, IBUS_KEY_dead_acute, IBUS_KEY_dead_psili, IBUS_KEY_Greek_OMEGA, 0x1FAC, --IBUS_KEY_Greek_iota, IBUS_KEY_dead_acute, IBUS_KEY_dead_psili, IBUS_KEY_Greek_alpha, 0x1F84, --IBUS_KEY_Greek_iota, IBUS_KEY_dead_acute, IBUS_KEY_dead_psili, IBUS_KEY_Greek_eta, 0x1F94, --IBUS_KEY_Greek_iota, IBUS_KEY_dead_acute, IBUS_KEY_dead_psili, IBUS_KEY_Greek_omega, 0x1FA4, --IBUS_KEY_Greek_iota, IBUS_KEY_dead_acute, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_ALPHA, 0x1F8D, --IBUS_KEY_Greek_iota, IBUS_KEY_dead_acute, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_ETA, 0x1F9D, --IBUS_KEY_Greek_iota, IBUS_KEY_dead_acute, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_OMEGA, 0x1FAD, --IBUS_KEY_Greek_iota, IBUS_KEY_dead_acute, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_alpha, 0x1F85, --IBUS_KEY_Greek_iota, IBUS_KEY_dead_acute, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_eta, 0x1F95, --IBUS_KEY_Greek_iota, IBUS_KEY_dead_acute, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_omega, 0x1FA5, --IBUS_KEY_Greek_iota, IBUS_KEY_dead_tilde, IBUS_KEY_parenleft, IBUS_KEY_Greek_ALPHA, 0x1F8F, --IBUS_KEY_Greek_iota, IBUS_KEY_dead_tilde, IBUS_KEY_parenleft, IBUS_KEY_Greek_ETA, 0x1F9F, --IBUS_KEY_Greek_iota, IBUS_KEY_dead_tilde, IBUS_KEY_parenleft, IBUS_KEY_Greek_OMEGA, 0x1FAF, --IBUS_KEY_Greek_iota, IBUS_KEY_dead_tilde, IBUS_KEY_parenleft, IBUS_KEY_Greek_alpha, 0x1F87, --IBUS_KEY_Greek_iota, IBUS_KEY_dead_tilde, IBUS_KEY_parenleft, IBUS_KEY_Greek_eta, 0x1F97, --IBUS_KEY_Greek_iota, IBUS_KEY_dead_tilde, IBUS_KEY_parenleft, IBUS_KEY_Greek_omega, 0x1FA7, --IBUS_KEY_Greek_iota, IBUS_KEY_dead_tilde, IBUS_KEY_parenright, IBUS_KEY_Greek_ALPHA, 0x1F8E, --IBUS_KEY_Greek_iota, IBUS_KEY_dead_tilde, IBUS_KEY_parenright, IBUS_KEY_Greek_ETA, 0x1F9E, --IBUS_KEY_Greek_iota, IBUS_KEY_dead_tilde, IBUS_KEY_parenright, IBUS_KEY_Greek_OMEGA, 0x1FAE, --IBUS_KEY_Greek_iota, IBUS_KEY_dead_tilde, IBUS_KEY_parenright, IBUS_KEY_Greek_alpha, 0x1F86, --IBUS_KEY_Greek_iota, IBUS_KEY_dead_tilde, IBUS_KEY_parenright, IBUS_KEY_Greek_eta, 0x1F96, --IBUS_KEY_Greek_iota, IBUS_KEY_dead_tilde, IBUS_KEY_parenright, IBUS_KEY_Greek_omega, 0x1FA6, --IBUS_KEY_Greek_iota, IBUS_KEY_dead_tilde, IBUS_KEY_dead_psili, IBUS_KEY_Greek_ALPHA, 0x1F8E, --IBUS_KEY_Greek_iota, IBUS_KEY_dead_tilde, IBUS_KEY_dead_psili, IBUS_KEY_Greek_ETA, 0x1F9E, --IBUS_KEY_Greek_iota, IBUS_KEY_dead_tilde, IBUS_KEY_dead_psili, IBUS_KEY_Greek_OMEGA, 0x1FAE, --IBUS_KEY_Greek_iota, IBUS_KEY_dead_tilde, IBUS_KEY_dead_psili, IBUS_KEY_Greek_alpha, 0x1F86, --IBUS_KEY_Greek_iota, IBUS_KEY_dead_tilde, IBUS_KEY_dead_psili, IBUS_KEY_Greek_eta, 0x1F96, --IBUS_KEY_Greek_iota, IBUS_KEY_dead_tilde, IBUS_KEY_dead_psili, IBUS_KEY_Greek_omega, 0x1FA6, --IBUS_KEY_Greek_iota, IBUS_KEY_dead_tilde, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_ALPHA, 0x1F8F, --IBUS_KEY_Greek_iota, IBUS_KEY_dead_tilde, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_ETA, 0x1F9F, --IBUS_KEY_Greek_iota, IBUS_KEY_dead_tilde, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_OMEGA, 0x1FAF, --IBUS_KEY_Greek_iota, IBUS_KEY_dead_tilde, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_alpha, 0x1F87, --IBUS_KEY_Greek_iota, IBUS_KEY_dead_tilde, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_eta, 0x1F97, -+IBUS_KEY_Multi_key, 3952, 3952, 10495, 14203, 16083, -+IBUS_KEY_Greek_iota, 0x0390, -+IBUS_KEY_Greek_upsilon, 0x03B0, -+IBUS_KEY_space, 0x0060, -+IBUS_KEY_V, 0x01DB, -+IBUS_KEY_v, 0x01DC, -+IBUS_KEY_nobreakspace, 0x0300, -+IBUS_KEY_Abreve, 0x1EB0, -+IBUS_KEY_abreve, 0x1EB1, -+IBUS_KEY_Emacron, 0x1E14, -+IBUS_KEY_emacron, 0x1E15, -+IBUS_KEY_Omacron, 0x1E50, -+IBUS_KEY_omacron, 0x1E51, -+IBUS_KEY_Cyrillic_ie, 0x0450, -+IBUS_KEY_Cyrillic_i, 0x045D, -+IBUS_KEY_Cyrillic_IE, 0x0400, -+IBUS_KEY_Cyrillic_I, 0x040D, -+IBUS_KEY_Greek_iotadieresis, 0x1FD2, -+IBUS_KEY_Greek_upsilondieresis, 0x1FE2, -+IBUS_KEY_Greek_ALPHA, 0x1FBA, -+IBUS_KEY_Greek_EPSILON, 0x1FC8, -+IBUS_KEY_Greek_ETA, 0x1FCA, -+IBUS_KEY_Greek_IOTA, 0x1FDA, -+IBUS_KEY_Greek_OMICRON, 0x1FF8, -+IBUS_KEY_Greek_UPSILON, 0x1FEA, -+IBUS_KEY_Greek_OMEGA, 0x1FFA, -+IBUS_KEY_Greek_alpha, 0x1F70, -+IBUS_KEY_Greek_epsilon, 0x1F72, -+IBUS_KEY_Greek_eta, 0x1F74, -+IBUS_KEY_Greek_iota, 0x1F76, -+IBUS_KEY_Greek_omicron, 0x1F78, -+IBUS_KEY_Greek_upsilon, 0x1F7A, -+IBUS_KEY_Greek_omega, 0x1F7C, -+IBUS_KEY_dead_grave, 0x0060, -+IBUS_KEY_dead_diaeresis, IBUS_KEY_Greek_iota, 0x1FD2, -+IBUS_KEY_dead_diaeresis, IBUS_KEY_Greek_upsilon, 0x1FE2, -+IBUS_KEY_dead_psili, IBUS_KEY_Greek_ALPHA, 0x1F0A, -+IBUS_KEY_dead_psili, IBUS_KEY_Greek_EPSILON, 0x1F1A, -+IBUS_KEY_dead_psili, IBUS_KEY_Greek_ETA, 0x1F2A, -+IBUS_KEY_dead_psili, IBUS_KEY_Greek_IOTA, 0x1F3A, -+IBUS_KEY_dead_psili, IBUS_KEY_Greek_OMICRON, 0x1F4A, -+IBUS_KEY_dead_psili, IBUS_KEY_Greek_OMEGA, 0x1F6A, -+IBUS_KEY_dead_psili, IBUS_KEY_Greek_alpha, 0x1F02, -+IBUS_KEY_dead_psili, IBUS_KEY_Greek_epsilon, 0x1F12, -+IBUS_KEY_dead_psili, IBUS_KEY_Greek_eta, 0x1F22, -+IBUS_KEY_dead_psili, IBUS_KEY_Greek_iota, 0x1F32, -+IBUS_KEY_dead_psili, IBUS_KEY_Greek_omicron, 0x1F42, -+IBUS_KEY_dead_psili, IBUS_KEY_Greek_upsilon, 0x1F52, -+IBUS_KEY_dead_psili, IBUS_KEY_Greek_omega, 0x1F62, -+IBUS_KEY_dead_dasia, IBUS_KEY_Greek_ALPHA, 0x1F0B, -+IBUS_KEY_dead_dasia, IBUS_KEY_Greek_EPSILON, 0x1F1B, -+IBUS_KEY_dead_dasia, IBUS_KEY_Greek_ETA, 0x1F2B, -+IBUS_KEY_dead_dasia, IBUS_KEY_Greek_IOTA, 0x1F3B, -+IBUS_KEY_dead_dasia, IBUS_KEY_Greek_OMICRON, 0x1F4B, -+IBUS_KEY_dead_dasia, IBUS_KEY_Greek_UPSILON, 0x1F5B, -+IBUS_KEY_dead_dasia, IBUS_KEY_Greek_OMEGA, 0x1F6B, -+IBUS_KEY_dead_dasia, IBUS_KEY_Greek_alpha, 0x1F03, -+IBUS_KEY_dead_dasia, IBUS_KEY_Greek_epsilon, 0x1F13, -+IBUS_KEY_dead_dasia, IBUS_KEY_Greek_eta, 0x1F23, -+IBUS_KEY_dead_dasia, IBUS_KEY_Greek_iota, 0x1F33, -+IBUS_KEY_dead_dasia, IBUS_KEY_Greek_omicron, 0x1F43, -+IBUS_KEY_dead_dasia, IBUS_KEY_Greek_upsilon, 0x1F53, -+IBUS_KEY_dead_dasia, IBUS_KEY_Greek_omega, 0x1F63, -+IBUS_KEY_Multi_key, IBUS_KEY_quotedbl, IBUS_KEY_U, 0x01DB, -+IBUS_KEY_Multi_key, IBUS_KEY_quotedbl, IBUS_KEY_u, 0x01DC, -+IBUS_KEY_Multi_key, IBUS_KEY_quotedbl, IBUS_KEY_Greek_iota, 0x1FD2, -+IBUS_KEY_Multi_key, IBUS_KEY_quotedbl, IBUS_KEY_Greek_upsilon, 0x1FE2, -+IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_ALPHA, 0x1F0B, -+IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_EPSILON, 0x1F1B, -+IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_ETA, 0x1F2B, -+IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_IOTA, 0x1F3B, -+IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_OMICRON, 0x1F4B, -+IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_UPSILON, 0x1F5B, -+IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_OMEGA, 0x1F6B, -+IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_alpha, 0x1F03, -+IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_epsilon, 0x1F13, -+IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_eta, 0x1F23, -+IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_iota, 0x1F33, -+IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_omicron, 0x1F43, -+IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_upsilon, 0x1F53, -+IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_omega, 0x1F63, -+IBUS_KEY_Multi_key, IBUS_KEY_parenright, IBUS_KEY_Greek_ALPHA, 0x1F0A, -+IBUS_KEY_Multi_key, IBUS_KEY_parenright, IBUS_KEY_Greek_EPSILON, 0x1F1A, -+IBUS_KEY_Multi_key, IBUS_KEY_parenright, IBUS_KEY_Greek_ETA, 0x1F2A, -+IBUS_KEY_Multi_key, IBUS_KEY_parenright, IBUS_KEY_Greek_IOTA, 0x1F3A, -+IBUS_KEY_Multi_key, IBUS_KEY_parenright, IBUS_KEY_Greek_OMICRON, 0x1F4A, -+IBUS_KEY_Multi_key, IBUS_KEY_parenright, IBUS_KEY_Greek_OMEGA, 0x1F6A, -+IBUS_KEY_Multi_key, IBUS_KEY_parenright, IBUS_KEY_Greek_alpha, 0x1F02, -+IBUS_KEY_Multi_key, IBUS_KEY_parenright, IBUS_KEY_Greek_epsilon, 0x1F12, -+IBUS_KEY_Multi_key, IBUS_KEY_parenright, IBUS_KEY_Greek_eta, 0x1F22, -+IBUS_KEY_Multi_key, IBUS_KEY_parenright, IBUS_KEY_Greek_iota, 0x1F32, -+IBUS_KEY_Multi_key, IBUS_KEY_parenright, IBUS_KEY_Greek_omicron, 0x1F42, -+IBUS_KEY_Multi_key, IBUS_KEY_parenright, IBUS_KEY_Greek_upsilon, 0x1F52, -+IBUS_KEY_Multi_key, IBUS_KEY_parenright, IBUS_KEY_Greek_omega, 0x1F62, -+IBUS_KEY_Multi_key, IBUS_KEY_plus, IBUS_KEY_O, 0x1EDC, -+IBUS_KEY_Multi_key, IBUS_KEY_plus, IBUS_KEY_U, 0x1EEA, -+IBUS_KEY_Multi_key, IBUS_KEY_plus, IBUS_KEY_o, 0x1EDD, -+IBUS_KEY_Multi_key, IBUS_KEY_plus, IBUS_KEY_u, 0x1EEB, -+IBUS_KEY_Multi_key, IBUS_KEY_U, IBUS_KEY_A, 0x1EB0, -+IBUS_KEY_Multi_key, IBUS_KEY_U, IBUS_KEY_a, 0x1EB1, -+IBUS_KEY_Multi_key, IBUS_KEY_asciicircum, IBUS_KEY_A, 0x1EA6, -+IBUS_KEY_Multi_key, IBUS_KEY_asciicircum, IBUS_KEY_E, 0x1EC0, -+IBUS_KEY_Multi_key, IBUS_KEY_asciicircum, IBUS_KEY_O, 0x1ED2, -+IBUS_KEY_Multi_key, IBUS_KEY_asciicircum, IBUS_KEY_a, 0x1EA7, -+IBUS_KEY_Multi_key, IBUS_KEY_asciicircum, IBUS_KEY_e, 0x1EC1, -+IBUS_KEY_Multi_key, IBUS_KEY_asciicircum, IBUS_KEY_o, 0x1ED3, -+IBUS_KEY_Multi_key, IBUS_KEY_underscore, IBUS_KEY_E, 0x1E14, -+IBUS_KEY_Multi_key, IBUS_KEY_underscore, IBUS_KEY_O, 0x1E50, -+IBUS_KEY_Multi_key, IBUS_KEY_underscore, IBUS_KEY_e, 0x1E15, -+IBUS_KEY_Multi_key, IBUS_KEY_underscore, IBUS_KEY_o, 0x1E51, -+IBUS_KEY_Multi_key, IBUS_KEY_b, IBUS_KEY_A, 0x1EB0, -+IBUS_KEY_Multi_key, IBUS_KEY_b, IBUS_KEY_a, 0x1EB1, -+IBUS_KEY_Multi_key, IBUS_KEY_macron, IBUS_KEY_E, 0x1E14, -+IBUS_KEY_Multi_key, IBUS_KEY_macron, IBUS_KEY_O, 0x1E50, -+IBUS_KEY_Multi_key, IBUS_KEY_macron, IBUS_KEY_e, 0x1E15, -+IBUS_KEY_Multi_key, IBUS_KEY_macron, IBUS_KEY_o, 0x1E51, -+IBUS_KEY_space, 0x0027, -+IBUS_KEY_V, 0x01D7, -+IBUS_KEY_v, 0x01D8, -+IBUS_KEY_nobreakspace, 0x0301, -+IBUS_KEY_Abreve, 0x1EAE, -+IBUS_KEY_abreve, 0x1EAF, -+IBUS_KEY_Emacron, 0x1E16, -+IBUS_KEY_emacron, 0x1E17, -+IBUS_KEY_Utilde, 0x1E78, -+IBUS_KEY_omacron, 0x1E53, -+IBUS_KEY_utilde, 0x1E79, -+IBUS_KEY_Cyrillic_ghe, 0x0453, -+IBUS_KEY_Cyrillic_ka, 0x045C, -+IBUS_KEY_Cyrillic_GHE, 0x0403, -+IBUS_KEY_Cyrillic_KA, 0x040C, -+IBUS_KEY_Greek_iotadieresis, 0x0390, -+IBUS_KEY_Greek_upsilondieresis, 0x03B0, -+IBUS_KEY_Greek_ALPHA, 0x0386, -+IBUS_KEY_Greek_EPSILON, 0x0388, -+IBUS_KEY_Greek_ETA, 0x0389, -+IBUS_KEY_Greek_IOTA, 0x038A, -+IBUS_KEY_Greek_OMICRON, 0x038C, -+IBUS_KEY_Greek_UPSILON, 0x038E, -+IBUS_KEY_Greek_OMEGA, 0x038F, -+IBUS_KEY_Greek_alpha, 0x03AC, -+IBUS_KEY_Greek_epsilon, 0x03AD, -+IBUS_KEY_Greek_eta, 0x03AE, -+IBUS_KEY_Greek_iota, 0x03AF, -+IBUS_KEY_Greek_omicron, 0x03CC, -+IBUS_KEY_Greek_upsilon, 0x03CD, -+IBUS_KEY_Greek_omega, 0x03CE, -+IBUS_KEY_dead_acute, 0x00B4, -+IBUS_KEY_dead_diaeresis, IBUS_KEY_space, 0x0385, -+IBUS_KEY_dead_diaeresis, IBUS_KEY_Greek_iota, 0x0390, -+IBUS_KEY_dead_diaeresis, IBUS_KEY_Greek_upsilon, 0x03B0, -+IBUS_KEY_dead_stroke, IBUS_KEY_O, 0x01FE, -+IBUS_KEY_dead_stroke, IBUS_KEY_o, 0x01FF, -+IBUS_KEY_dead_psili, IBUS_KEY_Greek_ALPHA, 0x1F0C, -+IBUS_KEY_dead_psili, IBUS_KEY_Greek_EPSILON, 0x1F1C, -+IBUS_KEY_dead_psili, IBUS_KEY_Greek_ETA, 0x1F2C, -+IBUS_KEY_dead_psili, IBUS_KEY_Greek_IOTA, 0x1F3C, -+IBUS_KEY_dead_psili, IBUS_KEY_Greek_OMICRON, 0x1F4C, -+IBUS_KEY_dead_psili, IBUS_KEY_Greek_OMEGA, 0x1F6C, -+IBUS_KEY_dead_psili, IBUS_KEY_Greek_alpha, 0x1F04, -+IBUS_KEY_dead_psili, IBUS_KEY_Greek_epsilon, 0x1F14, -+IBUS_KEY_dead_psili, IBUS_KEY_Greek_eta, 0x1F24, -+IBUS_KEY_dead_psili, IBUS_KEY_Greek_iota, 0x1F34, -+IBUS_KEY_dead_psili, IBUS_KEY_Greek_omicron, 0x1F44, -+IBUS_KEY_dead_psili, IBUS_KEY_Greek_upsilon, 0x1F54, -+IBUS_KEY_dead_psili, IBUS_KEY_Greek_omega, 0x1F64, -+IBUS_KEY_dead_dasia, IBUS_KEY_Greek_ALPHA, 0x1F0D, -+IBUS_KEY_dead_dasia, IBUS_KEY_Greek_EPSILON, 0x1F1D, -+IBUS_KEY_dead_dasia, IBUS_KEY_Greek_ETA, 0x1F2D, -+IBUS_KEY_dead_dasia, IBUS_KEY_Greek_IOTA, 0x1F3D, -+IBUS_KEY_dead_dasia, IBUS_KEY_Greek_OMICRON, 0x1F4D, -+IBUS_KEY_dead_dasia, IBUS_KEY_Greek_UPSILON, 0x1F5D, -+IBUS_KEY_dead_dasia, IBUS_KEY_Greek_OMEGA, 0x1F6D, -+IBUS_KEY_dead_dasia, IBUS_KEY_Greek_alpha, 0x1F05, -+IBUS_KEY_dead_dasia, IBUS_KEY_Greek_epsilon, 0x1F15, -+IBUS_KEY_dead_dasia, IBUS_KEY_Greek_eta, 0x1F25, -+IBUS_KEY_dead_dasia, IBUS_KEY_Greek_iota, 0x1F35, -+IBUS_KEY_dead_dasia, IBUS_KEY_Greek_omicron, 0x1F45, -+IBUS_KEY_dead_dasia, IBUS_KEY_Greek_upsilon, 0x1F55, -+IBUS_KEY_dead_dasia, IBUS_KEY_Greek_omega, 0x1F65, -+IBUS_KEY_Multi_key, IBUS_KEY_quotedbl, IBUS_KEY_I, 0x1E2E, -+IBUS_KEY_Multi_key, IBUS_KEY_quotedbl, IBUS_KEY_U, 0x01D7, -+IBUS_KEY_Multi_key, IBUS_KEY_quotedbl, IBUS_KEY_i, 0x1E2F, -+IBUS_KEY_Multi_key, IBUS_KEY_quotedbl, IBUS_KEY_u, 0x01D8, -+IBUS_KEY_Multi_key, IBUS_KEY_quotedbl, IBUS_KEY_Greek_iota, 0x0390, -+IBUS_KEY_Multi_key, IBUS_KEY_quotedbl, IBUS_KEY_Greek_upsilon, 0x03B0, -+IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_ALPHA, 0x1F0D, -+IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_EPSILON, 0x1F1D, -+IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_ETA, 0x1F2D, -+IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_IOTA, 0x1F3D, -+IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_OMICRON, 0x1F4D, -+IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_UPSILON, 0x1F5D, -+IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_OMEGA, 0x1F6D, -+IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_alpha, 0x1F05, -+IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_epsilon, 0x1F15, -+IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_eta, 0x1F25, -+IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_iota, 0x1F35, -+IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_omicron, 0x1F45, -+IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_upsilon, 0x1F55, -+IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_omega, 0x1F65, -+IBUS_KEY_Multi_key, IBUS_KEY_parenright, IBUS_KEY_Greek_ALPHA, 0x1F0C, -+IBUS_KEY_Multi_key, IBUS_KEY_parenright, IBUS_KEY_Greek_EPSILON, 0x1F1C, -+IBUS_KEY_Multi_key, IBUS_KEY_parenright, IBUS_KEY_Greek_ETA, 0x1F2C, -+IBUS_KEY_Multi_key, IBUS_KEY_parenright, IBUS_KEY_Greek_IOTA, 0x1F3C, -+IBUS_KEY_Multi_key, IBUS_KEY_parenright, IBUS_KEY_Greek_OMICRON, 0x1F4C, -+IBUS_KEY_Multi_key, IBUS_KEY_parenright, IBUS_KEY_Greek_OMEGA, 0x1F6C, -+IBUS_KEY_Multi_key, IBUS_KEY_parenright, IBUS_KEY_Greek_alpha, 0x1F04, -+IBUS_KEY_Multi_key, IBUS_KEY_parenright, IBUS_KEY_Greek_epsilon, 0x1F14, -+IBUS_KEY_Multi_key, IBUS_KEY_parenright, IBUS_KEY_Greek_eta, 0x1F24, -+IBUS_KEY_Multi_key, IBUS_KEY_parenright, IBUS_KEY_Greek_iota, 0x1F34, -+IBUS_KEY_Multi_key, IBUS_KEY_parenright, IBUS_KEY_Greek_omicron, 0x1F44, -+IBUS_KEY_Multi_key, IBUS_KEY_parenright, IBUS_KEY_Greek_upsilon, 0x1F54, -+IBUS_KEY_Multi_key, IBUS_KEY_parenright, IBUS_KEY_Greek_omega, 0x1F64, -+IBUS_KEY_Multi_key, IBUS_KEY_plus, IBUS_KEY_O, 0x1EDA, -+IBUS_KEY_Multi_key, IBUS_KEY_plus, IBUS_KEY_U, 0x1EE8, -+IBUS_KEY_Multi_key, IBUS_KEY_plus, IBUS_KEY_o, 0x1EDB, -+IBUS_KEY_Multi_key, IBUS_KEY_plus, IBUS_KEY_u, 0x1EE9, -+IBUS_KEY_Multi_key, IBUS_KEY_comma, IBUS_KEY_C, 0x1E08, -+IBUS_KEY_Multi_key, IBUS_KEY_comma, IBUS_KEY_c, 0x1E09, -+IBUS_KEY_Multi_key, IBUS_KEY_slash, IBUS_KEY_O, 0x01FE, -+IBUS_KEY_Multi_key, IBUS_KEY_slash, IBUS_KEY_o, 0x01FF, -+IBUS_KEY_Multi_key, IBUS_KEY_U, IBUS_KEY_A, 0x1EAE, -+IBUS_KEY_Multi_key, IBUS_KEY_U, IBUS_KEY_a, 0x1EAF, -+IBUS_KEY_Multi_key, IBUS_KEY_asciicircum, IBUS_KEY_A, 0x1EA4, -+IBUS_KEY_Multi_key, IBUS_KEY_asciicircum, IBUS_KEY_E, 0x1EBE, -+IBUS_KEY_Multi_key, IBUS_KEY_asciicircum, IBUS_KEY_O, 0x1ED0, -+IBUS_KEY_Multi_key, IBUS_KEY_asciicircum, IBUS_KEY_a, 0x1EA5, -+IBUS_KEY_Multi_key, IBUS_KEY_asciicircum, IBUS_KEY_e, 0x1EBF, -+IBUS_KEY_Multi_key, IBUS_KEY_asciicircum, IBUS_KEY_o, 0x1ED1, -+IBUS_KEY_Multi_key, IBUS_KEY_underscore, IBUS_KEY_E, 0x1E16, -+IBUS_KEY_Multi_key, IBUS_KEY_underscore, IBUS_KEY_O, 0x1E52, -+IBUS_KEY_Multi_key, IBUS_KEY_underscore, IBUS_KEY_e, 0x1E17, -+IBUS_KEY_Multi_key, IBUS_KEY_underscore, IBUS_KEY_o, 0x1E53, -+IBUS_KEY_Multi_key, IBUS_KEY_b, IBUS_KEY_A, 0x1EAE, -+IBUS_KEY_Multi_key, IBUS_KEY_b, IBUS_KEY_a, 0x1EAF, -+IBUS_KEY_Multi_key, IBUS_KEY_o, IBUS_KEY_A, 0x01FA, -+IBUS_KEY_Multi_key, IBUS_KEY_o, IBUS_KEY_a, 0x01FB, -+IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, IBUS_KEY_O, 0x1E4C, -+IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, IBUS_KEY_U, 0x1E78, -+IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, IBUS_KEY_o, 0x1E4D, -+IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, IBUS_KEY_u, 0x1E79, -+IBUS_KEY_Multi_key, IBUS_KEY_macron, IBUS_KEY_E, 0x1E16, -+IBUS_KEY_Multi_key, IBUS_KEY_macron, IBUS_KEY_O, 0x1E52, -+IBUS_KEY_Multi_key, IBUS_KEY_macron, IBUS_KEY_e, 0x1E17, -+IBUS_KEY_Multi_key, IBUS_KEY_macron, IBUS_KEY_o, 0x1E53, -+IBUS_KEY_Multi_key, IBUS_KEY_cedilla, IBUS_KEY_C, 0x1E08, -+IBUS_KEY_Multi_key, IBUS_KEY_cedilla, IBUS_KEY_c, 0x1E09, -+IBUS_KEY_Multi_key, IBUS_KEY_KP_Divide, IBUS_KEY_O, 0x01FE, -+IBUS_KEY_Multi_key, IBUS_KEY_KP_Divide, IBUS_KEY_o, 0x01FF, -+IBUS_KEY_space, 0x005E, -+IBUS_KEY_parenleft, 0x207D, -+IBUS_KEY_parenright, 0x207E, -+IBUS_KEY_plus, 0x207A, -+IBUS_KEY_minus, 0x207B, -+IBUS_KEY_0, 0x2070, -+IBUS_KEY_1, 0x00B9, -+IBUS_KEY_2, 0x00B2, -+IBUS_KEY_3, 0x00B3, -+IBUS_KEY_4, 0x2074, -+IBUS_KEY_5, 0x2075, -+IBUS_KEY_6, 0x2076, -+IBUS_KEY_7, 0x2077, -+IBUS_KEY_8, 0x2078, -+IBUS_KEY_9, 0x2079, -+IBUS_KEY_equal, 0x207C, -+IBUS_KEY_nobreakspace, 0x0302, -+IBUS_KEY_Agrave, 0x1EA6, -+IBUS_KEY_Aacute, 0x1EA4, -+IBUS_KEY_Atilde, 0x1EAA, -+IBUS_KEY_Egrave, 0x1EC0, -+IBUS_KEY_Eacute, 0x1EBE, -+IBUS_KEY_Ograve, 0x1ED2, -+IBUS_KEY_Oacute, 0x1ED0, -+IBUS_KEY_Otilde, 0x1ED6, -+IBUS_KEY_agrave, 0x1EA7, -+IBUS_KEY_aacute, 0x1EA5, -+IBUS_KEY_atilde, 0x1EAB, -+IBUS_KEY_egrave, 0x1EC1, -+IBUS_KEY_eacute, 0x1EBF, -+IBUS_KEY_ograve, 0x1ED3, -+IBUS_KEY_oacute, 0x1ED1, -+IBUS_KEY_otilde, 0x1ED7, -+0x2212, 0x207B, -+0x4E00, 0x3192, -+0x4E01, 0x319C, -+0x4E09, 0x3194, -+0x4E0A, 0x3196, -+0x4E0B, 0x3198, -+0x4E19, 0x319B, -+0x4E2D, 0x3197, -+0x4E59, 0x319A, -+0x4E8C, 0x3193, -+0x4EBA, 0x319F, -+0x56DB, 0x3195, -+0x5730, 0x319E, -+0x5929, 0x319D, -+0x7532, 0x3199, -+IBUS_KEY_dead_circumflex, 0x005E, -+IBUS_KEY_KP_Space, 0x00B2, -+IBUS_KEY_KP_Add, 0x207A, -+IBUS_KEY_KP_0, 0x2070, -+IBUS_KEY_KP_1, 0x00B9, -+IBUS_KEY_KP_2, 0x00B2, -+IBUS_KEY_KP_3, 0x00B3, -+IBUS_KEY_KP_4, 0x2074, -+IBUS_KEY_KP_5, 0x2075, -+IBUS_KEY_KP_6, 0x2076, -+IBUS_KEY_KP_7, 0x2077, -+IBUS_KEY_KP_8, 0x2078, -+IBUS_KEY_KP_9, 0x2079, -+IBUS_KEY_KP_Equal, 0x207C, -+IBUS_KEY_Multi_key, IBUS_KEY_exclam, IBUS_KEY_A, 0x1EAC, -+IBUS_KEY_Multi_key, IBUS_KEY_exclam, IBUS_KEY_E, 0x1EC6, -+IBUS_KEY_Multi_key, IBUS_KEY_exclam, IBUS_KEY_O, 0x1ED8, -+IBUS_KEY_Multi_key, IBUS_KEY_exclam, IBUS_KEY_a, 0x1EAD, -+IBUS_KEY_Multi_key, IBUS_KEY_exclam, IBUS_KEY_e, 0x1EC7, -+IBUS_KEY_Multi_key, IBUS_KEY_exclam, IBUS_KEY_o, 0x1ED9, -+IBUS_KEY_Multi_key, IBUS_KEY_S, IBUS_KEY_M, 0x2120, -+IBUS_KEY_Multi_key, IBUS_KEY_S, IBUS_KEY_m, 0x2120, -+IBUS_KEY_Multi_key, IBUS_KEY_T, IBUS_KEY_M, 0x2122, -+IBUS_KEY_Multi_key, IBUS_KEY_T, IBUS_KEY_m, 0x2122, -+IBUS_KEY_Multi_key, IBUS_KEY_underscore, IBUS_KEY_a, 0x00AA, -+IBUS_KEY_Multi_key, IBUS_KEY_underscore, IBUS_KEY_h, 0x02B0, -+IBUS_KEY_Multi_key, IBUS_KEY_underscore, IBUS_KEY_i, 0x2071, -+IBUS_KEY_Multi_key, IBUS_KEY_underscore, IBUS_KEY_j, 0x02B2, -+IBUS_KEY_Multi_key, IBUS_KEY_underscore, IBUS_KEY_l, 0x02E1, -+IBUS_KEY_Multi_key, IBUS_KEY_underscore, IBUS_KEY_n, 0x207F, -+IBUS_KEY_Multi_key, IBUS_KEY_underscore, IBUS_KEY_o, 0x00BA, -+IBUS_KEY_Multi_key, IBUS_KEY_underscore, IBUS_KEY_r, 0x02B3, -+IBUS_KEY_Multi_key, IBUS_KEY_underscore, IBUS_KEY_s, 0x02E2, -+IBUS_KEY_Multi_key, IBUS_KEY_underscore, IBUS_KEY_w, 0x02B7, -+IBUS_KEY_Multi_key, IBUS_KEY_underscore, IBUS_KEY_x, 0x02E3, -+IBUS_KEY_Multi_key, IBUS_KEY_underscore, IBUS_KEY_y, 0x02B8, -+IBUS_KEY_Multi_key, IBUS_KEY_underscore, 0x0263, 0x02E0, -+IBUS_KEY_Multi_key, IBUS_KEY_underscore, 0x0266, 0x02B1, -+IBUS_KEY_Multi_key, IBUS_KEY_underscore, 0x0279, 0x02B4, -+IBUS_KEY_Multi_key, IBUS_KEY_underscore, 0x027B, 0x02B5, -+IBUS_KEY_Multi_key, IBUS_KEY_underscore, 0x0281, 0x02B6, -+IBUS_KEY_Multi_key, IBUS_KEY_underscore, 0x0295, 0x02E4, -+IBUS_KEY_Multi_key, IBUS_KEY_s, IBUS_KEY_M, 0x2120, -+IBUS_KEY_Multi_key, IBUS_KEY_s, IBUS_KEY_m, 0x2120, -+IBUS_KEY_Multi_key, IBUS_KEY_t, IBUS_KEY_M, 0x2122, -+IBUS_KEY_Multi_key, IBUS_KEY_t, IBUS_KEY_m, 0x2122, -+IBUS_KEY_Multi_key, IBUS_KEY_underbar, IBUS_KEY_a, 0x00AA, -+IBUS_KEY_Multi_key, IBUS_KEY_underbar, IBUS_KEY_h, 0x02B0, -+IBUS_KEY_Multi_key, IBUS_KEY_underbar, IBUS_KEY_i, 0x2071, -+IBUS_KEY_Multi_key, IBUS_KEY_underbar, IBUS_KEY_j, 0x02B2, -+IBUS_KEY_Multi_key, IBUS_KEY_underbar, IBUS_KEY_l, 0x02E1, -+IBUS_KEY_Multi_key, IBUS_KEY_underbar, IBUS_KEY_n, 0x207F, -+IBUS_KEY_Multi_key, IBUS_KEY_underbar, IBUS_KEY_o, 0x00BA, -+IBUS_KEY_Multi_key, IBUS_KEY_underbar, IBUS_KEY_r, 0x02B3, -+IBUS_KEY_Multi_key, IBUS_KEY_underbar, IBUS_KEY_s, 0x02E2, -+IBUS_KEY_Multi_key, IBUS_KEY_underbar, IBUS_KEY_w, 0x02B7, -+IBUS_KEY_Multi_key, IBUS_KEY_underbar, IBUS_KEY_x, 0x02E3, -+IBUS_KEY_Multi_key, IBUS_KEY_underbar, IBUS_KEY_y, 0x02B8, -+IBUS_KEY_Multi_key, IBUS_KEY_underbar, 0x0263, 0x02E0, -+IBUS_KEY_Multi_key, IBUS_KEY_underbar, 0x0266, 0x02B1, -+IBUS_KEY_Multi_key, IBUS_KEY_underbar, 0x0279, 0x02B4, -+IBUS_KEY_Multi_key, IBUS_KEY_underbar, 0x027B, 0x02B5, -+IBUS_KEY_Multi_key, IBUS_KEY_underbar, 0x0281, 0x02B6, -+IBUS_KEY_Multi_key, IBUS_KEY_underbar, 0x0295, 0x02E4, -+IBUS_KEY_space, 0x007E, -+IBUS_KEY_less, 0x2272, -+IBUS_KEY_equal, 0x2243, -+IBUS_KEY_greater, 0x2273, -+IBUS_KEY_nobreakspace, 0x0303, -+IBUS_KEY_Oacute, 0x1E4C, -+IBUS_KEY_Odiaeresis, 0x1E4E, -+IBUS_KEY_Uacute, 0x1E78, -+IBUS_KEY_oacute, 0x1E4D, -+IBUS_KEY_odiaeresis, 0x1E4F, -+IBUS_KEY_uacute, 0x1E79, -+IBUS_KEY_Abreve, 0x1EB4, -+IBUS_KEY_abreve, 0x1EB5, -+IBUS_KEY_Omacron, 0x022C, -+IBUS_KEY_omacron, 0x022D, -+IBUS_KEY_Greek_iotadieresis, 0x1FD7, -+IBUS_KEY_Greek_upsilondieresis, 0x1FE7, -+IBUS_KEY_Greek_alpha, 0x1FB6, -+IBUS_KEY_Greek_eta, 0x1FC6, -+IBUS_KEY_Greek_iota, 0x1FD6, -+IBUS_KEY_Greek_upsilon, 0x1FE6, -+IBUS_KEY_Greek_omega, 0x1FF6, -+0x1F00, 0x1F06, -+0x1F01, 0x1F07, -+0x1F08, 0x1F0E, -+0x1F09, 0x1F0F, -+0x1F20, 0x1F26, -+0x1F21, 0x1F27, -+0x1F28, 0x1F2E, -+0x1F29, 0x1F2F, -+0x1F30, 0x1F36, -+0x1F31, 0x1F37, -+0x1F38, 0x1F3E, -+0x1F39, 0x1F3F, -+0x1F50, 0x1F56, -+0x1F51, 0x1F57, -+0x1F59, 0x1F5F, -+0x1F60, 0x1F66, -+0x1F61, 0x1F67, -+0x1F68, 0x1F6E, -+0x1F69, 0x1F6F, -+IBUS_KEY_dead_tilde, 0x007E, -+IBUS_KEY_dead_diaeresis, IBUS_KEY_Greek_iota, 0x1FD7, -+IBUS_KEY_dead_diaeresis, IBUS_KEY_Greek_upsilon, 0x1FE7, -+IBUS_KEY_dead_psili, IBUS_KEY_Greek_ALPHA, 0x1F0E, -+IBUS_KEY_dead_psili, IBUS_KEY_Greek_ETA, 0x1F2E, -+IBUS_KEY_dead_psili, IBUS_KEY_Greek_IOTA, 0x1F3E, -+IBUS_KEY_dead_psili, IBUS_KEY_Greek_OMEGA, 0x1F6E, -+IBUS_KEY_dead_psili, IBUS_KEY_Greek_alpha, 0x1F06, -+IBUS_KEY_dead_psili, IBUS_KEY_Greek_eta, 0x1F26, -+IBUS_KEY_dead_psili, IBUS_KEY_Greek_iota, 0x1F36, -+IBUS_KEY_dead_psili, IBUS_KEY_Greek_upsilon, 0x1F56, -+IBUS_KEY_dead_psili, IBUS_KEY_Greek_omega, 0x1F66, -+IBUS_KEY_dead_dasia, IBUS_KEY_Greek_ALPHA, 0x1F0F, -+IBUS_KEY_dead_dasia, IBUS_KEY_Greek_ETA, 0x1F2F, -+IBUS_KEY_dead_dasia, IBUS_KEY_Greek_IOTA, 0x1F3F, -+IBUS_KEY_dead_dasia, IBUS_KEY_Greek_UPSILON, 0x1F5F, -+IBUS_KEY_dead_dasia, IBUS_KEY_Greek_OMEGA, 0x1F6F, -+IBUS_KEY_dead_dasia, IBUS_KEY_Greek_alpha, 0x1F07, -+IBUS_KEY_dead_dasia, IBUS_KEY_Greek_eta, 0x1F27, -+IBUS_KEY_dead_dasia, IBUS_KEY_Greek_iota, 0x1F37, -+IBUS_KEY_dead_dasia, IBUS_KEY_Greek_upsilon, 0x1F57, -+IBUS_KEY_dead_dasia, IBUS_KEY_Greek_omega, 0x1F67, -+IBUS_KEY_Multi_key, IBUS_KEY_quotedbl, IBUS_KEY_Greek_iota, 0x1FD7, -+IBUS_KEY_Multi_key, IBUS_KEY_quotedbl, IBUS_KEY_Greek_upsilon, 0x1FE7, -+IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_ALPHA, 0x1F0F, -+IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_ETA, 0x1F2F, -+IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_IOTA, 0x1F3F, -+IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_UPSILON, 0x1F5F, -+IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_OMEGA, 0x1F6F, -+IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_alpha, 0x1F07, -+IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_eta, 0x1F27, -+IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_iota, 0x1F37, -+IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_upsilon, 0x1F57, -+IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_omega, 0x1F67, -+IBUS_KEY_Multi_key, IBUS_KEY_parenright, IBUS_KEY_Greek_ALPHA, 0x1F0E, -+IBUS_KEY_Multi_key, IBUS_KEY_parenright, IBUS_KEY_Greek_ETA, 0x1F2E, -+IBUS_KEY_Multi_key, IBUS_KEY_parenright, IBUS_KEY_Greek_IOTA, 0x1F3E, -+IBUS_KEY_Multi_key, IBUS_KEY_parenright, IBUS_KEY_Greek_OMEGA, 0x1F6E, -+IBUS_KEY_Multi_key, IBUS_KEY_parenright, IBUS_KEY_Greek_alpha, 0x1F06, -+IBUS_KEY_Multi_key, IBUS_KEY_parenright, IBUS_KEY_Greek_eta, 0x1F26, -+IBUS_KEY_Multi_key, IBUS_KEY_parenright, IBUS_KEY_Greek_iota, 0x1F36, -+IBUS_KEY_Multi_key, IBUS_KEY_parenright, IBUS_KEY_Greek_upsilon, 0x1F56, -+IBUS_KEY_Multi_key, IBUS_KEY_parenright, IBUS_KEY_Greek_omega, 0x1F66, -+IBUS_KEY_Multi_key, IBUS_KEY_plus, IBUS_KEY_O, 0x1EE0, -+IBUS_KEY_Multi_key, IBUS_KEY_plus, IBUS_KEY_U, 0x1EEE, -+IBUS_KEY_Multi_key, IBUS_KEY_plus, IBUS_KEY_o, 0x1EE1, -+IBUS_KEY_Multi_key, IBUS_KEY_plus, IBUS_KEY_u, 0x1EEF, -+IBUS_KEY_Multi_key, IBUS_KEY_U, IBUS_KEY_A, 0x1EB4, -+IBUS_KEY_Multi_key, IBUS_KEY_U, IBUS_KEY_a, 0x1EB5, -+IBUS_KEY_Multi_key, IBUS_KEY_asciicircum, IBUS_KEY_A, 0x1EAA, -+IBUS_KEY_Multi_key, IBUS_KEY_asciicircum, IBUS_KEY_E, 0x1EC4, -+IBUS_KEY_Multi_key, IBUS_KEY_asciicircum, IBUS_KEY_O, 0x1ED6, -+IBUS_KEY_Multi_key, IBUS_KEY_asciicircum, IBUS_KEY_a, 0x1EAB, -+IBUS_KEY_Multi_key, IBUS_KEY_asciicircum, IBUS_KEY_e, 0x1EC5, -+IBUS_KEY_Multi_key, IBUS_KEY_asciicircum, IBUS_KEY_o, 0x1ED7, -+IBUS_KEY_Multi_key, IBUS_KEY_b, IBUS_KEY_A, 0x1EB4, -+IBUS_KEY_Multi_key, IBUS_KEY_b, IBUS_KEY_a, 0x1EB5, -+IBUS_KEY_space, 0x00AF, -+IBUS_KEY_V, 0x01D5, -+IBUS_KEY_v, 0x01D6, -+IBUS_KEY_nobreakspace, 0x0304, -+IBUS_KEY_Egrave, 0x1E14, -+IBUS_KEY_Eacute, 0x1E16, -+IBUS_KEY_Ograve, 0x1E50, -+IBUS_KEY_Oacute, 0x1E52, -+IBUS_KEY_egrave, 0x1E15, -+IBUS_KEY_eacute, 0x1E17, -+IBUS_KEY_ograve, 0x1E51, -+IBUS_KEY_oacute, 0x1E53, -+IBUS_KEY_Cyrillic_i, 0x04E3, -+IBUS_KEY_Cyrillic_u, 0x04EF, -+IBUS_KEY_Cyrillic_I, 0x04E2, -+IBUS_KEY_Cyrillic_U, 0x04EE, -+IBUS_KEY_Greek_ALPHA, 0x1FB9, -+IBUS_KEY_Greek_IOTA, 0x1FD9, -+IBUS_KEY_Greek_UPSILON, 0x1FE9, -+IBUS_KEY_Greek_alpha, 0x1FB1, -+IBUS_KEY_Greek_iota, 0x1FD1, -+IBUS_KEY_Greek_upsilon, 0x1FE1, -+IBUS_KEY_dead_macron, 0x00AF, -+IBUS_KEY_dead_greek, IBUS_KEY_A, 0x1FB9, -+IBUS_KEY_dead_greek, IBUS_KEY_I, 0x1FD9, -+IBUS_KEY_dead_greek, IBUS_KEY_U, 0x1FE9, -+IBUS_KEY_dead_greek, IBUS_KEY_a, 0x1FB1, -+IBUS_KEY_dead_greek, IBUS_KEY_i, 0x1FD1, -+IBUS_KEY_dead_greek, IBUS_KEY_u, 0x1FE1, -+IBUS_KEY_Multi_key, IBUS_KEY_exclam, IBUS_KEY_L, 0x1E38, -+IBUS_KEY_Multi_key, IBUS_KEY_exclam, IBUS_KEY_R, 0x1E5C, -+IBUS_KEY_Multi_key, IBUS_KEY_exclam, IBUS_KEY_l, 0x1E39, -+IBUS_KEY_Multi_key, IBUS_KEY_exclam, IBUS_KEY_r, 0x1E5D, -+IBUS_KEY_Multi_key, IBUS_KEY_quotedbl, IBUS_KEY_A, 0x01DE, -+IBUS_KEY_Multi_key, IBUS_KEY_quotedbl, IBUS_KEY_O, 0x022A, -+IBUS_KEY_Multi_key, IBUS_KEY_quotedbl, IBUS_KEY_U, 0x01D5, -+IBUS_KEY_Multi_key, IBUS_KEY_quotedbl, IBUS_KEY_a, 0x01DF, -+IBUS_KEY_Multi_key, IBUS_KEY_quotedbl, IBUS_KEY_o, 0x022B, -+IBUS_KEY_Multi_key, IBUS_KEY_quotedbl, IBUS_KEY_u, 0x01D6, -+IBUS_KEY_Multi_key, IBUS_KEY_period, IBUS_KEY_A, 0x01E0, -+IBUS_KEY_Multi_key, IBUS_KEY_period, IBUS_KEY_O, 0x0230, -+IBUS_KEY_Multi_key, IBUS_KEY_period, IBUS_KEY_a, 0x01E1, -+IBUS_KEY_Multi_key, IBUS_KEY_period, IBUS_KEY_o, 0x0231, -+IBUS_KEY_Multi_key, IBUS_KEY_semicolon, IBUS_KEY_O, 0x01EC, -+IBUS_KEY_Multi_key, IBUS_KEY_semicolon, IBUS_KEY_o, 0x01ED, -+IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, IBUS_KEY_O, 0x022C, -+IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, IBUS_KEY_o, 0x022D, -+IBUS_KEY_space, 0x02D8, -+IBUS_KEY_nobreakspace, 0x0306, -+IBUS_KEY_Agrave, 0x1EB0, -+IBUS_KEY_Aacute, 0x1EAE, -+IBUS_KEY_Atilde, 0x1EB4, -+IBUS_KEY_agrave, 0x1EB1, -+IBUS_KEY_aacute, 0x1EAF, -+IBUS_KEY_atilde, 0x1EB5, -+IBUS_KEY_Cyrillic_a, 0x04D1, -+IBUS_KEY_Cyrillic_ie, 0x04D7, -+IBUS_KEY_Cyrillic_i, 0x0439, -+IBUS_KEY_Cyrillic_u, 0x045E, -+IBUS_KEY_Cyrillic_zhe, 0x04C2, -+IBUS_KEY_Cyrillic_A, 0x04D0, -+IBUS_KEY_Cyrillic_IE, 0x04D6, -+IBUS_KEY_Cyrillic_I, 0x0419, -+IBUS_KEY_Cyrillic_U, 0x040E, -+IBUS_KEY_Cyrillic_ZHE, 0x04C1, -+IBUS_KEY_Greek_ALPHA, 0x1FB8, -+IBUS_KEY_Greek_IOTA, 0x1FD8, -+IBUS_KEY_Greek_UPSILON, 0x1FE8, -+IBUS_KEY_Greek_alpha, 0x1FB0, -+IBUS_KEY_Greek_iota, 0x1FD0, -+IBUS_KEY_Greek_upsilon, 0x1FE0, -+IBUS_KEY_dead_breve, 0x02D8, -+IBUS_KEY_Multi_key, IBUS_KEY_exclam, IBUS_KEY_A, 0x1EB6, -+IBUS_KEY_Multi_key, IBUS_KEY_exclam, IBUS_KEY_a, 0x1EB7, -+IBUS_KEY_Multi_key, IBUS_KEY_comma, IBUS_KEY_E, 0x1E1C, -+IBUS_KEY_Multi_key, IBUS_KEY_comma, IBUS_KEY_e, 0x1E1D, -+IBUS_KEY_Multi_key, IBUS_KEY_cedilla, IBUS_KEY_E, 0x1E1C, -+IBUS_KEY_Multi_key, IBUS_KEY_cedilla, IBUS_KEY_e, 0x1E1D, -+IBUS_KEY_space, 0x02D9, -+IBUS_KEY_L, 0x013F, -+IBUS_KEY_i, 0x0131, -+IBUS_KEY_j, 0x0237, -+IBUS_KEY_l, 0x0140, -+IBUS_KEY_nobreakspace, 0x0307, -+IBUS_KEY_Sacute, 0x1E64, -+IBUS_KEY_Scaron, 0x1E66, -+IBUS_KEY_sacute, 0x1E65, -+IBUS_KEY_scaron, 0x1E67, -+IBUS_KEY_Amacron, 0x01E0, -+IBUS_KEY_Omacron, 0x0230, -+IBUS_KEY_amacron, 0x01E1, -+IBUS_KEY_omacron, 0x0231, -+IBUS_KEY_dead_abovedot, 0x02D9, -+IBUS_KEY_dead_stroke, IBUS_KEY_j, 0x025F, -+IBUS_KEY_Multi_key, IBUS_KEY_exclam, IBUS_KEY_S, 0x1E68, -+IBUS_KEY_Multi_key, IBUS_KEY_exclam, IBUS_KEY_s, 0x1E69, -+IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, IBUS_KEY_S, 0x1E64, -+IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, IBUS_KEY_s, 0x1E65, -+IBUS_KEY_Multi_key, IBUS_KEY_c, IBUS_KEY_S, 0x1E66, -+IBUS_KEY_Multi_key, IBUS_KEY_c, IBUS_KEY_s, 0x1E67, -+IBUS_KEY_Multi_key, IBUS_KEY_f, IBUS_KEY_s, 0x1E9B, -+IBUS_KEY_Multi_key, IBUS_KEY_acute, IBUS_KEY_S, 0x1E64, -+IBUS_KEY_Multi_key, IBUS_KEY_acute, IBUS_KEY_s, 0x1E65, -+IBUS_KEY_space, 0x0022, -+IBUS_KEY_apostrophe, 0x0344, -+IBUS_KEY_nobreakspace, 0x0308, -+IBUS_KEY_acute, 0x0344, -+IBUS_KEY_Iacute, 0x1E2E, -+IBUS_KEY_Ugrave, 0x01DB, -+IBUS_KEY_Uacute, 0x01D7, -+IBUS_KEY_iacute, 0x1E2F, -+IBUS_KEY_ugrave, 0x01DC, -+IBUS_KEY_uacute, 0x01D8, -+0x01D3, 0x01D9, -+0x01D4, 0x01DA, -+IBUS_KEY_Amacron, 0x01DE, -+IBUS_KEY_Umacron, 0x1E7A, -+IBUS_KEY_amacron, 0x01DF, -+IBUS_KEY_omacron, 0x022B, -+IBUS_KEY_umacron, 0x1E7B, -+IBUS_KEY_Ukrainian_i, 0x0457, -+IBUS_KEY_Ukrainian_I, 0x0407, -+IBUS_KEY_Cyrillic_a, 0x04D3, -+IBUS_KEY_Cyrillic_ie, 0x0451, -+IBUS_KEY_Cyrillic_i, 0x04E5, -+IBUS_KEY_Cyrillic_o, 0x04E7, -+IBUS_KEY_Cyrillic_u, 0x04F1, -+IBUS_KEY_Cyrillic_zhe, 0x04DD, -+IBUS_KEY_Cyrillic_yeru, 0x04F9, -+IBUS_KEY_Cyrillic_ze, 0x04DF, -+IBUS_KEY_Cyrillic_e, 0x04ED, -+IBUS_KEY_Cyrillic_che, 0x04F5, -+IBUS_KEY_Cyrillic_A, 0x04D2, -+IBUS_KEY_Cyrillic_IE, 0x0401, -+IBUS_KEY_Cyrillic_I, 0x04E4, -+IBUS_KEY_Cyrillic_O, 0x04E6, -+IBUS_KEY_Cyrillic_U, 0x04F0, -+IBUS_KEY_Cyrillic_ZHE, 0x04DC, -+IBUS_KEY_Cyrillic_YERU, 0x04F8, -+IBUS_KEY_Cyrillic_ZE, 0x04DE, -+IBUS_KEY_Cyrillic_E, 0x04EC, -+IBUS_KEY_Cyrillic_CHE, 0x04F4, -+IBUS_KEY_Greek_IOTA, 0x03AA, -+IBUS_KEY_Greek_UPSILON, 0x03AB, -+IBUS_KEY_Greek_iota, 0x03CA, -+IBUS_KEY_Greek_upsilon, 0x03CB, -+IBUS_KEY_dead_diaeresis, 0x00A8, -+IBUS_KEY_dead_acute, IBUS_KEY_space, 0x0385, -+IBUS_KEY_dead_acute, IBUS_KEY_Greek_iota, 0x0390, -+IBUS_KEY_dead_acute, IBUS_KEY_Greek_upsilon, 0x03B0, -+IBUS_KEY_dead_belowdiaeresis, IBUS_KEY_equal, 0x2A77, -+IBUS_KEY_Multi_key, IBUS_KEY_underscore, IBUS_KEY_U, 0x1E7A, -+IBUS_KEY_Multi_key, IBUS_KEY_underscore, IBUS_KEY_u, 0x1E7B, -+IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, IBUS_KEY_O, 0x1E4E, -+IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, IBUS_KEY_o, 0x1E4F, -+IBUS_KEY_Multi_key, IBUS_KEY_macron, IBUS_KEY_U, 0x1E7A, -+IBUS_KEY_Multi_key, IBUS_KEY_macron, IBUS_KEY_u, 0x1E7B, -+IBUS_KEY_space, 0x00B0, -+IBUS_KEY_nobreakspace, 0x030A, -+IBUS_KEY_Aacute, 0x01FA, -+IBUS_KEY_aacute, 0x01FB, -+IBUS_KEY_dead_abovering, 0x00B0, -+IBUS_KEY_space, 0x02DD, -+IBUS_KEY_nobreakspace, 0x030B, -+IBUS_KEY_Cyrillic_u, 0x04F3, -+IBUS_KEY_Cyrillic_U, 0x04F2, -+IBUS_KEY_dead_doubleacute, 0x02DD, -+IBUS_KEY_space, 0x02C7, -+IBUS_KEY_parenleft, 0x208D, -+IBUS_KEY_parenright, 0x208E, -+IBUS_KEY_plus, 0x208A, -+IBUS_KEY_minus, 0x208B, -+IBUS_KEY_0, 0x2080, -+IBUS_KEY_1, 0x2081, -+IBUS_KEY_2, 0x2082, -+IBUS_KEY_3, 0x2083, -+IBUS_KEY_4, 0x2084, -+IBUS_KEY_5, 0x2085, -+IBUS_KEY_6, 0x2086, -+IBUS_KEY_7, 0x2087, -+IBUS_KEY_8, 0x2088, -+IBUS_KEY_9, 0x2089, -+IBUS_KEY_equal, 0x208C, -+IBUS_KEY_V, 0x01D9, -+IBUS_KEY_v, 0x01DA, -+IBUS_KEY_nobreakspace, 0x030C, -+0x01F2, 0x01C5, -+IBUS_KEY_dead_caron, 0x02C7, -+IBUS_KEY_Multi_key, IBUS_KEY_quotedbl, IBUS_KEY_U, 0x01D9, -+IBUS_KEY_Multi_key, IBUS_KEY_quotedbl, IBUS_KEY_u, 0x01DA, -+IBUS_KEY_space, 0x00B8, -+IBUS_KEY_nobreakspace, 0x0327, -+IBUS_KEY_cent, 0x20B5, -+IBUS_KEY_Cacute, 0x1E08, -+IBUS_KEY_cacute, 0x1E09, -+IBUS_KEY_dead_cedilla, 0x00B8, -+IBUS_KEY_dead_currency, IBUS_KEY_C, 0x20B5, -+IBUS_KEY_dead_currency, IBUS_KEY_c, 0x20B5, -+IBUS_KEY_space, 0x02DB, -+IBUS_KEY_nobreakspace, 0x0328, -+IBUS_KEY_Omacron, 0x01EC, -+IBUS_KEY_omacron, 0x01ED, -+IBUS_KEY_dead_ogonek, 0x02DB, -+IBUS_KEY_space, 0x037A, -+IBUS_KEY_Greek_alphaaccent, 0x1FB4, -+IBUS_KEY_Greek_etaaccent, 0x1FC4, -+IBUS_KEY_Greek_omegaaccent, 0x1FF4, -+IBUS_KEY_Greek_ALPHA, 0x1FBC, -+IBUS_KEY_Greek_ETA, 0x1FCC, -+IBUS_KEY_Greek_OMEGA, 0x1FFC, -+IBUS_KEY_Greek_alpha, 0x1FB3, -+IBUS_KEY_Greek_eta, 0x1FC3, -+IBUS_KEY_Greek_omega, 0x1FF3, -+IBUS_KEY_dead_iota, 0x037A, -+IBUS_KEY_dead_grave, IBUS_KEY_Greek_alpha, 0x1FB2, -+IBUS_KEY_dead_grave, IBUS_KEY_Greek_eta, 0x1FC2, -+IBUS_KEY_dead_grave, IBUS_KEY_Greek_omega, 0x1FF2, -+IBUS_KEY_dead_acute, IBUS_KEY_Greek_alpha, 0x1FB4, -+IBUS_KEY_dead_acute, IBUS_KEY_Greek_eta, 0x1FC4, -+IBUS_KEY_dead_acute, IBUS_KEY_Greek_omega, 0x1FF4, -+IBUS_KEY_dead_tilde, IBUS_KEY_Greek_alpha, 0x1FB7, -+IBUS_KEY_dead_tilde, IBUS_KEY_Greek_eta, 0x1FC7, -+IBUS_KEY_dead_tilde, IBUS_KEY_Greek_omega, 0x1FF7, -+IBUS_KEY_dead_tilde, 0x1F00, 0x1F86, -+IBUS_KEY_dead_tilde, 0x1F01, 0x1F87, -+IBUS_KEY_dead_tilde, 0x1F08, 0x1F8E, -+IBUS_KEY_dead_tilde, 0x1F09, 0x1F8F, -+IBUS_KEY_dead_tilde, 0x1F20, 0x1F96, -+IBUS_KEY_dead_tilde, 0x1F21, 0x1F97, -+IBUS_KEY_dead_tilde, 0x1F28, 0x1F9E, -+IBUS_KEY_dead_tilde, 0x1F29, 0x1F9F, -+IBUS_KEY_dead_tilde, 0x1F60, 0x1FA6, -+IBUS_KEY_dead_tilde, 0x1F61, 0x1FA7, -+IBUS_KEY_dead_tilde, 0x1F68, 0x1FAE, -+IBUS_KEY_dead_tilde, 0x1F69, 0x1FAF, -+IBUS_KEY_dead_psili, IBUS_KEY_Greek_ALPHA, 0x1F88, -+IBUS_KEY_dead_psili, IBUS_KEY_Greek_ETA, 0x1F98, -+IBUS_KEY_dead_psili, IBUS_KEY_Greek_OMEGA, 0x1FA8, -+IBUS_KEY_dead_psili, IBUS_KEY_Greek_alpha, 0x1F80, -+IBUS_KEY_dead_psili, IBUS_KEY_Greek_eta, 0x1F90, -+IBUS_KEY_dead_psili, IBUS_KEY_Greek_omega, 0x1FA0, -+IBUS_KEY_dead_dasia, IBUS_KEY_Greek_ALPHA, 0x1F89, -+IBUS_KEY_dead_dasia, IBUS_KEY_Greek_ETA, 0x1F99, -+IBUS_KEY_dead_dasia, IBUS_KEY_Greek_OMEGA, 0x1FA9, -+IBUS_KEY_dead_dasia, IBUS_KEY_Greek_alpha, 0x1F81, -+IBUS_KEY_dead_dasia, IBUS_KEY_Greek_eta, 0x1F91, -+IBUS_KEY_dead_dasia, IBUS_KEY_Greek_omega, 0x1FA1, -+IBUS_KEY_dead_grave, IBUS_KEY_dead_psili, IBUS_KEY_Greek_ALPHA, 0x1F8A, -+IBUS_KEY_dead_grave, IBUS_KEY_dead_psili, IBUS_KEY_Greek_ETA, 0x1F9A, -+IBUS_KEY_dead_grave, IBUS_KEY_dead_psili, IBUS_KEY_Greek_OMEGA, 0x1FAA, -+IBUS_KEY_dead_grave, IBUS_KEY_dead_psili, IBUS_KEY_Greek_alpha, 0x1F82, -+IBUS_KEY_dead_grave, IBUS_KEY_dead_psili, IBUS_KEY_Greek_eta, 0x1F92, -+IBUS_KEY_dead_grave, IBUS_KEY_dead_psili, IBUS_KEY_Greek_omega, 0x1FA2, -+IBUS_KEY_dead_grave, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_ALPHA, 0x1F8B, -+IBUS_KEY_dead_grave, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_ETA, 0x1F9B, -+IBUS_KEY_dead_grave, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_OMEGA, 0x1FAB, -+IBUS_KEY_dead_grave, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_alpha, 0x1F83, -+IBUS_KEY_dead_grave, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_eta, 0x1F93, -+IBUS_KEY_dead_grave, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_omega, 0x1FA3, -+IBUS_KEY_dead_acute, IBUS_KEY_dead_psili, IBUS_KEY_Greek_ALPHA, 0x1F8C, -+IBUS_KEY_dead_acute, IBUS_KEY_dead_psili, IBUS_KEY_Greek_ETA, 0x1F9C, -+IBUS_KEY_dead_acute, IBUS_KEY_dead_psili, IBUS_KEY_Greek_OMEGA, 0x1FAC, -+IBUS_KEY_dead_acute, IBUS_KEY_dead_psili, IBUS_KEY_Greek_alpha, 0x1F84, -+IBUS_KEY_dead_acute, IBUS_KEY_dead_psili, IBUS_KEY_Greek_eta, 0x1F94, -+IBUS_KEY_dead_acute, IBUS_KEY_dead_psili, IBUS_KEY_Greek_omega, 0x1FA4, -+IBUS_KEY_dead_acute, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_ALPHA, 0x1F8D, -+IBUS_KEY_dead_acute, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_ETA, 0x1F9D, -+IBUS_KEY_dead_acute, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_OMEGA, 0x1FAD, -+IBUS_KEY_dead_acute, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_alpha, 0x1F85, -+IBUS_KEY_dead_acute, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_eta, 0x1F95, -+IBUS_KEY_dead_acute, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_omega, 0x1FA5, -+IBUS_KEY_dead_tilde, IBUS_KEY_dead_psili, IBUS_KEY_Greek_ALPHA, 0x1F8E, -+IBUS_KEY_dead_tilde, IBUS_KEY_dead_psili, IBUS_KEY_Greek_ETA, 0x1F9E, -+IBUS_KEY_dead_tilde, IBUS_KEY_dead_psili, IBUS_KEY_Greek_OMEGA, 0x1FAE, -+IBUS_KEY_dead_tilde, IBUS_KEY_dead_psili, IBUS_KEY_Greek_alpha, 0x1F86, -+IBUS_KEY_dead_tilde, IBUS_KEY_dead_psili, IBUS_KEY_Greek_eta, 0x1F96, -+IBUS_KEY_dead_tilde, IBUS_KEY_dead_psili, IBUS_KEY_Greek_omega, 0x1FA6, -+IBUS_KEY_dead_tilde, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_ALPHA, 0x1F8F, -+IBUS_KEY_dead_tilde, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_ETA, 0x1F9F, -+IBUS_KEY_dead_tilde, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_OMEGA, 0x1FAF, -+IBUS_KEY_dead_tilde, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_alpha, 0x1F87, -+IBUS_KEY_dead_tilde, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_eta, 0x1F97, -+IBUS_KEY_dead_tilde, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_omega, 0x1FA7, -+IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, IBUS_KEY_Greek_alpha, 0x1FB4, -+IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, IBUS_KEY_Greek_eta, 0x1FC4, -+IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, IBUS_KEY_Greek_omega, 0x1FF4, -+IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, 0x1F00, 0x1F84, -+IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, 0x1F01, 0x1F85, -+IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, 0x1F08, 0x1F8C, -+IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, 0x1F09, 0x1F8D, -+IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, 0x1F20, 0x1F94, -+IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, 0x1F21, 0x1F95, -+IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, 0x1F28, 0x1F9C, -+IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, 0x1F29, 0x1F9D, -+IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, 0x1F60, 0x1FA4, -+IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, 0x1F61, 0x1FA5, -+IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, 0x1F68, 0x1FAC, -+IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, 0x1F69, 0x1FAD, -+IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_ALPHA, 0x1F89, -+IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_ETA, 0x1F99, -+IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_OMEGA, 0x1FA9, -+IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_alpha, 0x1F81, -+IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_eta, 0x1F91, -+IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_omega, 0x1FA1, -+IBUS_KEY_Multi_key, IBUS_KEY_parenright, IBUS_KEY_Greek_ALPHA, 0x1F88, -+IBUS_KEY_Multi_key, IBUS_KEY_parenright, IBUS_KEY_Greek_ETA, 0x1F98, -+IBUS_KEY_Multi_key, IBUS_KEY_parenright, IBUS_KEY_Greek_OMEGA, 0x1FA8, -+IBUS_KEY_Multi_key, IBUS_KEY_parenright, IBUS_KEY_Greek_alpha, 0x1F80, -+IBUS_KEY_Multi_key, IBUS_KEY_parenright, IBUS_KEY_Greek_eta, 0x1F90, -+IBUS_KEY_Multi_key, IBUS_KEY_parenright, IBUS_KEY_Greek_omega, 0x1FA0, -+IBUS_KEY_Multi_key, IBUS_KEY_grave, IBUS_KEY_Greek_alpha, 0x1FB2, -+IBUS_KEY_Multi_key, IBUS_KEY_grave, IBUS_KEY_Greek_eta, 0x1FC2, -+IBUS_KEY_Multi_key, IBUS_KEY_grave, IBUS_KEY_Greek_omega, 0x1FF2, -+IBUS_KEY_Multi_key, IBUS_KEY_grave, 0x1F00, 0x1F82, -+IBUS_KEY_Multi_key, IBUS_KEY_grave, 0x1F01, 0x1F83, -+IBUS_KEY_Multi_key, IBUS_KEY_grave, 0x1F08, 0x1F8A, -+IBUS_KEY_Multi_key, IBUS_KEY_grave, 0x1F09, 0x1F8B, -+IBUS_KEY_Multi_key, IBUS_KEY_grave, 0x1F20, 0x1F92, -+IBUS_KEY_Multi_key, IBUS_KEY_grave, 0x1F21, 0x1F93, -+IBUS_KEY_Multi_key, IBUS_KEY_grave, 0x1F28, 0x1F9A, -+IBUS_KEY_Multi_key, IBUS_KEY_grave, 0x1F29, 0x1F9B, -+IBUS_KEY_Multi_key, IBUS_KEY_grave, 0x1F60, 0x1FA2, -+IBUS_KEY_Multi_key, IBUS_KEY_grave, 0x1F61, 0x1FA3, -+IBUS_KEY_Multi_key, IBUS_KEY_grave, 0x1F68, 0x1FAA, -+IBUS_KEY_Multi_key, IBUS_KEY_grave, 0x1F69, 0x1FAB, -+IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, IBUS_KEY_Greek_alpha, 0x1FB7, -+IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, IBUS_KEY_Greek_eta, 0x1FC7, -+IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, IBUS_KEY_Greek_omega, 0x1FF7, -+IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, 0x1F00, 0x1F86, -+IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, 0x1F01, 0x1F87, -+IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, 0x1F08, 0x1F8E, -+IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, 0x1F09, 0x1F8F, -+IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, 0x1F20, 0x1F96, -+IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, 0x1F21, 0x1F97, -+IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, 0x1F28, 0x1F9E, -+IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, 0x1F29, 0x1F9F, -+IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, 0x1F60, 0x1FA6, -+IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, 0x1F61, 0x1FA7, -+IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, 0x1F68, 0x1FAE, -+IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, 0x1F69, 0x1FAF, -+IBUS_KEY_Multi_key, IBUS_KEY_acute, IBUS_KEY_Greek_alpha, 0x1FB4, -+IBUS_KEY_Multi_key, IBUS_KEY_acute, IBUS_KEY_Greek_eta, 0x1FC4, -+IBUS_KEY_Multi_key, IBUS_KEY_acute, IBUS_KEY_Greek_omega, 0x1FF4, -+IBUS_KEY_Multi_key, IBUS_KEY_acute, 0x1F00, 0x1F84, -+IBUS_KEY_Multi_key, IBUS_KEY_acute, 0x1F01, 0x1F85, -+IBUS_KEY_Multi_key, IBUS_KEY_acute, 0x1F08, 0x1F8C, -+IBUS_KEY_Multi_key, IBUS_KEY_acute, 0x1F09, 0x1F8D, -+IBUS_KEY_Multi_key, IBUS_KEY_acute, 0x1F20, 0x1F94, -+IBUS_KEY_Multi_key, IBUS_KEY_acute, 0x1F21, 0x1F95, -+IBUS_KEY_Multi_key, IBUS_KEY_acute, 0x1F28, 0x1F9C, -+IBUS_KEY_Multi_key, IBUS_KEY_acute, 0x1F29, 0x1F9D, -+IBUS_KEY_Multi_key, IBUS_KEY_acute, 0x1F60, 0x1FA4, -+IBUS_KEY_Multi_key, IBUS_KEY_acute, 0x1F61, 0x1FA5, -+IBUS_KEY_Multi_key, IBUS_KEY_acute, 0x1F68, 0x1FAC, -+IBUS_KEY_Multi_key, IBUS_KEY_acute, 0x1F69, 0x1FAD, -+IBUS_KEY_dead_grave, IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_ALPHA, 0x1F8B, -+IBUS_KEY_dead_grave, IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_ETA, 0x1F9B, -+IBUS_KEY_dead_grave, IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_OMEGA, 0x1FAB, -+IBUS_KEY_dead_grave, IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_alpha, 0x1F83, -+IBUS_KEY_dead_grave, IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_eta, 0x1F93, -+IBUS_KEY_dead_grave, IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_omega, 0x1FA3, -+IBUS_KEY_dead_grave, IBUS_KEY_Multi_key, IBUS_KEY_parenright, IBUS_KEY_Greek_ALPHA, 0x1F8A, -+IBUS_KEY_dead_grave, IBUS_KEY_Multi_key, IBUS_KEY_parenright, IBUS_KEY_Greek_ETA, 0x1F9A, -+IBUS_KEY_dead_grave, IBUS_KEY_Multi_key, IBUS_KEY_parenright, IBUS_KEY_Greek_OMEGA, 0x1FAA, -+IBUS_KEY_dead_grave, IBUS_KEY_Multi_key, IBUS_KEY_parenright, IBUS_KEY_Greek_alpha, 0x1F82, -+IBUS_KEY_dead_grave, IBUS_KEY_Multi_key, IBUS_KEY_parenright, IBUS_KEY_Greek_eta, 0x1F92, -+IBUS_KEY_dead_grave, IBUS_KEY_Multi_key, IBUS_KEY_parenright, IBUS_KEY_Greek_omega, 0x1FA2, -+IBUS_KEY_dead_acute, IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_ALPHA, 0x1F8D, -+IBUS_KEY_dead_acute, IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_ETA, 0x1F9D, -+IBUS_KEY_dead_acute, IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_OMEGA, 0x1FAD, -+IBUS_KEY_dead_acute, IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_alpha, 0x1F85, -+IBUS_KEY_dead_acute, IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_eta, 0x1F95, -+IBUS_KEY_dead_acute, IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_omega, 0x1FA5, -+IBUS_KEY_dead_acute, IBUS_KEY_Multi_key, IBUS_KEY_parenright, IBUS_KEY_Greek_ALPHA, 0x1F8C, -+IBUS_KEY_dead_acute, IBUS_KEY_Multi_key, IBUS_KEY_parenright, IBUS_KEY_Greek_ETA, 0x1F9C, -+IBUS_KEY_dead_acute, IBUS_KEY_Multi_key, IBUS_KEY_parenright, IBUS_KEY_Greek_OMEGA, 0x1FAC, -+IBUS_KEY_dead_acute, IBUS_KEY_Multi_key, IBUS_KEY_parenright, IBUS_KEY_Greek_alpha, 0x1F84, -+IBUS_KEY_dead_acute, IBUS_KEY_Multi_key, IBUS_KEY_parenright, IBUS_KEY_Greek_eta, 0x1F94, -+IBUS_KEY_dead_acute, IBUS_KEY_Multi_key, IBUS_KEY_parenright, IBUS_KEY_Greek_omega, 0x1FA4, -+IBUS_KEY_dead_tilde, IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_ALPHA, 0x1F8F, -+IBUS_KEY_dead_tilde, IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_ETA, 0x1F9F, -+IBUS_KEY_dead_tilde, IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_OMEGA, 0x1FAF, -+IBUS_KEY_dead_tilde, IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_alpha, 0x1F87, -+IBUS_KEY_dead_tilde, IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_eta, 0x1F97, -+IBUS_KEY_dead_tilde, IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_omega, 0x1FA7, -+IBUS_KEY_dead_tilde, IBUS_KEY_Multi_key, IBUS_KEY_parenright, IBUS_KEY_Greek_ALPHA, 0x1F8E, -+IBUS_KEY_dead_tilde, IBUS_KEY_Multi_key, IBUS_KEY_parenright, IBUS_KEY_Greek_ETA, 0x1F9E, -+IBUS_KEY_dead_tilde, IBUS_KEY_Multi_key, IBUS_KEY_parenright, IBUS_KEY_Greek_OMEGA, 0x1FAE, -+IBUS_KEY_dead_tilde, IBUS_KEY_Multi_key, IBUS_KEY_parenright, IBUS_KEY_Greek_alpha, 0x1F86, -+IBUS_KEY_dead_tilde, IBUS_KEY_Multi_key, IBUS_KEY_parenright, IBUS_KEY_Greek_eta, 0x1F96, -+IBUS_KEY_dead_tilde, IBUS_KEY_Multi_key, IBUS_KEY_parenright, IBUS_KEY_Greek_omega, 0x1FA6, -+IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, IBUS_KEY_parenleft, IBUS_KEY_Greek_ALPHA, 0x1F8D, -+IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, IBUS_KEY_parenleft, IBUS_KEY_Greek_ETA, 0x1F9D, -+IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, IBUS_KEY_parenleft, IBUS_KEY_Greek_OMEGA, 0x1FAD, -+IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, IBUS_KEY_parenleft, IBUS_KEY_Greek_alpha, 0x1F85, -+IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, IBUS_KEY_parenleft, IBUS_KEY_Greek_eta, 0x1F95, -+IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, IBUS_KEY_parenleft, IBUS_KEY_Greek_omega, 0x1FA5, -+IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, IBUS_KEY_parenright, IBUS_KEY_Greek_ALPHA, 0x1F8C, -+IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, IBUS_KEY_parenright, IBUS_KEY_Greek_ETA, 0x1F9C, -+IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, IBUS_KEY_parenright, IBUS_KEY_Greek_OMEGA, 0x1FAC, -+IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, IBUS_KEY_parenright, IBUS_KEY_Greek_alpha, 0x1F84, -+IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, IBUS_KEY_parenright, IBUS_KEY_Greek_eta, 0x1F94, -+IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, IBUS_KEY_parenright, IBUS_KEY_Greek_omega, 0x1FA4, -+IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, IBUS_KEY_dead_psili, IBUS_KEY_Greek_ALPHA, 0x1F8C, -+IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, IBUS_KEY_dead_psili, IBUS_KEY_Greek_ETA, 0x1F9C, -+IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, IBUS_KEY_dead_psili, IBUS_KEY_Greek_OMEGA, 0x1FAC, -+IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, IBUS_KEY_dead_psili, IBUS_KEY_Greek_alpha, 0x1F84, -+IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, IBUS_KEY_dead_psili, IBUS_KEY_Greek_eta, 0x1F94, -+IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, IBUS_KEY_dead_psili, IBUS_KEY_Greek_omega, 0x1FA4, -+IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_ALPHA, 0x1F8D, -+IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_ETA, 0x1F9D, -+IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_OMEGA, 0x1FAD, -+IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_alpha, 0x1F85, -+IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_eta, 0x1F95, -+IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_omega, 0x1FA5, -+IBUS_KEY_Multi_key, IBUS_KEY_grave, IBUS_KEY_parenleft, IBUS_KEY_Greek_ALPHA, 0x1F8B, -+IBUS_KEY_Multi_key, IBUS_KEY_grave, IBUS_KEY_parenleft, IBUS_KEY_Greek_ETA, 0x1F9B, -+IBUS_KEY_Multi_key, IBUS_KEY_grave, IBUS_KEY_parenleft, IBUS_KEY_Greek_OMEGA, 0x1FAB, -+IBUS_KEY_Multi_key, IBUS_KEY_grave, IBUS_KEY_parenleft, IBUS_KEY_Greek_alpha, 0x1F83, -+IBUS_KEY_Multi_key, IBUS_KEY_grave, IBUS_KEY_parenleft, IBUS_KEY_Greek_eta, 0x1F93, -+IBUS_KEY_Multi_key, IBUS_KEY_grave, IBUS_KEY_parenleft, IBUS_KEY_Greek_omega, 0x1FA3, -+IBUS_KEY_Multi_key, IBUS_KEY_grave, IBUS_KEY_parenright, IBUS_KEY_Greek_ALPHA, 0x1F8A, -+IBUS_KEY_Multi_key, IBUS_KEY_grave, IBUS_KEY_parenright, IBUS_KEY_Greek_ETA, 0x1F9A, -+IBUS_KEY_Multi_key, IBUS_KEY_grave, IBUS_KEY_parenright, IBUS_KEY_Greek_OMEGA, 0x1FAA, -+IBUS_KEY_Multi_key, IBUS_KEY_grave, IBUS_KEY_parenright, IBUS_KEY_Greek_alpha, 0x1F82, -+IBUS_KEY_Multi_key, IBUS_KEY_grave, IBUS_KEY_parenright, IBUS_KEY_Greek_eta, 0x1F92, -+IBUS_KEY_Multi_key, IBUS_KEY_grave, IBUS_KEY_parenright, IBUS_KEY_Greek_omega, 0x1FA2, -+IBUS_KEY_Multi_key, IBUS_KEY_grave, IBUS_KEY_dead_psili, IBUS_KEY_Greek_ALPHA, 0x1F8A, -+IBUS_KEY_Multi_key, IBUS_KEY_grave, IBUS_KEY_dead_psili, IBUS_KEY_Greek_ETA, 0x1F9A, -+IBUS_KEY_Multi_key, IBUS_KEY_grave, IBUS_KEY_dead_psili, IBUS_KEY_Greek_OMEGA, 0x1FAA, -+IBUS_KEY_Multi_key, IBUS_KEY_grave, IBUS_KEY_dead_psili, IBUS_KEY_Greek_alpha, 0x1F82, -+IBUS_KEY_Multi_key, IBUS_KEY_grave, IBUS_KEY_dead_psili, IBUS_KEY_Greek_eta, 0x1F92, -+IBUS_KEY_Multi_key, IBUS_KEY_grave, IBUS_KEY_dead_psili, IBUS_KEY_Greek_omega, 0x1FA2, -+IBUS_KEY_Multi_key, IBUS_KEY_grave, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_ALPHA, 0x1F8B, -+IBUS_KEY_Multi_key, IBUS_KEY_grave, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_ETA, 0x1F9B, -+IBUS_KEY_Multi_key, IBUS_KEY_grave, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_OMEGA, 0x1FAB, -+IBUS_KEY_Multi_key, IBUS_KEY_grave, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_alpha, 0x1F83, -+IBUS_KEY_Multi_key, IBUS_KEY_grave, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_eta, 0x1F93, -+IBUS_KEY_Multi_key, IBUS_KEY_grave, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_omega, 0x1FA3, -+IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, IBUS_KEY_parenleft, IBUS_KEY_Greek_ALPHA, 0x1F8F, -+IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, IBUS_KEY_parenleft, IBUS_KEY_Greek_ETA, 0x1F9F, -+IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, IBUS_KEY_parenleft, IBUS_KEY_Greek_OMEGA, 0x1FAF, -+IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, IBUS_KEY_parenleft, IBUS_KEY_Greek_alpha, 0x1F87, -+IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, IBUS_KEY_parenleft, IBUS_KEY_Greek_eta, 0x1F97, -+IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, IBUS_KEY_parenleft, IBUS_KEY_Greek_omega, 0x1FA7, -+IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, IBUS_KEY_parenright, IBUS_KEY_Greek_ALPHA, 0x1F8E, -+IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, IBUS_KEY_parenright, IBUS_KEY_Greek_ETA, 0x1F9E, -+IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, IBUS_KEY_parenright, IBUS_KEY_Greek_OMEGA, 0x1FAE, -+IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, IBUS_KEY_parenright, IBUS_KEY_Greek_alpha, 0x1F86, -+IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, IBUS_KEY_parenright, IBUS_KEY_Greek_eta, 0x1F96, -+IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, IBUS_KEY_parenright, IBUS_KEY_Greek_omega, 0x1FA6, -+IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, IBUS_KEY_dead_psili, IBUS_KEY_Greek_ALPHA, 0x1F8E, -+IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, IBUS_KEY_dead_psili, IBUS_KEY_Greek_ETA, 0x1F9E, -+IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, IBUS_KEY_dead_psili, IBUS_KEY_Greek_OMEGA, 0x1FAE, -+IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, IBUS_KEY_dead_psili, IBUS_KEY_Greek_alpha, 0x1F86, -+IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, IBUS_KEY_dead_psili, IBUS_KEY_Greek_eta, 0x1F96, -+IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, IBUS_KEY_dead_psili, IBUS_KEY_Greek_omega, 0x1FA6, -+IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_ALPHA, 0x1F8F, -+IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_ETA, 0x1F9F, -+IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_OMEGA, 0x1FAF, -+IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_alpha, 0x1F87, -+IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_eta, 0x1F97, -+IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_omega, 0x1FA7, -+IBUS_KEY_Multi_key, IBUS_KEY_acute, IBUS_KEY_parenleft, IBUS_KEY_Greek_ALPHA, 0x1F8D, -+IBUS_KEY_Multi_key, IBUS_KEY_acute, IBUS_KEY_parenleft, IBUS_KEY_Greek_ETA, 0x1F9D, -+IBUS_KEY_Multi_key, IBUS_KEY_acute, IBUS_KEY_parenleft, IBUS_KEY_Greek_OMEGA, 0x1FAD, -+IBUS_KEY_Multi_key, IBUS_KEY_acute, IBUS_KEY_parenleft, IBUS_KEY_Greek_alpha, 0x1F85, -+IBUS_KEY_Multi_key, IBUS_KEY_acute, IBUS_KEY_parenleft, IBUS_KEY_Greek_eta, 0x1F95, -+IBUS_KEY_Multi_key, IBUS_KEY_acute, IBUS_KEY_parenleft, IBUS_KEY_Greek_omega, 0x1FA5, -+IBUS_KEY_Multi_key, IBUS_KEY_acute, IBUS_KEY_parenright, IBUS_KEY_Greek_ALPHA, 0x1F8C, -+IBUS_KEY_Multi_key, IBUS_KEY_acute, IBUS_KEY_parenright, IBUS_KEY_Greek_ETA, 0x1F9C, -+IBUS_KEY_Multi_key, IBUS_KEY_acute, IBUS_KEY_parenright, IBUS_KEY_Greek_OMEGA, 0x1FAC, -+IBUS_KEY_Multi_key, IBUS_KEY_acute, IBUS_KEY_parenright, IBUS_KEY_Greek_alpha, 0x1F84, -+IBUS_KEY_Multi_key, IBUS_KEY_acute, IBUS_KEY_parenright, IBUS_KEY_Greek_eta, 0x1F94, -+IBUS_KEY_Multi_key, IBUS_KEY_acute, IBUS_KEY_parenright, IBUS_KEY_Greek_omega, 0x1FA4, -+IBUS_KEY_Multi_key, IBUS_KEY_acute, IBUS_KEY_dead_psili, IBUS_KEY_Greek_ALPHA, 0x1F8C, -+IBUS_KEY_Multi_key, IBUS_KEY_acute, IBUS_KEY_dead_psili, IBUS_KEY_Greek_ETA, 0x1F9C, -+IBUS_KEY_Multi_key, IBUS_KEY_acute, IBUS_KEY_dead_psili, IBUS_KEY_Greek_OMEGA, 0x1FAC, -+IBUS_KEY_Multi_key, IBUS_KEY_acute, IBUS_KEY_dead_psili, IBUS_KEY_Greek_alpha, 0x1F84, -+IBUS_KEY_Multi_key, IBUS_KEY_acute, IBUS_KEY_dead_psili, IBUS_KEY_Greek_eta, 0x1F94, -+IBUS_KEY_Multi_key, IBUS_KEY_acute, IBUS_KEY_dead_psili, IBUS_KEY_Greek_omega, 0x1FA4, -+IBUS_KEY_Multi_key, IBUS_KEY_acute, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_ALPHA, 0x1F8D, -+IBUS_KEY_Multi_key, IBUS_KEY_acute, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_ETA, 0x1F9D, -+IBUS_KEY_Multi_key, IBUS_KEY_acute, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_OMEGA, 0x1FAD, -+IBUS_KEY_Multi_key, IBUS_KEY_acute, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_alpha, 0x1F85, -+IBUS_KEY_Multi_key, IBUS_KEY_acute, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_eta, 0x1F95, -+IBUS_KEY_Multi_key, IBUS_KEY_acute, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_omega, 0x1FA5, -+IBUS_KEY_kana_WO, 0x30FA, -+IBUS_KEY_kana_U, 0x30F4, -+IBUS_KEY_kana_KA, 0x30AC, -+IBUS_KEY_kana_KI, 0x30AE, -+IBUS_KEY_kana_KU, 0x30B0, -+IBUS_KEY_kana_KE, 0x30B2, -+IBUS_KEY_kana_KO, 0x30B4, -+IBUS_KEY_kana_SA, 0x30B6, -+IBUS_KEY_kana_SHI, 0x30B8, -+IBUS_KEY_kana_SU, 0x30BA, -+IBUS_KEY_kana_SE, 0x30BC, -+IBUS_KEY_kana_SO, 0x30BE, -+IBUS_KEY_kana_TA, 0x30C0, -+IBUS_KEY_kana_CHI, 0x30C2, -+IBUS_KEY_kana_TSU, 0x30C5, -+IBUS_KEY_kana_TE, 0x30C7, -+IBUS_KEY_kana_TO, 0x30C9, -+IBUS_KEY_kana_HA, 0x30D0, -+IBUS_KEY_kana_HI, 0x30D3, -+IBUS_KEY_kana_FU, 0x30D6, -+IBUS_KEY_kana_HE, 0x30D9, -+IBUS_KEY_kana_HO, 0x30DC, -+IBUS_KEY_kana_WA, 0x30F7, -+IBUS_KEY_kana_HA, 0x30D1, -+IBUS_KEY_kana_HI, 0x30D4, -+IBUS_KEY_kana_FU, 0x30D7, -+IBUS_KEY_kana_HE, 0x30DA, -+IBUS_KEY_kana_HO, 0x30DD, -+IBUS_KEY_space, 0x0323, -+IBUS_KEY_plus, 0x2A25, -+IBUS_KEY_minus, 0x2A2A, -+IBUS_KEY_equal, 0x2A66, -+IBUS_KEY_nobreakspace, 0x0323, -+IBUS_KEY_Abreve, 0x1EB6, -+IBUS_KEY_abreve, 0x1EB7, -+IBUS_KEY_dead_belowdot, 0x0323, -+IBUS_KEY_Multi_key, IBUS_KEY_plus, IBUS_KEY_O, 0x1EE2, -+IBUS_KEY_Multi_key, IBUS_KEY_plus, IBUS_KEY_U, 0x1EF0, -+IBUS_KEY_Multi_key, IBUS_KEY_plus, IBUS_KEY_o, 0x1EE3, -+IBUS_KEY_Multi_key, IBUS_KEY_plus, IBUS_KEY_u, 0x1EF1, -+IBUS_KEY_space, 0x0309, -+IBUS_KEY_B, 0x0181, -+IBUS_KEY_C, 0x0187, -+IBUS_KEY_D, 0x018A, -+IBUS_KEY_F, 0x0191, -+IBUS_KEY_G, 0x0193, -+IBUS_KEY_K, 0x0198, -+IBUS_KEY_M, 0x2C6E, -+IBUS_KEY_N, 0x019D, -+IBUS_KEY_P, 0x01A4, -+IBUS_KEY_T, 0x01AC, -+IBUS_KEY_V, 0x01B2, -+IBUS_KEY_W, 0x2C72, -+IBUS_KEY_Z, 0x0224, -+IBUS_KEY_b, 0x0253, -+IBUS_KEY_c, 0x0188, -+IBUS_KEY_d, 0x0257, -+IBUS_KEY_f, 0x0192, -+IBUS_KEY_g, 0x0260, -+IBUS_KEY_h, 0x0266, -+IBUS_KEY_k, 0x0199, -+IBUS_KEY_m, 0x0271, -+IBUS_KEY_n, 0x0272, -+IBUS_KEY_p, 0x01A5, -+IBUS_KEY_q, 0x02A0, -+IBUS_KEY_r, 0x027C, -+IBUS_KEY_s, 0x0282, -+IBUS_KEY_t, 0x01AD, -+IBUS_KEY_v, 0x028B, -+IBUS_KEY_w, 0x2C73, -+IBUS_KEY_z, 0x0225, -+IBUS_KEY_nobreakspace, 0x0309, -+IBUS_KEY_Abreve, 0x1EB2, -+IBUS_KEY_abreve, 0x1EB3, -+0x0256, 0x1D91, -+0x025C, 0x025D, -+0x025F, 0x0284, -+0x0279, 0x027B, -+IBUS_KEY_dead_hook, 0x0309, -+IBUS_KEY_dead_greek, IBUS_KEY_U, 0x03D2, -+IBUS_KEY_Multi_key, IBUS_KEY_plus, IBUS_KEY_O, 0x1EDE, -+IBUS_KEY_Multi_key, IBUS_KEY_plus, IBUS_KEY_U, 0x1EEC, -+IBUS_KEY_Multi_key, IBUS_KEY_plus, IBUS_KEY_o, 0x1EDF, -+IBUS_KEY_Multi_key, IBUS_KEY_plus, IBUS_KEY_u, 0x1EED, -+IBUS_KEY_Multi_key, IBUS_KEY_U, IBUS_KEY_A, 0x1EB2, -+IBUS_KEY_Multi_key, IBUS_KEY_U, IBUS_KEY_a, 0x1EB3, -+IBUS_KEY_Multi_key, IBUS_KEY_asciicircum, IBUS_KEY_A, 0x1EA8, -+IBUS_KEY_Multi_key, IBUS_KEY_asciicircum, IBUS_KEY_E, 0x1EC2, -+IBUS_KEY_Multi_key, IBUS_KEY_asciicircum, IBUS_KEY_O, 0x1ED4, -+IBUS_KEY_Multi_key, IBUS_KEY_asciicircum, IBUS_KEY_a, 0x1EA9, -+IBUS_KEY_Multi_key, IBUS_KEY_asciicircum, IBUS_KEY_e, 0x1EC3, -+IBUS_KEY_Multi_key, IBUS_KEY_asciicircum, IBUS_KEY_o, 0x1ED5, -+IBUS_KEY_Multi_key, IBUS_KEY_b, IBUS_KEY_A, 0x1EB2, -+IBUS_KEY_Multi_key, IBUS_KEY_b, IBUS_KEY_a, 0x1EB3, -+IBUS_KEY_space, 0x031B, -+IBUS_KEY_nobreakspace, 0x031B, -+IBUS_KEY_Utilde, 0x1EEE, -+IBUS_KEY_utilde, 0x1EEF, -+IBUS_KEY_dead_horn, 0x031B, -+IBUS_KEY_space, 0x002F, -+IBUS_KEY_2, 0x01BB, -+IBUS_KEY_A, 0x023A, -+IBUS_KEY_B, 0x0243, -+IBUS_KEY_C, 0x023B, -+IBUS_KEY_D, 0x0110, -+IBUS_KEY_E, 0x0246, -+IBUS_KEY_G, 0x01E4, -+IBUS_KEY_H, 0x0126, -+IBUS_KEY_I, 0x0197, -+IBUS_KEY_J, 0x0248, -+IBUS_KEY_L, 0x0141, -+IBUS_KEY_O, 0x00D8, -+IBUS_KEY_P, 0x2C63, -+IBUS_KEY_R, 0x024C, -+IBUS_KEY_T, 0x0166, -+IBUS_KEY_U, 0x0244, -+IBUS_KEY_Y, 0x024E, -+IBUS_KEY_Z, 0x01B5, -+IBUS_KEY_a, 0x2C65, -+IBUS_KEY_b, 0x0180, -+IBUS_KEY_c, 0x023C, -+IBUS_KEY_d, 0x0111, -+IBUS_KEY_e, 0x0247, -+IBUS_KEY_g, 0x01E5, -+IBUS_KEY_h, 0x0127, -+IBUS_KEY_i, 0x0268, -+IBUS_KEY_j, 0x0249, -+IBUS_KEY_l, 0x0142, -+IBUS_KEY_o, 0x00F8, -+IBUS_KEY_p, 0x1D7D, -+IBUS_KEY_r, 0x024D, -+IBUS_KEY_t, 0x0167, -+IBUS_KEY_u, 0x0289, -+IBUS_KEY_y, 0x024F, -+IBUS_KEY_z, 0x01B6, -+IBUS_KEY_nobreakspace, 0x0338, -+IBUS_KEY_Oacute, 0x01FE, -+IBUS_KEY_oacute, 0x01FF, -+0x0237, 0x025F, -+0x0269, 0x1D7C, -+IBUS_KEY_lessthanequal, 0x2270, -+IBUS_KEY_greaterthanequal, 0x2271, -+IBUS_KEY_dead_stroke, 0x002F, -+IBUS_KEY_dead_acute, IBUS_KEY_O, 0x01FE, -+IBUS_KEY_dead_acute, IBUS_KEY_o, 0x01FF, -+IBUS_KEY_dead_abovedot, IBUS_KEY_j, 0x025F, -+IBUS_KEY_dead_greek, IBUS_KEY_r, 0x03FC, -+IBUS_KEY_Greek_ALPHA, 0x1F08, -+IBUS_KEY_Greek_EPSILON, 0x1F18, -+IBUS_KEY_Greek_ETA, 0x1F28, -+IBUS_KEY_Greek_IOTA, 0x1F38, -+IBUS_KEY_Greek_OMICRON, 0x1F48, -+IBUS_KEY_Greek_OMEGA, 0x1F68, -+IBUS_KEY_Greek_alpha, 0x1F00, -+IBUS_KEY_Greek_epsilon, 0x1F10, -+IBUS_KEY_Greek_eta, 0x1F20, -+IBUS_KEY_Greek_iota, 0x1F30, -+IBUS_KEY_Greek_omicron, 0x1F40, -+IBUS_KEY_Greek_rho, 0x1FE4, -+IBUS_KEY_Greek_upsilon, 0x1F50, -+IBUS_KEY_Greek_omega, 0x1F60, -+IBUS_KEY_Greek_ALPHA, 0x1F09, -+IBUS_KEY_Greek_EPSILON, 0x1F19, -+IBUS_KEY_Greek_ETA, 0x1F29, -+IBUS_KEY_Greek_IOTA, 0x1F39, -+IBUS_KEY_Greek_OMICRON, 0x1F49, -+IBUS_KEY_Greek_RHO, 0x1FEC, -+IBUS_KEY_Greek_UPSILON, 0x1F59, -+IBUS_KEY_Greek_OMEGA, 0x1F69, -+IBUS_KEY_Greek_alpha, 0x1F01, -+IBUS_KEY_Greek_epsilon, 0x1F11, -+IBUS_KEY_Greek_eta, 0x1F21, -+IBUS_KEY_Greek_iota, 0x1F31, -+IBUS_KEY_Greek_omicron, 0x1F41, -+IBUS_KEY_Greek_rho, 0x1FE5, -+IBUS_KEY_Greek_upsilon, 0x1F51, -+IBUS_KEY_Greek_omega, 0x1F61, -+IBUS_KEY_bar, 0x2AF0, -+IBUS_KEY_plus, 0x2A26, -+IBUS_KEY_dead_diaeresis, IBUS_KEY_equal, 0x2A77, -+IBUS_KEY_space, 0x002C, -+IBUS_KEY_S, 0x0218, -+IBUS_KEY_T, 0x021A, -+IBUS_KEY_s, 0x0219, -+IBUS_KEY_t, 0x021B, -+IBUS_KEY_nobreakspace, 0x0326, -+IBUS_KEY_dead_belowcomma, 0x002C, -+IBUS_KEY_space, 0x00A4, -+IBUS_KEY_A, 0x20B3, -+IBUS_KEY_B, 0x20B1, -+IBUS_KEY_C, 0x20A1, -+IBUS_KEY_D, 0x20AF, -+IBUS_KEY_E, 0x20A0, -+IBUS_KEY_F, 0x20A3, -+IBUS_KEY_G, 0x20B2, -+IBUS_KEY_H, 0x20B4, -+IBUS_KEY_I, 0x17DB, -+IBUS_KEY_K, 0x20AD, -+IBUS_KEY_L, 0x20A4, -+IBUS_KEY_M, 0x2133, -+IBUS_KEY_N, 0x20A6, -+IBUS_KEY_O, 0x0AF1, -+IBUS_KEY_P, 0x20A7, -+IBUS_KEY_R, 0x20A8, -+IBUS_KEY_S, 0x0024, -+IBUS_KEY_T, 0x20AE, -+IBUS_KEY_U, 0x5713, -+IBUS_KEY_W, 0x20A9, -+IBUS_KEY_Y, 0x5186, -+IBUS_KEY_a, 0x060B, -+IBUS_KEY_b, 0x0E3F, -+IBUS_KEY_c, 0x00A2, -+IBUS_KEY_d, 0x20AB, -+IBUS_KEY_e, 0x20AC, -+IBUS_KEY_f, 0x0192, -+IBUS_KEY_g, 0x20B2, -+IBUS_KEY_h, 0x20B4, -+IBUS_KEY_i, 0xFDFC, -+IBUS_KEY_k, 0x20AD, -+IBUS_KEY_l, 0x00A3, -+IBUS_KEY_m, 0x20A5, -+IBUS_KEY_n, 0x20A6, -+IBUS_KEY_o, 0x0BF9, -+IBUS_KEY_p, 0x20B0, -+IBUS_KEY_r, 0x20A2, -+IBUS_KEY_s, 0x20AA, -+IBUS_KEY_t, 0x09F3, -+IBUS_KEY_u, 0x5143, -+IBUS_KEY_w, 0x20A9, -+IBUS_KEY_y, 0x00A5, -+IBUS_KEY_nobreakspace, 0x00A4, -+IBUS_KEY_Ccedilla, 0x20B5, -+IBUS_KEY_THORN, 0x09F2, -+IBUS_KEY_ccedilla, 0x20B5, -+IBUS_KEY_thorn, 0x09F2, -+IBUS_KEY_dead_currency, 0x00A4, -+IBUS_KEY_dead_cedilla, IBUS_KEY_C, 0x20B5, -+IBUS_KEY_dead_cedilla, IBUS_KEY_c, 0x20B5, -+IBUS_KEY_space, 0x00B5, -+IBUS_KEY_A, 0x0391, -+IBUS_KEY_B, 0x0392, -+IBUS_KEY_D, 0x0394, -+IBUS_KEY_E, 0x0395, -+IBUS_KEY_F, 0x03A6, -+IBUS_KEY_G, 0x0393, -+IBUS_KEY_H, 0x0397, -+IBUS_KEY_I, 0x0399, -+IBUS_KEY_J, 0x0398, -+IBUS_KEY_K, 0x039A, -+IBUS_KEY_L, 0x039B, -+IBUS_KEY_M, 0x039C, -+IBUS_KEY_N, 0x039D, -+IBUS_KEY_O, 0x039F, -+IBUS_KEY_P, 0x03A0, -+IBUS_KEY_Q, 0x03A7, -+IBUS_KEY_R, 0x03A1, -+IBUS_KEY_S, 0x03A3, -+IBUS_KEY_T, 0x03A4, -+IBUS_KEY_U, 0x03A5, -+IBUS_KEY_W, 0x03A9, -+IBUS_KEY_X, 0x039E, -+IBUS_KEY_Y, 0x03A8, -+IBUS_KEY_Z, 0x0396, -+IBUS_KEY_a, 0x03B1, -+IBUS_KEY_b, 0x03B2, -+IBUS_KEY_d, 0x03B4, -+IBUS_KEY_e, 0x03B5, -+IBUS_KEY_f, 0x03C6, -+IBUS_KEY_g, 0x03B3, -+IBUS_KEY_h, 0x03B7, -+IBUS_KEY_i, 0x03B9, -+IBUS_KEY_j, 0x03B8, -+IBUS_KEY_k, 0x03BA, -+IBUS_KEY_l, 0x03BB, -+IBUS_KEY_m, 0x03BC, -+IBUS_KEY_n, 0x03BD, -+IBUS_KEY_o, 0x03BF, -+IBUS_KEY_p, 0x03C0, -+IBUS_KEY_q, 0x03C7, -+IBUS_KEY_r, 0x03C1, -+IBUS_KEY_s, 0x03C3, -+IBUS_KEY_t, 0x03C4, -+IBUS_KEY_u, 0x03C5, -+IBUS_KEY_w, 0x03C9, -+IBUS_KEY_x, 0x03BE, -+IBUS_KEY_y, 0x03C8, -+IBUS_KEY_z, 0x03B6, -+IBUS_KEY_nobreakspace, 0x00B5, -+IBUS_KEY_dead_greek, 0x00B5, -+IBUS_KEY_dead_macron, IBUS_KEY_A, 0x1FB9, -+IBUS_KEY_dead_macron, IBUS_KEY_I, 0x1FD9, -+IBUS_KEY_dead_macron, IBUS_KEY_U, 0x1FE9, -+IBUS_KEY_dead_macron, IBUS_KEY_a, 0x1FB1, -+IBUS_KEY_dead_macron, IBUS_KEY_i, 0x1FD1, -+IBUS_KEY_dead_macron, IBUS_KEY_u, 0x1FE1, -+IBUS_KEY_dead_hook, IBUS_KEY_U, 0x03D2, -+IBUS_KEY_dead_stroke, IBUS_KEY_r, 0x03FC, -+IBUS_KEY_space, IBUS_KEY_space, 0x00A0, -+IBUS_KEY_space, IBUS_KEY_apostrophe, 0x0027, -+IBUS_KEY_space, IBUS_KEY_parenleft, 0x02D8, -+IBUS_KEY_space, IBUS_KEY_comma, 0x00B8, -+IBUS_KEY_space, IBUS_KEY_minus, 0x007E, -+IBUS_KEY_space, IBUS_KEY_period, 0x2008, -+IBUS_KEY_space, IBUS_KEY_less, 0x02C7, -+IBUS_KEY_space, IBUS_KEY_greater, 0x005E, -+IBUS_KEY_space, IBUS_KEY_asciicircum, 0x005E, -+IBUS_KEY_space, IBUS_KEY_grave, 0x0060, -+IBUS_KEY_space, IBUS_KEY_asciitilde, 0x007E, -+IBUS_KEY_exclam, IBUS_KEY_exclam, 0x00A1, -+IBUS_KEY_exclam, IBUS_KEY_question, 0x203D, -+IBUS_KEY_exclam, IBUS_KEY_A, 0x1EA0, -+IBUS_KEY_exclam, IBUS_KEY_B, 0x1E04, -+IBUS_KEY_exclam, IBUS_KEY_D, 0x1E0C, -+IBUS_KEY_exclam, IBUS_KEY_E, 0x1EB8, -+IBUS_KEY_exclam, IBUS_KEY_H, 0x1E24, -+IBUS_KEY_exclam, IBUS_KEY_I, 0x1ECA, -+IBUS_KEY_exclam, IBUS_KEY_K, 0x1E32, -+IBUS_KEY_exclam, IBUS_KEY_L, 0x1E36, -+IBUS_KEY_exclam, IBUS_KEY_M, 0x1E42, -+IBUS_KEY_exclam, IBUS_KEY_N, 0x1E46, -+IBUS_KEY_exclam, IBUS_KEY_O, 0x1ECC, -+IBUS_KEY_exclam, IBUS_KEY_P, 0x00B6, -+IBUS_KEY_exclam, IBUS_KEY_R, 0x1E5A, -+IBUS_KEY_exclam, IBUS_KEY_S, 0x1E62, -+IBUS_KEY_exclam, IBUS_KEY_T, 0x1E6C, -+IBUS_KEY_exclam, IBUS_KEY_U, 0x1EE4, -+IBUS_KEY_exclam, IBUS_KEY_V, 0x1E7E, -+IBUS_KEY_exclam, IBUS_KEY_W, 0x1E88, -+IBUS_KEY_exclam, IBUS_KEY_Y, 0x1EF4, -+IBUS_KEY_exclam, IBUS_KEY_Z, 0x1E92, -+IBUS_KEY_exclam, IBUS_KEY_asciicircum, 0x00A6, -+IBUS_KEY_exclam, IBUS_KEY_a, 0x1EA1, -+IBUS_KEY_exclam, IBUS_KEY_b, 0x1E05, -+IBUS_KEY_exclam, IBUS_KEY_d, 0x1E0D, -+IBUS_KEY_exclam, IBUS_KEY_e, 0x1EB9, -+IBUS_KEY_exclam, IBUS_KEY_h, 0x1E25, -+IBUS_KEY_exclam, IBUS_KEY_i, 0x1ECB, -+IBUS_KEY_exclam, IBUS_KEY_k, 0x1E33, -+IBUS_KEY_exclam, IBUS_KEY_l, 0x1E37, -+IBUS_KEY_exclam, IBUS_KEY_m, 0x1E43, -+IBUS_KEY_exclam, IBUS_KEY_n, 0x1E47, -+IBUS_KEY_exclam, IBUS_KEY_o, 0x1ECD, -+IBUS_KEY_exclam, IBUS_KEY_p, 0x00B6, -+IBUS_KEY_exclam, IBUS_KEY_r, 0x1E5B, -+IBUS_KEY_exclam, IBUS_KEY_s, 0x1E63, -+IBUS_KEY_exclam, IBUS_KEY_t, 0x1E6D, -+IBUS_KEY_exclam, IBUS_KEY_u, 0x1EE5, -+IBUS_KEY_exclam, IBUS_KEY_v, 0x1E7F, -+IBUS_KEY_exclam, IBUS_KEY_w, 0x1E89, -+IBUS_KEY_exclam, IBUS_KEY_y, 0x1EF5, -+IBUS_KEY_exclam, IBUS_KEY_z, 0x1E93, -+IBUS_KEY_quotedbl, IBUS_KEY_quotedbl, 0x00A8, -+IBUS_KEY_quotedbl, IBUS_KEY_apostrophe, 0x0344, -+IBUS_KEY_quotedbl, IBUS_KEY_comma, 0x201E, -+IBUS_KEY_quotedbl, IBUS_KEY_less, 0x201C, -+IBUS_KEY_quotedbl, IBUS_KEY_greater, 0x201D, -+IBUS_KEY_quotedbl, IBUS_KEY_A, 0x00C4, -+IBUS_KEY_quotedbl, IBUS_KEY_E, 0x00CB, -+IBUS_KEY_quotedbl, IBUS_KEY_H, 0x1E26, -+IBUS_KEY_quotedbl, IBUS_KEY_I, 0x00CF, -+IBUS_KEY_quotedbl, IBUS_KEY_O, 0x00D6, -+IBUS_KEY_quotedbl, IBUS_KEY_U, 0x00DC, -+IBUS_KEY_quotedbl, IBUS_KEY_W, 0x1E84, -+IBUS_KEY_quotedbl, IBUS_KEY_X, 0x1E8C, -+IBUS_KEY_quotedbl, IBUS_KEY_Y, 0x0178, -+IBUS_KEY_quotedbl, IBUS_KEY_a, 0x00E4, -+IBUS_KEY_quotedbl, IBUS_KEY_e, 0x00EB, -+IBUS_KEY_quotedbl, IBUS_KEY_h, 0x1E27, -+IBUS_KEY_quotedbl, IBUS_KEY_i, 0x00EF, -+IBUS_KEY_quotedbl, IBUS_KEY_o, 0x00F6, -+IBUS_KEY_quotedbl, IBUS_KEY_t, 0x1E97, -+IBUS_KEY_quotedbl, IBUS_KEY_u, 0x00FC, -+IBUS_KEY_quotedbl, IBUS_KEY_w, 0x1E85, -+IBUS_KEY_quotedbl, IBUS_KEY_x, 0x1E8D, -+IBUS_KEY_quotedbl, IBUS_KEY_y, 0x00FF, -+IBUS_KEY_quotedbl, IBUS_KEY_acute, 0x0344, -+IBUS_KEY_quotedbl, IBUS_KEY_Otilde, 0x1E4E, -+IBUS_KEY_quotedbl, IBUS_KEY_otilde, 0x1E4F, -+IBUS_KEY_quotedbl, 0x03D2, 0x03D4, -+IBUS_KEY_quotedbl, IBUS_KEY_Umacron, 0x1E7A, -+IBUS_KEY_quotedbl, IBUS_KEY_umacron, 0x1E7B, -+IBUS_KEY_quotedbl, 0x04D8, 0x04DA, -+IBUS_KEY_quotedbl, 0x04D9, 0x04DB, -+IBUS_KEY_quotedbl, 0x04E8, 0x04EA, -+IBUS_KEY_quotedbl, 0x04E9, 0x04EB, -+IBUS_KEY_quotedbl, IBUS_KEY_Ukrainian_i, 0x0457, -+IBUS_KEY_quotedbl, IBUS_KEY_Ukrainian_I, 0x0407, -+IBUS_KEY_quotedbl, IBUS_KEY_Cyrillic_a, 0x04D3, -+IBUS_KEY_quotedbl, IBUS_KEY_Cyrillic_ie, 0x0451, -+IBUS_KEY_quotedbl, IBUS_KEY_Cyrillic_i, 0x04E5, -+IBUS_KEY_quotedbl, IBUS_KEY_Cyrillic_o, 0x04E7, -+IBUS_KEY_quotedbl, IBUS_KEY_Cyrillic_u, 0x04F1, -+IBUS_KEY_quotedbl, IBUS_KEY_Cyrillic_zhe, 0x04DD, -+IBUS_KEY_quotedbl, IBUS_KEY_Cyrillic_yeru, 0x04F9, -+IBUS_KEY_quotedbl, IBUS_KEY_Cyrillic_ze, 0x04DF, -+IBUS_KEY_quotedbl, IBUS_KEY_Cyrillic_e, 0x04ED, -+IBUS_KEY_quotedbl, IBUS_KEY_Cyrillic_che, 0x04F5, -+IBUS_KEY_quotedbl, IBUS_KEY_Cyrillic_A, 0x04D2, -+IBUS_KEY_quotedbl, IBUS_KEY_Cyrillic_IE, 0x0401, -+IBUS_KEY_quotedbl, IBUS_KEY_Cyrillic_I, 0x04E4, -+IBUS_KEY_quotedbl, IBUS_KEY_Cyrillic_O, 0x04E6, -+IBUS_KEY_quotedbl, IBUS_KEY_Cyrillic_U, 0x04F0, -+IBUS_KEY_quotedbl, IBUS_KEY_Cyrillic_ZHE, 0x04DC, -+IBUS_KEY_quotedbl, IBUS_KEY_Cyrillic_YERU, 0x04F8, -+IBUS_KEY_quotedbl, IBUS_KEY_Cyrillic_ZE, 0x04DE, -+IBUS_KEY_quotedbl, IBUS_KEY_Cyrillic_E, 0x04EC, -+IBUS_KEY_quotedbl, IBUS_KEY_Cyrillic_CHE, 0x04F4, -+IBUS_KEY_quotedbl, IBUS_KEY_Greek_IOTA, 0x03AA, -+IBUS_KEY_quotedbl, IBUS_KEY_Greek_UPSILON, 0x03AB, -+IBUS_KEY_quotedbl, IBUS_KEY_Greek_iota, 0x03CA, -+IBUS_KEY_quotedbl, IBUS_KEY_Greek_upsilon, 0x03CB, -+IBUS_KEY_quotedbl, IBUS_KEY_dead_acute, 0x0344, -+IBUS_KEY_numbersign, IBUS_KEY_numbersign, 0x266F, -+IBUS_KEY_numbersign, IBUS_KEY_E, 0x266B, -+IBUS_KEY_numbersign, IBUS_KEY_S, 0x266C, -+IBUS_KEY_numbersign, IBUS_KEY_b, 0x266D, -+IBUS_KEY_numbersign, IBUS_KEY_e, 0x266A, -+IBUS_KEY_numbersign, IBUS_KEY_f, 0x266E, -+IBUS_KEY_numbersign, IBUS_KEY_q, 0x2669, -+IBUS_KEY_percent, IBUS_KEY_o, 0x2030, -+IBUS_KEY_apostrophe, IBUS_KEY_space, 0x0027, -+IBUS_KEY_apostrophe, IBUS_KEY_apostrophe, 0x00B4, -+IBUS_KEY_apostrophe, IBUS_KEY_comma, 0x201A, -+IBUS_KEY_apostrophe, IBUS_KEY_less, 0x2018, -+IBUS_KEY_apostrophe, IBUS_KEY_greater, 0x2019, -+IBUS_KEY_apostrophe, IBUS_KEY_A, 0x00C1, -+IBUS_KEY_apostrophe, IBUS_KEY_C, 0x0106, -+IBUS_KEY_apostrophe, IBUS_KEY_E, 0x00C9, -+IBUS_KEY_apostrophe, IBUS_KEY_G, 0x01F4, -+IBUS_KEY_apostrophe, IBUS_KEY_I, 0x00CD, -+IBUS_KEY_apostrophe, IBUS_KEY_K, 0x1E30, -+IBUS_KEY_apostrophe, IBUS_KEY_L, 0x0139, -+IBUS_KEY_apostrophe, IBUS_KEY_M, 0x1E3E, -+IBUS_KEY_apostrophe, IBUS_KEY_N, 0x0143, -+IBUS_KEY_apostrophe, IBUS_KEY_O, 0x00D3, -+IBUS_KEY_apostrophe, IBUS_KEY_P, 0x1E54, -+IBUS_KEY_apostrophe, IBUS_KEY_R, 0x0154, -+IBUS_KEY_apostrophe, IBUS_KEY_S, 0x015A, -+IBUS_KEY_apostrophe, IBUS_KEY_U, 0x00DA, -+IBUS_KEY_apostrophe, IBUS_KEY_W, 0x1E82, -+IBUS_KEY_apostrophe, IBUS_KEY_Y, 0x00DD, -+IBUS_KEY_apostrophe, IBUS_KEY_Z, 0x0179, -+IBUS_KEY_apostrophe, IBUS_KEY_a, 0x00E1, -+IBUS_KEY_apostrophe, IBUS_KEY_c, 0x0107, -+IBUS_KEY_apostrophe, IBUS_KEY_e, 0x00E9, -+IBUS_KEY_apostrophe, IBUS_KEY_g, 0x01F5, -+IBUS_KEY_apostrophe, IBUS_KEY_i, 0x00ED, -+IBUS_KEY_apostrophe, IBUS_KEY_k, 0x1E31, -+IBUS_KEY_apostrophe, IBUS_KEY_l, 0x013A, -+IBUS_KEY_apostrophe, IBUS_KEY_m, 0x1E3F, -+IBUS_KEY_apostrophe, IBUS_KEY_n, 0x0144, -+IBUS_KEY_apostrophe, IBUS_KEY_o, 0x00F3, -+IBUS_KEY_apostrophe, IBUS_KEY_p, 0x1E55, -+IBUS_KEY_apostrophe, IBUS_KEY_r, 0x0155, -+IBUS_KEY_apostrophe, IBUS_KEY_s, 0x015B, -+IBUS_KEY_apostrophe, IBUS_KEY_u, 0x00FA, -+IBUS_KEY_apostrophe, IBUS_KEY_w, 0x1E83, -+IBUS_KEY_apostrophe, IBUS_KEY_y, 0x00FD, -+IBUS_KEY_apostrophe, IBUS_KEY_z, 0x017A, -+IBUS_KEY_apostrophe, IBUS_KEY_Acircumflex, 0x1EA4, -+IBUS_KEY_apostrophe, IBUS_KEY_Aring, 0x01FA, -+IBUS_KEY_apostrophe, IBUS_KEY_AE, 0x01FC, -+IBUS_KEY_apostrophe, IBUS_KEY_Ccedilla, 0x1E08, -+IBUS_KEY_apostrophe, IBUS_KEY_Ecircumflex, 0x1EBE, -+IBUS_KEY_apostrophe, IBUS_KEY_Idiaeresis, 0x1E2E, -+IBUS_KEY_apostrophe, IBUS_KEY_Ocircumflex, 0x1ED0, -+IBUS_KEY_apostrophe, IBUS_KEY_Otilde, 0x1E4C, -+IBUS_KEY_apostrophe, IBUS_KEY_Ooblique, 0x01FE, -+IBUS_KEY_apostrophe, IBUS_KEY_Udiaeresis, 0x01D7, -+IBUS_KEY_apostrophe, IBUS_KEY_acircumflex, 0x1EA5, -+IBUS_KEY_apostrophe, IBUS_KEY_aring, 0x01FB, -+IBUS_KEY_apostrophe, IBUS_KEY_ae, 0x01FD, -+IBUS_KEY_apostrophe, IBUS_KEY_ccedilla, 0x1E09, -+IBUS_KEY_apostrophe, IBUS_KEY_ecircumflex, 0x1EBF, -+IBUS_KEY_apostrophe, IBUS_KEY_idiaeresis, 0x1E2F, -+IBUS_KEY_apostrophe, IBUS_KEY_ocircumflex, 0x1ED1, -+IBUS_KEY_apostrophe, IBUS_KEY_otilde, 0x1E4D, -+IBUS_KEY_apostrophe, IBUS_KEY_oslash, 0x01FF, -+IBUS_KEY_apostrophe, IBUS_KEY_udiaeresis, 0x01D8, -+IBUS_KEY_apostrophe, IBUS_KEY_Abreve, 0x1EAE, -+IBUS_KEY_apostrophe, IBUS_KEY_abreve, 0x1EAF, -+IBUS_KEY_apostrophe, IBUS_KEY_Emacron, 0x1E16, -+IBUS_KEY_apostrophe, IBUS_KEY_emacron, 0x1E17, -+IBUS_KEY_apostrophe, IBUS_KEY_Omacron, 0x1E52, -+IBUS_KEY_apostrophe, IBUS_KEY_Utilde, 0x1E78, -+IBUS_KEY_apostrophe, IBUS_KEY_omacron, 0x1E53, -+IBUS_KEY_apostrophe, IBUS_KEY_utilde, 0x1E79, -+IBUS_KEY_apostrophe, IBUS_KEY_Cyrillic_ghe, 0x0453, -+IBUS_KEY_apostrophe, IBUS_KEY_Cyrillic_ka, 0x045C, -+IBUS_KEY_apostrophe, IBUS_KEY_Cyrillic_GHE, 0x0403, -+IBUS_KEY_apostrophe, IBUS_KEY_Cyrillic_KA, 0x040C, -+IBUS_KEY_apostrophe, IBUS_KEY_Greek_iotadieresis, 0x0390, -+IBUS_KEY_apostrophe, IBUS_KEY_Greek_upsilondieresis, 0x03B0, -+IBUS_KEY_apostrophe, IBUS_KEY_Greek_ALPHA, 0x0386, -+IBUS_KEY_apostrophe, IBUS_KEY_Greek_EPSILON, 0x0388, -+IBUS_KEY_apostrophe, IBUS_KEY_Greek_ETA, 0x0389, -+IBUS_KEY_apostrophe, IBUS_KEY_Greek_IOTA, 0x038A, -+IBUS_KEY_apostrophe, IBUS_KEY_Greek_OMICRON, 0x038C, -+IBUS_KEY_apostrophe, IBUS_KEY_Greek_UPSILON, 0x038E, -+IBUS_KEY_apostrophe, IBUS_KEY_Greek_OMEGA, 0x038F, -+IBUS_KEY_apostrophe, IBUS_KEY_Greek_alpha, 0x03AC, -+IBUS_KEY_apostrophe, IBUS_KEY_Greek_epsilon, 0x03AD, -+IBUS_KEY_apostrophe, IBUS_KEY_Greek_eta, 0x03AE, -+IBUS_KEY_apostrophe, IBUS_KEY_Greek_iota, 0x03AF, -+IBUS_KEY_apostrophe, IBUS_KEY_Greek_omicron, 0x03CC, -+IBUS_KEY_apostrophe, IBUS_KEY_Greek_upsilon, 0x03CD, -+IBUS_KEY_apostrophe, IBUS_KEY_Greek_omega, 0x03CE, -+IBUS_KEY_apostrophe, 0x1F00, 0x1F04, -+IBUS_KEY_apostrophe, 0x1F01, 0x1F05, -+IBUS_KEY_apostrophe, 0x1F08, 0x1F0C, -+IBUS_KEY_apostrophe, 0x1F09, 0x1F0D, -+IBUS_KEY_apostrophe, 0x1F10, 0x1F14, -+IBUS_KEY_apostrophe, 0x1F11, 0x1F15, -+IBUS_KEY_apostrophe, 0x1F18, 0x1F1C, -+IBUS_KEY_apostrophe, 0x1F19, 0x1F1D, -+IBUS_KEY_apostrophe, 0x1F20, 0x1F24, -+IBUS_KEY_apostrophe, 0x1F21, 0x1F25, -+IBUS_KEY_apostrophe, 0x1F28, 0x1F2C, -+IBUS_KEY_apostrophe, 0x1F29, 0x1F2D, -+IBUS_KEY_apostrophe, 0x1F30, 0x1F34, -+IBUS_KEY_apostrophe, 0x1F31, 0x1F35, -+IBUS_KEY_apostrophe, 0x1F38, 0x1F3C, -+IBUS_KEY_apostrophe, 0x1F39, 0x1F3D, -+IBUS_KEY_apostrophe, 0x1F40, 0x1F44, -+IBUS_KEY_apostrophe, 0x1F41, 0x1F45, -+IBUS_KEY_apostrophe, 0x1F48, 0x1F4C, -+IBUS_KEY_apostrophe, 0x1F49, 0x1F4D, -+IBUS_KEY_apostrophe, 0x1F50, 0x1F54, -+IBUS_KEY_apostrophe, 0x1F51, 0x1F55, -+IBUS_KEY_apostrophe, 0x1F59, 0x1F5D, -+IBUS_KEY_apostrophe, 0x1F60, 0x1F64, -+IBUS_KEY_apostrophe, 0x1F61, 0x1F65, -+IBUS_KEY_apostrophe, 0x1F68, 0x1F6C, -+IBUS_KEY_apostrophe, 0x1F69, 0x1F6D, -+IBUS_KEY_apostrophe, 0x2395, 0x235E, -+IBUS_KEY_parenleft, IBUS_KEY_space, 0x02D8, -+IBUS_KEY_parenleft, IBUS_KEY_parenleft, 0x005B, -+IBUS_KEY_parenleft, IBUS_KEY_minus, 0x007B, -+IBUS_KEY_parenleft, IBUS_KEY_A, 0x0102, -+IBUS_KEY_parenleft, IBUS_KEY_G, 0x011E, -+IBUS_KEY_parenleft, IBUS_KEY_a, 0x0103, -+IBUS_KEY_parenleft, IBUS_KEY_c, 0x00A9, -+IBUS_KEY_parenleft, IBUS_KEY_g, 0x011F, -+IBUS_KEY_parenleft, IBUS_KEY_r, 0x00AE, -+IBUS_KEY_parenleft, IBUS_KEY_Greek_ALPHA, 0x1F09, -+IBUS_KEY_parenleft, IBUS_KEY_Greek_EPSILON, 0x1F19, -+IBUS_KEY_parenleft, IBUS_KEY_Greek_ETA, 0x1F29, -+IBUS_KEY_parenleft, IBUS_KEY_Greek_IOTA, 0x1F39, -+IBUS_KEY_parenleft, IBUS_KEY_Greek_OMICRON, 0x1F49, -+IBUS_KEY_parenleft, IBUS_KEY_Greek_RHO, 0x1FEC, -+IBUS_KEY_parenleft, IBUS_KEY_Greek_UPSILON, 0x1F59, -+IBUS_KEY_parenleft, IBUS_KEY_Greek_OMEGA, 0x1F69, -+IBUS_KEY_parenleft, IBUS_KEY_Greek_alpha, 0x1F01, -+IBUS_KEY_parenleft, IBUS_KEY_Greek_epsilon, 0x1F11, -+IBUS_KEY_parenleft, IBUS_KEY_Greek_eta, 0x1F21, -+IBUS_KEY_parenleft, IBUS_KEY_Greek_iota, 0x1F31, -+IBUS_KEY_parenleft, IBUS_KEY_Greek_omicron, 0x1F41, -+IBUS_KEY_parenleft, IBUS_KEY_Greek_rho, 0x1FE5, -+IBUS_KEY_parenleft, IBUS_KEY_Greek_upsilon, 0x1F51, -+IBUS_KEY_parenleft, IBUS_KEY_Greek_omega, 0x1F61, -+IBUS_KEY_parenright, IBUS_KEY_parenright, 0x005D, -+IBUS_KEY_parenright, IBUS_KEY_minus, 0x007D, -+IBUS_KEY_parenright, IBUS_KEY_Greek_ALPHA, 0x1F08, -+IBUS_KEY_parenright, IBUS_KEY_Greek_EPSILON, 0x1F18, -+IBUS_KEY_parenright, IBUS_KEY_Greek_ETA, 0x1F28, -+IBUS_KEY_parenright, IBUS_KEY_Greek_IOTA, 0x1F38, -+IBUS_KEY_parenright, IBUS_KEY_Greek_OMICRON, 0x1F48, -+IBUS_KEY_parenright, IBUS_KEY_Greek_OMEGA, 0x1F68, -+IBUS_KEY_parenright, IBUS_KEY_Greek_alpha, 0x1F00, -+IBUS_KEY_parenright, IBUS_KEY_Greek_epsilon, 0x1F10, -+IBUS_KEY_parenright, IBUS_KEY_Greek_eta, 0x1F20, -+IBUS_KEY_parenright, IBUS_KEY_Greek_iota, 0x1F30, -+IBUS_KEY_parenright, IBUS_KEY_Greek_omicron, 0x1F40, -+IBUS_KEY_parenright, IBUS_KEY_Greek_rho, 0x1FE4, -+IBUS_KEY_parenright, IBUS_KEY_Greek_upsilon, 0x1F50, -+IBUS_KEY_parenright, IBUS_KEY_Greek_omega, 0x1F60, -+IBUS_KEY_asterisk, IBUS_KEY_0, 0x00B0, -+IBUS_KEY_asterisk, IBUS_KEY_A, 0x00C5, -+IBUS_KEY_asterisk, IBUS_KEY_U, 0x016E, -+IBUS_KEY_asterisk, IBUS_KEY_a, 0x00E5, -+IBUS_KEY_asterisk, IBUS_KEY_u, 0x016F, -+IBUS_KEY_asterisk, IBUS_KEY_diaeresis, 0x2363, -+IBUS_KEY_asterisk, IBUS_KEY_emopencircle, 0x235F, -+IBUS_KEY_plus, IBUS_KEY_plus, 0x0023, -+IBUS_KEY_plus, IBUS_KEY_minus, 0x00B1, -+IBUS_KEY_plus, IBUS_KEY_O, 0x01A0, -+IBUS_KEY_plus, IBUS_KEY_U, 0x01AF, -+IBUS_KEY_plus, IBUS_KEY_o, 0x01A1, -+IBUS_KEY_plus, IBUS_KEY_u, 0x01B0, -+IBUS_KEY_comma, IBUS_KEY_space, 0x00B8, -+IBUS_KEY_comma, IBUS_KEY_quotedbl, 0x201E, -+IBUS_KEY_comma, IBUS_KEY_apostrophe, 0x201A, -+IBUS_KEY_comma, IBUS_KEY_comma, 0x00B8, -+IBUS_KEY_comma, IBUS_KEY_minus, 0x00AC, -+IBUS_KEY_comma, IBUS_KEY_A, 0x0104, -+IBUS_KEY_comma, IBUS_KEY_C, 0x00C7, -+IBUS_KEY_comma, IBUS_KEY_D, 0x1E10, -+IBUS_KEY_comma, IBUS_KEY_E, 0x0118, -+IBUS_KEY_comma, IBUS_KEY_G, 0x0122, -+IBUS_KEY_comma, IBUS_KEY_H, 0x1E28, -+IBUS_KEY_comma, IBUS_KEY_I, 0x012E, -+IBUS_KEY_comma, IBUS_KEY_K, 0x0136, -+IBUS_KEY_comma, IBUS_KEY_L, 0x013B, -+IBUS_KEY_comma, IBUS_KEY_N, 0x0145, -+IBUS_KEY_comma, IBUS_KEY_O, 0x01EA, -+IBUS_KEY_comma, IBUS_KEY_R, 0x0156, -+IBUS_KEY_comma, IBUS_KEY_S, 0x015E, -+IBUS_KEY_comma, IBUS_KEY_T, 0x0162, -+IBUS_KEY_comma, IBUS_KEY_U, 0x0172, -+IBUS_KEY_comma, IBUS_KEY_a, 0x0105, -+IBUS_KEY_comma, IBUS_KEY_c, 0x00E7, -+IBUS_KEY_comma, IBUS_KEY_d, 0x1E11, -+IBUS_KEY_comma, IBUS_KEY_e, 0x0119, -+IBUS_KEY_comma, IBUS_KEY_g, 0x0123, -+IBUS_KEY_comma, IBUS_KEY_h, 0x1E29, -+IBUS_KEY_comma, IBUS_KEY_i, 0x012F, -+IBUS_KEY_comma, IBUS_KEY_k, 0x0137, -+IBUS_KEY_comma, IBUS_KEY_l, 0x013C, -+IBUS_KEY_comma, IBUS_KEY_n, 0x0146, -+IBUS_KEY_comma, IBUS_KEY_o, 0x01EB, -+IBUS_KEY_comma, IBUS_KEY_r, 0x0157, -+IBUS_KEY_comma, IBUS_KEY_s, 0x015F, -+IBUS_KEY_comma, IBUS_KEY_t, 0x0163, -+IBUS_KEY_comma, IBUS_KEY_u, 0x0173, -+IBUS_KEY_minus, IBUS_KEY_space, 0x007E, -+IBUS_KEY_minus, IBUS_KEY_parenleft, 0x007B, -+IBUS_KEY_minus, IBUS_KEY_parenright, 0x007D, -+IBUS_KEY_minus, IBUS_KEY_plus, 0x00B1, -+IBUS_KEY_minus, IBUS_KEY_comma, 0x00AC, -+IBUS_KEY_minus, IBUS_KEY_slash, 0x233F, -+IBUS_KEY_minus, IBUS_KEY_colon, 0x00F7, -+IBUS_KEY_minus, IBUS_KEY_greater, 0x2192, -+IBUS_KEY_minus, IBUS_KEY_A, 0x0100, -+IBUS_KEY_minus, IBUS_KEY_D, 0x0110, -+IBUS_KEY_minus, IBUS_KEY_E, 0x0112, -+IBUS_KEY_minus, IBUS_KEY_I, 0x012A, -+IBUS_KEY_minus, IBUS_KEY_L, 0x00A3, -+IBUS_KEY_minus, IBUS_KEY_N, 0x00D1, -+IBUS_KEY_minus, IBUS_KEY_O, 0x014C, -+IBUS_KEY_minus, IBUS_KEY_U, 0x016A, -+IBUS_KEY_minus, IBUS_KEY_Y, 0x00A5, -+IBUS_KEY_minus, IBUS_KEY_backslash, 0x2340, -+IBUS_KEY_minus, IBUS_KEY_asciicircum, 0x00AF, -+IBUS_KEY_minus, IBUS_KEY_a, 0x0101, -+IBUS_KEY_minus, IBUS_KEY_d, 0x0111, -+IBUS_KEY_minus, IBUS_KEY_e, 0x0113, -+IBUS_KEY_minus, IBUS_KEY_i, 0x012B, -+IBUS_KEY_minus, IBUS_KEY_l, 0x00A3, -+IBUS_KEY_minus, IBUS_KEY_n, 0x00F1, -+IBUS_KEY_minus, IBUS_KEY_o, 0x014D, -+IBUS_KEY_minus, IBUS_KEY_u, 0x016B, -+IBUS_KEY_minus, IBUS_KEY_y, 0x00A5, -+IBUS_KEY_minus, 0x2191, 0x234F, -+IBUS_KEY_minus, 0x2193, 0x2356, -+IBUS_KEY_minus, IBUS_KEY_emopencircle, 0x2296, -+IBUS_KEY_period, IBUS_KEY_minus, 0x00B7, -+IBUS_KEY_period, IBUS_KEY_period, 0x2026, -+IBUS_KEY_period, IBUS_KEY_colon, 0x2235, -+IBUS_KEY_period, IBUS_KEY_less, 0x2039, -+IBUS_KEY_period, IBUS_KEY_equal, 0x2022, -+IBUS_KEY_period, IBUS_KEY_greater, 0x203A, -+IBUS_KEY_period, IBUS_KEY_A, 0x0226, -+IBUS_KEY_period, IBUS_KEY_B, 0x1E02, -+IBUS_KEY_period, IBUS_KEY_C, 0x010A, -+IBUS_KEY_period, IBUS_KEY_D, 0x1E0A, -+IBUS_KEY_period, IBUS_KEY_E, 0x0116, -+IBUS_KEY_period, IBUS_KEY_F, 0x1E1E, -+IBUS_KEY_period, IBUS_KEY_G, 0x0120, -+IBUS_KEY_period, IBUS_KEY_H, 0x1E22, -+IBUS_KEY_period, IBUS_KEY_I, 0x0130, -+IBUS_KEY_period, IBUS_KEY_M, 0x1E40, -+IBUS_KEY_period, IBUS_KEY_N, 0x1E44, -+IBUS_KEY_period, IBUS_KEY_O, 0x022E, -+IBUS_KEY_period, IBUS_KEY_P, 0x1E56, -+IBUS_KEY_period, IBUS_KEY_R, 0x1E58, -+IBUS_KEY_period, IBUS_KEY_S, 0x1E60, -+IBUS_KEY_period, IBUS_KEY_T, 0x1E6A, -+IBUS_KEY_period, IBUS_KEY_W, 0x1E86, -+IBUS_KEY_period, IBUS_KEY_X, 0x1E8A, -+IBUS_KEY_period, IBUS_KEY_Y, 0x1E8E, -+IBUS_KEY_period, IBUS_KEY_Z, 0x017B, -+IBUS_KEY_period, IBUS_KEY_asciicircum, 0x00B7, -+IBUS_KEY_period, IBUS_KEY_a, 0x0227, -+IBUS_KEY_period, IBUS_KEY_b, 0x1E03, -+IBUS_KEY_period, IBUS_KEY_c, 0x010B, -+IBUS_KEY_period, IBUS_KEY_d, 0x1E0B, -+IBUS_KEY_period, IBUS_KEY_e, 0x0117, -+IBUS_KEY_period, IBUS_KEY_f, 0x1E1F, -+IBUS_KEY_period, IBUS_KEY_g, 0x0121, -+IBUS_KEY_period, IBUS_KEY_h, 0x1E23, -+IBUS_KEY_period, IBUS_KEY_i, 0x0131, -+IBUS_KEY_period, IBUS_KEY_m, 0x1E41, -+IBUS_KEY_period, IBUS_KEY_n, 0x1E45, -+IBUS_KEY_period, IBUS_KEY_o, 0x022F, -+IBUS_KEY_period, IBUS_KEY_p, 0x1E57, -+IBUS_KEY_period, IBUS_KEY_r, 0x1E59, -+IBUS_KEY_period, IBUS_KEY_s, 0x1E61, -+IBUS_KEY_period, IBUS_KEY_t, 0x1E6B, -+IBUS_KEY_period, IBUS_KEY_w, 0x1E87, -+IBUS_KEY_period, IBUS_KEY_x, 0x1E8B, -+IBUS_KEY_period, IBUS_KEY_y, 0x1E8F, -+IBUS_KEY_period, IBUS_KEY_z, 0x017C, -+IBUS_KEY_period, 0x017F, 0x1E9B, -+IBUS_KEY_period, IBUS_KEY_Sacute, 0x1E64, -+IBUS_KEY_period, IBUS_KEY_Scaron, 0x1E66, -+IBUS_KEY_period, IBUS_KEY_sacute, 0x1E65, -+IBUS_KEY_period, IBUS_KEY_scaron, 0x1E67, -+IBUS_KEY_period, 0x1E62, 0x1E68, -+IBUS_KEY_period, 0x1E63, 0x1E69, -+IBUS_KEY_period, IBUS_KEY_emopencircle, 0x2299, -+IBUS_KEY_slash, IBUS_KEY_minus, 0x233F, -+IBUS_KEY_slash, IBUS_KEY_slash, 0x005C, -+IBUS_KEY_slash, IBUS_KEY_less, 0x005C, -+IBUS_KEY_slash, IBUS_KEY_equal, 0x2260, -+IBUS_KEY_slash, IBUS_KEY_C, 0x20A1, -+IBUS_KEY_slash, IBUS_KEY_D, 0x0110, -+IBUS_KEY_slash, IBUS_KEY_G, 0x01E4, -+IBUS_KEY_slash, IBUS_KEY_H, 0x0126, -+IBUS_KEY_slash, IBUS_KEY_I, 0x0197, -+IBUS_KEY_slash, IBUS_KEY_L, 0x0141, -+IBUS_KEY_slash, IBUS_KEY_O, 0x00D8, -+IBUS_KEY_slash, IBUS_KEY_T, 0x0166, -+IBUS_KEY_slash, IBUS_KEY_U, 0x00B5, -+IBUS_KEY_slash, IBUS_KEY_Z, 0x01B5, -+IBUS_KEY_slash, IBUS_KEY_asciicircum, 0x007C, -+IBUS_KEY_slash, IBUS_KEY_b, 0x0180, -+IBUS_KEY_slash, IBUS_KEY_c, 0x00A2, -+IBUS_KEY_slash, IBUS_KEY_d, 0x0111, -+IBUS_KEY_slash, IBUS_KEY_g, 0x01E5, -+IBUS_KEY_slash, IBUS_KEY_h, 0x0127, -+IBUS_KEY_slash, IBUS_KEY_i, 0x0268, -+IBUS_KEY_slash, IBUS_KEY_l, 0x0142, -+IBUS_KEY_slash, IBUS_KEY_m, 0x20A5, -+IBUS_KEY_slash, IBUS_KEY_o, 0x00F8, -+IBUS_KEY_slash, IBUS_KEY_t, 0x0167, -+IBUS_KEY_slash, IBUS_KEY_u, 0x00B5, -+IBUS_KEY_slash, IBUS_KEY_v, 0x221A, -+IBUS_KEY_slash, IBUS_KEY_z, 0x01B6, -+IBUS_KEY_slash, 0x0294, 0x02A1, -+IBUS_KEY_slash, 0x04AE, 0x04B0, -+IBUS_KEY_slash, 0x04AF, 0x04B1, -+IBUS_KEY_slash, IBUS_KEY_Cyrillic_ghe, 0x0493, -+IBUS_KEY_slash, IBUS_KEY_Cyrillic_ka, 0x049F, -+IBUS_KEY_slash, IBUS_KEY_Cyrillic_GHE, 0x0492, -+IBUS_KEY_slash, IBUS_KEY_Cyrillic_KA, 0x049E, -+IBUS_KEY_slash, IBUS_KEY_leftarrow, 0x219A, -+IBUS_KEY_slash, IBUS_KEY_rightarrow, 0x219B, -+IBUS_KEY_slash, 0x2194, 0x21AE, -+IBUS_KEY_slash, 0x2395, 0x2341, -+IBUS_KEY_0, IBUS_KEY_asterisk, 0x00B0, -+IBUS_KEY_0, IBUS_KEY_3, 0x2189, -+IBUS_KEY_0, IBUS_KEY_C, 0x00A9, -+IBUS_KEY_0, IBUS_KEY_S, 0x00A7, -+IBUS_KEY_0, IBUS_KEY_X, 0x00A4, -+IBUS_KEY_0, IBUS_KEY_asciicircum, 0x00B0, -+IBUS_KEY_0, IBUS_KEY_c, 0x00A9, -+IBUS_KEY_0, IBUS_KEY_s, 0x00A7, -+IBUS_KEY_0, IBUS_KEY_x, 0x00A4, -+IBUS_KEY_0, IBUS_KEY_asciitilde, 0x236C, -+IBUS_KEY_1, IBUS_KEY_2, 0x00BD, -+IBUS_KEY_1, IBUS_KEY_3, 0x2153, -+IBUS_KEY_1, IBUS_KEY_4, 0x00BC, -+IBUS_KEY_1, IBUS_KEY_5, 0x2155, -+IBUS_KEY_1, IBUS_KEY_6, 0x2159, -+IBUS_KEY_1, IBUS_KEY_7, 0x2150, -+IBUS_KEY_1, IBUS_KEY_8, 0x215B, -+IBUS_KEY_1, IBUS_KEY_9, 0x2151, -+IBUS_KEY_1, IBUS_KEY_S, 0x00B9, -+IBUS_KEY_1, IBUS_KEY_asciicircum, 0x00B9, -+IBUS_KEY_1, IBUS_KEY_s, 0x00B9, -+IBUS_KEY_2, IBUS_KEY_3, 0x2154, -+IBUS_KEY_2, IBUS_KEY_5, 0x2156, -+IBUS_KEY_2, IBUS_KEY_S, 0x00B2, -+IBUS_KEY_2, IBUS_KEY_asciicircum, 0x00B2, -+IBUS_KEY_2, IBUS_KEY_s, 0x00B2, -+IBUS_KEY_3, IBUS_KEY_4, 0x00BE, -+IBUS_KEY_3, IBUS_KEY_5, 0x2157, -+IBUS_KEY_3, IBUS_KEY_8, 0x215C, -+IBUS_KEY_3, IBUS_KEY_S, 0x00B3, -+IBUS_KEY_3, IBUS_KEY_asciicircum, 0x00B3, -+IBUS_KEY_3, IBUS_KEY_s, 0x00B3, -+IBUS_KEY_4, IBUS_KEY_5, 0x2158, -+IBUS_KEY_5, IBUS_KEY_6, 0x215A, -+IBUS_KEY_5, IBUS_KEY_8, 0x215D, -+IBUS_KEY_7, IBUS_KEY_8, 0x215E, -+IBUS_KEY_8, IBUS_KEY_8, 0x221E, -+IBUS_KEY_colon, IBUS_KEY_parenleft, 0x2639, -+IBUS_KEY_colon, IBUS_KEY_parenright, 0x263A, -+IBUS_KEY_colon, IBUS_KEY_minus, 0x00F7, -+IBUS_KEY_colon, IBUS_KEY_period, 0x2234, -+IBUS_KEY_colon, 0x2395, 0x2360, -+IBUS_KEY_semicolon, IBUS_KEY_A, 0x0104, -+IBUS_KEY_semicolon, IBUS_KEY_E, 0x0118, -+IBUS_KEY_semicolon, IBUS_KEY_I, 0x012E, -+IBUS_KEY_semicolon, IBUS_KEY_O, 0x01EA, -+IBUS_KEY_semicolon, IBUS_KEY_S, 0x0218, -+IBUS_KEY_semicolon, IBUS_KEY_T, 0x021A, -+IBUS_KEY_semicolon, IBUS_KEY_U, 0x0172, -+IBUS_KEY_semicolon, IBUS_KEY_underscore, 0x236E, -+IBUS_KEY_semicolon, IBUS_KEY_a, 0x0105, -+IBUS_KEY_semicolon, IBUS_KEY_e, 0x0119, -+IBUS_KEY_semicolon, IBUS_KEY_i, 0x012F, -+IBUS_KEY_semicolon, IBUS_KEY_o, 0x01EB, -+IBUS_KEY_semicolon, IBUS_KEY_s, 0x0219, -+IBUS_KEY_semicolon, IBUS_KEY_t, 0x021B, -+IBUS_KEY_semicolon, IBUS_KEY_u, 0x0173, -+IBUS_KEY_less, IBUS_KEY_space, 0x02C7, -+IBUS_KEY_less, IBUS_KEY_quotedbl, 0x201C, -+IBUS_KEY_less, IBUS_KEY_apostrophe, 0x2018, -+IBUS_KEY_less, IBUS_KEY_minus, 0x2190, -+IBUS_KEY_less, IBUS_KEY_slash, 0x005C, -+IBUS_KEY_less, IBUS_KEY_3, 0x2665, -+IBUS_KEY_less, IBUS_KEY_less, 0x00AB, -+IBUS_KEY_less, IBUS_KEY_equal, 0x2264, -+IBUS_KEY_less, IBUS_KEY_greater, 0x22C4, -+IBUS_KEY_less, IBUS_KEY_C, 0x010C, -+IBUS_KEY_less, IBUS_KEY_D, 0x010E, -+IBUS_KEY_less, IBUS_KEY_E, 0x011A, -+IBUS_KEY_less, IBUS_KEY_L, 0x013D, -+IBUS_KEY_less, IBUS_KEY_N, 0x0147, -+IBUS_KEY_less, IBUS_KEY_R, 0x0158, -+IBUS_KEY_less, IBUS_KEY_S, 0x0160, -+IBUS_KEY_less, IBUS_KEY_T, 0x0164, -+IBUS_KEY_less, IBUS_KEY_Z, 0x017D, -+IBUS_KEY_less, IBUS_KEY_underscore, 0x2264, -+IBUS_KEY_less, IBUS_KEY_c, 0x010D, -+IBUS_KEY_less, IBUS_KEY_d, 0x010F, -+IBUS_KEY_less, IBUS_KEY_e, 0x011B, -+IBUS_KEY_less, IBUS_KEY_l, 0x013E, -+IBUS_KEY_less, IBUS_KEY_n, 0x0148, -+IBUS_KEY_less, IBUS_KEY_r, 0x0159, -+IBUS_KEY_less, IBUS_KEY_s, 0x0161, -+IBUS_KEY_less, IBUS_KEY_t, 0x0165, -+IBUS_KEY_less, IBUS_KEY_z, 0x017E, -+IBUS_KEY_less, 0x0338, 0x226E, -+IBUS_KEY_less, 0x2395, 0x2343, -+IBUS_KEY_equal, IBUS_KEY_slash, 0x2260, -+IBUS_KEY_equal, IBUS_KEY_greater, 0x21D2, -+IBUS_KEY_equal, IBUS_KEY_C, 0x20AC, -+IBUS_KEY_equal, IBUS_KEY_E, 0x20AC, -+IBUS_KEY_equal, IBUS_KEY_L, 0x20A4, -+IBUS_KEY_equal, IBUS_KEY_N, 0x20A6, -+IBUS_KEY_equal, IBUS_KEY_O, 0x0150, -+IBUS_KEY_equal, IBUS_KEY_R, 0x20B9, -+IBUS_KEY_equal, IBUS_KEY_U, 0x0170, -+IBUS_KEY_equal, IBUS_KEY_W, 0x20A9, -+IBUS_KEY_equal, IBUS_KEY_Y, 0x00A5, -+IBUS_KEY_equal, IBUS_KEY_underscore, 0x2261, -+IBUS_KEY_equal, IBUS_KEY_c, 0x20AC, -+IBUS_KEY_equal, IBUS_KEY_d, 0x20AB, -+IBUS_KEY_equal, IBUS_KEY_e, 0x20AC, -+IBUS_KEY_equal, IBUS_KEY_l, 0x00A3, -+IBUS_KEY_equal, IBUS_KEY_o, 0x0151, -+IBUS_KEY_equal, IBUS_KEY_r, 0x20B9, -+IBUS_KEY_equal, IBUS_KEY_u, 0x0171, -+IBUS_KEY_equal, IBUS_KEY_y, 0x00A5, -+IBUS_KEY_equal, 0x0338, 0x2260, -+IBUS_KEY_equal, IBUS_KEY_Cyrillic_u, 0x04F3, -+IBUS_KEY_equal, IBUS_KEY_Cyrillic_IE, 0x20AC, -+IBUS_KEY_equal, IBUS_KEY_Cyrillic_ES, 0x20AC, -+IBUS_KEY_equal, IBUS_KEY_Cyrillic_U, 0x04F2, -+IBUS_KEY_equal, 0x2395, 0x2338, -+IBUS_KEY_greater, IBUS_KEY_space, 0x005E, -+IBUS_KEY_greater, IBUS_KEY_quotedbl, 0x201D, -+IBUS_KEY_greater, IBUS_KEY_apostrophe, 0x2019, -+IBUS_KEY_greater, IBUS_KEY_less, 0x22C4, -+IBUS_KEY_greater, IBUS_KEY_equal, 0x2265, -+IBUS_KEY_greater, IBUS_KEY_greater, 0x00BB, -+IBUS_KEY_greater, IBUS_KEY_A, 0x00C2, -+IBUS_KEY_greater, IBUS_KEY_E, 0x00CA, -+IBUS_KEY_greater, IBUS_KEY_I, 0x00CE, -+IBUS_KEY_greater, IBUS_KEY_O, 0x00D4, -+IBUS_KEY_greater, IBUS_KEY_U, 0x00DB, -+IBUS_KEY_greater, IBUS_KEY_underscore, 0x2265, -+IBUS_KEY_greater, IBUS_KEY_a, 0x00E2, -+IBUS_KEY_greater, IBUS_KEY_e, 0x00EA, -+IBUS_KEY_greater, IBUS_KEY_i, 0x00EE, -+IBUS_KEY_greater, IBUS_KEY_o, 0x00F4, -+IBUS_KEY_greater, IBUS_KEY_u, 0x00FB, -+IBUS_KEY_greater, IBUS_KEY_diaeresis, 0x2369, -+IBUS_KEY_greater, 0x0338, 0x226F, -+IBUS_KEY_greater, 0x2395, 0x2344, -+IBUS_KEY_question, IBUS_KEY_exclam, 0x2E18, -+IBUS_KEY_question, IBUS_KEY_question, 0x00BF, -+IBUS_KEY_question, IBUS_KEY_A, 0x1EA2, -+IBUS_KEY_question, IBUS_KEY_E, 0x1EBA, -+IBUS_KEY_question, IBUS_KEY_I, 0x1EC8, -+IBUS_KEY_question, IBUS_KEY_O, 0x1ECE, -+IBUS_KEY_question, IBUS_KEY_U, 0x1EE6, -+IBUS_KEY_question, IBUS_KEY_Y, 0x1EF6, -+IBUS_KEY_question, IBUS_KEY_a, 0x1EA3, -+IBUS_KEY_question, IBUS_KEY_e, 0x1EBB, -+IBUS_KEY_question, IBUS_KEY_i, 0x1EC9, -+IBUS_KEY_question, IBUS_KEY_o, 0x1ECF, -+IBUS_KEY_question, IBUS_KEY_u, 0x1EE7, -+IBUS_KEY_question, IBUS_KEY_y, 0x1EF7, -+IBUS_KEY_question, IBUS_KEY_Acircumflex, 0x1EA8, -+IBUS_KEY_question, IBUS_KEY_Ecircumflex, 0x1EC2, -+IBUS_KEY_question, IBUS_KEY_Ocircumflex, 0x1ED4, -+IBUS_KEY_question, IBUS_KEY_acircumflex, 0x1EA9, -+IBUS_KEY_question, IBUS_KEY_ecircumflex, 0x1EC3, -+IBUS_KEY_question, IBUS_KEY_ocircumflex, 0x1ED5, -+IBUS_KEY_question, IBUS_KEY_Abreve, 0x1EB2, -+IBUS_KEY_question, IBUS_KEY_abreve, 0x1EB3, -+IBUS_KEY_question, 0x2395, 0x2370, -+IBUS_KEY_A, IBUS_KEY_quotedbl, 0x00C4, -+IBUS_KEY_A, IBUS_KEY_apostrophe, 0x00C1, -+IBUS_KEY_A, IBUS_KEY_parenleft, 0x0102, -+IBUS_KEY_A, IBUS_KEY_asterisk, 0x00C5, -+IBUS_KEY_A, IBUS_KEY_comma, 0x0104, -+IBUS_KEY_A, IBUS_KEY_minus, 0x0100, -+IBUS_KEY_A, IBUS_KEY_semicolon, 0x0104, -+IBUS_KEY_A, IBUS_KEY_greater, 0x00C2, -+IBUS_KEY_A, IBUS_KEY_A, 0x00C5, -+IBUS_KEY_A, IBUS_KEY_E, 0x00C6, -+IBUS_KEY_A, IBUS_KEY_T, 0x0040, -+IBUS_KEY_A, IBUS_KEY_asciicircum, 0x00C2, -+IBUS_KEY_A, IBUS_KEY_underscore, 0x0100, -+IBUS_KEY_A, IBUS_KEY_grave, 0x00C0, -+IBUS_KEY_A, IBUS_KEY_asciitilde, 0x00C3, -+IBUS_KEY_A, IBUS_KEY_diaeresis, 0x00C4, -+IBUS_KEY_A, IBUS_KEY_acute, 0x00C1, -+IBUS_KEY_B, IBUS_KEY_period, 0x1E02, -+IBUS_KEY_C, IBUS_KEY_apostrophe, 0x0106, -+IBUS_KEY_C, IBUS_KEY_comma, 0x00C7, -+IBUS_KEY_C, IBUS_KEY_period, 0x010A, -+IBUS_KEY_C, IBUS_KEY_slash, 0x20A1, -+IBUS_KEY_C, IBUS_KEY_0, 0x00A9, -+IBUS_KEY_C, IBUS_KEY_less, 0x010C, -+IBUS_KEY_C, IBUS_KEY_equal, 0x20AC, -+IBUS_KEY_C, IBUS_KEY_E, 0x20A0, -+IBUS_KEY_C, IBUS_KEY_O, 0x00A9, -+IBUS_KEY_C, IBUS_KEY_o, 0x00A9, -+IBUS_KEY_C, IBUS_KEY_r, 0x20A2, -+IBUS_KEY_C, IBUS_KEY_bar, 0x00A2, -+IBUS_KEY_D, IBUS_KEY_comma, 0x1E10, -+IBUS_KEY_D, IBUS_KEY_minus, 0x0110, -+IBUS_KEY_D, IBUS_KEY_period, 0x1E0A, -+IBUS_KEY_D, IBUS_KEY_less, 0x010E, -+IBUS_KEY_D, IBUS_KEY_H, 0x00D0, -+IBUS_KEY_E, IBUS_KEY_quotedbl, 0x00CB, -+IBUS_KEY_E, IBUS_KEY_apostrophe, 0x00C9, -+IBUS_KEY_E, IBUS_KEY_comma, 0x0118, -+IBUS_KEY_E, IBUS_KEY_minus, 0x0112, -+IBUS_KEY_E, IBUS_KEY_period, 0x0116, -+IBUS_KEY_E, IBUS_KEY_semicolon, 0x0118, -+IBUS_KEY_E, IBUS_KEY_less, 0x011A, -+IBUS_KEY_E, IBUS_KEY_equal, 0x20AC, -+IBUS_KEY_E, IBUS_KEY_greater, 0x00CA, -+IBUS_KEY_E, IBUS_KEY_asciicircum, 0x00CA, -+IBUS_KEY_E, IBUS_KEY_underscore, 0x0112, -+IBUS_KEY_E, IBUS_KEY_grave, 0x00C8, -+IBUS_KEY_E, IBUS_KEY_diaeresis, 0x00CB, -+IBUS_KEY_E, IBUS_KEY_acute, 0x00C9, -+IBUS_KEY_F, IBUS_KEY_period, 0x1E1E, -+IBUS_KEY_F, IBUS_KEY_i, 0xFB03, -+IBUS_KEY_F, IBUS_KEY_l, 0xFB04, -+IBUS_KEY_F, IBUS_KEY_r, 0x20A3, -+IBUS_KEY_G, IBUS_KEY_parenleft, 0x011E, -+IBUS_KEY_G, IBUS_KEY_comma, 0x0122, -+IBUS_KEY_G, IBUS_KEY_period, 0x0120, -+IBUS_KEY_G, IBUS_KEY_U, 0x011E, -+IBUS_KEY_G, IBUS_KEY_breve, 0x011E, -+IBUS_KEY_H, IBUS_KEY_comma, 0x1E28, -+IBUS_KEY_I, IBUS_KEY_quotedbl, 0x00CF, -+IBUS_KEY_I, IBUS_KEY_apostrophe, 0x00CD, -+IBUS_KEY_I, IBUS_KEY_comma, 0x012E, -+IBUS_KEY_I, IBUS_KEY_minus, 0x012A, -+IBUS_KEY_I, IBUS_KEY_period, 0x0130, -+IBUS_KEY_I, IBUS_KEY_semicolon, 0x012E, -+IBUS_KEY_I, IBUS_KEY_greater, 0x00CE, -+IBUS_KEY_I, IBUS_KEY_J, 0x0132, -+IBUS_KEY_I, IBUS_KEY_asciicircum, 0x00CE, -+IBUS_KEY_I, IBUS_KEY_underscore, 0x012A, -+IBUS_KEY_I, IBUS_KEY_grave, 0x00CC, -+IBUS_KEY_I, IBUS_KEY_j, 0x0132, -+IBUS_KEY_I, IBUS_KEY_asciitilde, 0x0128, -+IBUS_KEY_I, IBUS_KEY_diaeresis, 0x00CF, -+IBUS_KEY_I, IBUS_KEY_acute, 0x00CD, -+IBUS_KEY_K, IBUS_KEY_comma, 0x0136, -+IBUS_KEY_L, IBUS_KEY_apostrophe, 0x0139, -+IBUS_KEY_L, IBUS_KEY_comma, 0x013B, -+IBUS_KEY_L, IBUS_KEY_minus, 0x00A3, -+IBUS_KEY_L, IBUS_KEY_slash, 0x0141, -+IBUS_KEY_L, IBUS_KEY_less, 0x013D, -+IBUS_KEY_L, IBUS_KEY_equal, 0x20A4, -+IBUS_KEY_L, IBUS_KEY_V, 0x007C, -+IBUS_KEY_M, IBUS_KEY_period, 0x1E40, -+IBUS_KEY_N, IBUS_KEY_apostrophe, 0x0143, -+IBUS_KEY_N, IBUS_KEY_comma, 0x0145, -+IBUS_KEY_N, IBUS_KEY_minus, 0x00D1, -+IBUS_KEY_N, IBUS_KEY_less, 0x0147, -+IBUS_KEY_N, IBUS_KEY_equal, 0x20A6, -+IBUS_KEY_N, IBUS_KEY_G, 0x014A, -+IBUS_KEY_N, IBUS_KEY_O, 0x2116, -+IBUS_KEY_N, IBUS_KEY_o, 0x2116, -+IBUS_KEY_N, IBUS_KEY_asciitilde, 0x00D1, -+IBUS_KEY_O, IBUS_KEY_quotedbl, 0x00D6, -+IBUS_KEY_O, IBUS_KEY_apostrophe, 0x00D3, -+IBUS_KEY_O, IBUS_KEY_comma, 0x01EA, -+IBUS_KEY_O, IBUS_KEY_minus, 0x014C, -+IBUS_KEY_O, IBUS_KEY_slash, 0x00D8, -+IBUS_KEY_O, IBUS_KEY_semicolon, 0x01EA, -+IBUS_KEY_O, IBUS_KEY_greater, 0x00D4, -+IBUS_KEY_O, IBUS_KEY_A, 0x24B6, -+IBUS_KEY_O, IBUS_KEY_C, 0x00A9, -+IBUS_KEY_O, IBUS_KEY_E, 0x0152, -+IBUS_KEY_O, IBUS_KEY_R, 0x00AE, -+IBUS_KEY_O, IBUS_KEY_S, 0x00A7, -+IBUS_KEY_O, IBUS_KEY_X, 0x00A4, -+IBUS_KEY_O, IBUS_KEY_asciicircum, 0x00D4, -+IBUS_KEY_O, IBUS_KEY_underscore, 0x014C, -+IBUS_KEY_O, IBUS_KEY_grave, 0x00D2, -+IBUS_KEY_O, IBUS_KEY_c, 0x00A9, -+IBUS_KEY_O, IBUS_KEY_r, 0x00AE, -+IBUS_KEY_O, IBUS_KEY_x, 0x00A4, -+IBUS_KEY_O, IBUS_KEY_asciitilde, 0x00D5, -+IBUS_KEY_O, IBUS_KEY_diaeresis, 0x00D6, -+IBUS_KEY_O, IBUS_KEY_acute, 0x00D3, -+IBUS_KEY_P, IBUS_KEY_exclam, 0x00B6, -+IBUS_KEY_P, IBUS_KEY_period, 0x1E56, -+IBUS_KEY_P, IBUS_KEY_P, 0x00B6, -+IBUS_KEY_P, IBUS_KEY_t, 0x20A7, -+IBUS_KEY_R, IBUS_KEY_apostrophe, 0x0154, -+IBUS_KEY_R, IBUS_KEY_comma, 0x0156, -+IBUS_KEY_R, IBUS_KEY_less, 0x0158, -+IBUS_KEY_R, IBUS_KEY_equal, 0x20B9, -+IBUS_KEY_R, IBUS_KEY_O, 0x00AE, -+IBUS_KEY_R, IBUS_KEY_o, 0x00AE, -+IBUS_KEY_R, IBUS_KEY_s, 0x20A8, -+IBUS_KEY_S, IBUS_KEY_exclam, 0x00A7, -+IBUS_KEY_S, IBUS_KEY_apostrophe, 0x015A, -+IBUS_KEY_S, IBUS_KEY_comma, 0x015E, -+IBUS_KEY_S, IBUS_KEY_period, 0x1E60, -+IBUS_KEY_S, IBUS_KEY_0, 0x00A7, -+IBUS_KEY_S, IBUS_KEY_1, 0x00B9, -+IBUS_KEY_S, IBUS_KEY_2, 0x00B2, -+IBUS_KEY_S, IBUS_KEY_3, 0x00B3, -+IBUS_KEY_S, IBUS_KEY_semicolon, 0x0218, -+IBUS_KEY_S, IBUS_KEY_less, 0x0160, -+IBUS_KEY_S, IBUS_KEY_M, 0x2120, -+IBUS_KEY_S, IBUS_KEY_O, 0x00A7, -+IBUS_KEY_S, IBUS_KEY_S, 0x1E9E, -+IBUS_KEY_S, IBUS_KEY_m, 0x2120, -+IBUS_KEY_S, IBUS_KEY_cedilla, 0x015E, -+IBUS_KEY_T, IBUS_KEY_comma, 0x0162, -+IBUS_KEY_T, IBUS_KEY_minus, 0x0166, -+IBUS_KEY_T, IBUS_KEY_period, 0x1E6A, -+IBUS_KEY_T, IBUS_KEY_slash, 0x0166, -+IBUS_KEY_T, IBUS_KEY_semicolon, 0x021A, -+IBUS_KEY_T, IBUS_KEY_less, 0x0164, -+IBUS_KEY_T, IBUS_KEY_H, 0x00DE, -+IBUS_KEY_T, IBUS_KEY_M, 0x2122, -+IBUS_KEY_T, IBUS_KEY_m, 0x2122, -+IBUS_KEY_U, IBUS_KEY_quotedbl, 0x00DC, -+IBUS_KEY_U, IBUS_KEY_apostrophe, 0x00DA, -+IBUS_KEY_U, IBUS_KEY_asterisk, 0x016E, -+IBUS_KEY_U, IBUS_KEY_comma, 0x0172, -+IBUS_KEY_U, IBUS_KEY_minus, 0x016A, -+IBUS_KEY_U, IBUS_KEY_slash, 0x00B5, -+IBUS_KEY_U, IBUS_KEY_semicolon, 0x0172, -+IBUS_KEY_U, IBUS_KEY_greater, 0x00DB, -+IBUS_KEY_U, IBUS_KEY_A, 0x0102, -+IBUS_KEY_U, IBUS_KEY_E, 0x0114, -+IBUS_KEY_U, IBUS_KEY_G, 0x011E, -+IBUS_KEY_U, IBUS_KEY_I, 0x012C, -+IBUS_KEY_U, IBUS_KEY_O, 0x014E, -+IBUS_KEY_U, IBUS_KEY_U, 0x016C, -+IBUS_KEY_U, IBUS_KEY_asciicircum, 0x00DB, -+IBUS_KEY_U, IBUS_KEY_underscore, 0x016A, -+IBUS_KEY_U, IBUS_KEY_grave, 0x00D9, -+IBUS_KEY_U, IBUS_KEY_a, 0x0103, -+IBUS_KEY_U, IBUS_KEY_e, 0x0115, -+IBUS_KEY_U, IBUS_KEY_g, 0x011F, -+IBUS_KEY_U, IBUS_KEY_i, 0x012D, -+IBUS_KEY_U, IBUS_KEY_o, 0x014F, -+IBUS_KEY_U, IBUS_KEY_u, 0x016D, -+IBUS_KEY_U, IBUS_KEY_asciitilde, 0x0168, -+IBUS_KEY_U, IBUS_KEY_diaeresis, 0x00DC, -+IBUS_KEY_U, IBUS_KEY_acute, 0x00DA, -+IBUS_KEY_U, 0x0228, 0x1E1C, -+IBUS_KEY_U, 0x0229, 0x1E1D, -+IBUS_KEY_U, IBUS_KEY_Cyrillic_a, 0x04D1, -+IBUS_KEY_U, IBUS_KEY_Cyrillic_ie, 0x04D7, -+IBUS_KEY_U, IBUS_KEY_Cyrillic_i, 0x0439, -+IBUS_KEY_U, IBUS_KEY_Cyrillic_u, 0x045E, -+IBUS_KEY_U, IBUS_KEY_Cyrillic_zhe, 0x04C2, -+IBUS_KEY_U, IBUS_KEY_Cyrillic_A, 0x04D0, -+IBUS_KEY_U, IBUS_KEY_Cyrillic_IE, 0x04D6, -+IBUS_KEY_U, IBUS_KEY_Cyrillic_I, 0x0419, -+IBUS_KEY_U, IBUS_KEY_Cyrillic_U, 0x040E, -+IBUS_KEY_U, IBUS_KEY_Cyrillic_ZHE, 0x04C1, -+IBUS_KEY_U, IBUS_KEY_Greek_ALPHA, 0x1FB8, -+IBUS_KEY_U, IBUS_KEY_Greek_IOTA, 0x1FD8, -+IBUS_KEY_U, IBUS_KEY_Greek_UPSILON, 0x1FE8, -+IBUS_KEY_U, IBUS_KEY_Greek_alpha, 0x1FB0, -+IBUS_KEY_U, IBUS_KEY_Greek_iota, 0x1FD0, -+IBUS_KEY_U, IBUS_KEY_Greek_upsilon, 0x1FE0, -+IBUS_KEY_U, 0x1EA0, 0x1EB6, -+IBUS_KEY_U, 0x1EA1, 0x1EB7, -+IBUS_KEY_V, IBUS_KEY_L, 0x007C, -+IBUS_KEY_W, IBUS_KEY_equal, 0x20A9, -+IBUS_KEY_W, IBUS_KEY_asciicircum, 0x0174, -+IBUS_KEY_X, IBUS_KEY_0, 0x00A4, -+IBUS_KEY_X, IBUS_KEY_O, 0x00A4, -+IBUS_KEY_X, IBUS_KEY_o, 0x00A4, -+IBUS_KEY_Y, IBUS_KEY_quotedbl, 0x0178, -+IBUS_KEY_Y, IBUS_KEY_apostrophe, 0x00DD, -+IBUS_KEY_Y, IBUS_KEY_minus, 0x00A5, -+IBUS_KEY_Y, IBUS_KEY_equal, 0x00A5, -+IBUS_KEY_Y, IBUS_KEY_asciicircum, 0x0176, -+IBUS_KEY_Y, IBUS_KEY_diaeresis, 0x0178, -+IBUS_KEY_Y, IBUS_KEY_acute, 0x00DD, -+IBUS_KEY_Z, IBUS_KEY_apostrophe, 0x0179, -+IBUS_KEY_Z, IBUS_KEY_period, 0x017B, -+IBUS_KEY_Z, IBUS_KEY_less, 0x017D, -+IBUS_KEY_bracketleft, IBUS_KEY_bracketright, 0x2337, -+IBUS_KEY_backslash, IBUS_KEY_minus, 0x2340, -+IBUS_KEY_backslash, 0x2395, 0x2342, -+IBUS_KEY_backslash, IBUS_KEY_emopencircle, 0x2349, -+IBUS_KEY_bracketright, IBUS_KEY_bracketleft, 0x2337, -+IBUS_KEY_asciicircum, IBUS_KEY_space, 0x005E, -+IBUS_KEY_asciicircum, IBUS_KEY_parenleft, 0x207D, -+IBUS_KEY_asciicircum, IBUS_KEY_parenright, 0x207E, -+IBUS_KEY_asciicircum, IBUS_KEY_plus, 0x207A, -+IBUS_KEY_asciicircum, IBUS_KEY_minus, 0x00AF, -+IBUS_KEY_asciicircum, IBUS_KEY_period, 0x00B7, -+IBUS_KEY_asciicircum, IBUS_KEY_slash, 0x007C, -+IBUS_KEY_asciicircum, IBUS_KEY_0, 0x2070, -+IBUS_KEY_asciicircum, IBUS_KEY_1, 0x00B9, -+IBUS_KEY_asciicircum, IBUS_KEY_2, 0x00B2, -+IBUS_KEY_asciicircum, IBUS_KEY_3, 0x00B3, -+IBUS_KEY_asciicircum, IBUS_KEY_4, 0x2074, -+IBUS_KEY_asciicircum, IBUS_KEY_5, 0x2075, -+IBUS_KEY_asciicircum, IBUS_KEY_6, 0x2076, -+IBUS_KEY_asciicircum, IBUS_KEY_7, 0x2077, -+IBUS_KEY_asciicircum, IBUS_KEY_8, 0x2078, -+IBUS_KEY_asciicircum, IBUS_KEY_9, 0x2079, -+IBUS_KEY_asciicircum, IBUS_KEY_equal, 0x207C, -+IBUS_KEY_asciicircum, IBUS_KEY_A, 0x00C2, -+IBUS_KEY_asciicircum, IBUS_KEY_C, 0x0108, -+IBUS_KEY_asciicircum, IBUS_KEY_E, 0x00CA, -+IBUS_KEY_asciicircum, IBUS_KEY_G, 0x011C, -+IBUS_KEY_asciicircum, IBUS_KEY_H, 0x0124, -+IBUS_KEY_asciicircum, IBUS_KEY_I, 0x00CE, -+IBUS_KEY_asciicircum, IBUS_KEY_J, 0x0134, -+IBUS_KEY_asciicircum, IBUS_KEY_O, 0x00D4, -+IBUS_KEY_asciicircum, IBUS_KEY_S, 0x015C, -+IBUS_KEY_asciicircum, IBUS_KEY_U, 0x00DB, -+IBUS_KEY_asciicircum, IBUS_KEY_W, 0x0174, -+IBUS_KEY_asciicircum, IBUS_KEY_Y, 0x0176, -+IBUS_KEY_asciicircum, IBUS_KEY_Z, 0x1E90, -+IBUS_KEY_asciicircum, IBUS_KEY_underscore, 0x00AF, -+IBUS_KEY_asciicircum, IBUS_KEY_a, 0x00E2, -+IBUS_KEY_asciicircum, IBUS_KEY_c, 0x0109, -+IBUS_KEY_asciicircum, IBUS_KEY_e, 0x00EA, -+IBUS_KEY_asciicircum, IBUS_KEY_g, 0x011D, -+IBUS_KEY_asciicircum, IBUS_KEY_h, 0x0125, -+IBUS_KEY_asciicircum, IBUS_KEY_i, 0x00EE, -+IBUS_KEY_asciicircum, IBUS_KEY_j, 0x0135, -+IBUS_KEY_asciicircum, IBUS_KEY_o, 0x00F4, -+IBUS_KEY_asciicircum, IBUS_KEY_s, 0x015D, -+IBUS_KEY_asciicircum, IBUS_KEY_u, 0x00FB, -+IBUS_KEY_asciicircum, IBUS_KEY_w, 0x0175, -+IBUS_KEY_asciicircum, IBUS_KEY_y, 0x0177, -+IBUS_KEY_asciicircum, IBUS_KEY_z, 0x1E91, -+IBUS_KEY_asciicircum, 0x1EA0, 0x1EAC, -+IBUS_KEY_asciicircum, 0x1EA1, 0x1EAD, -+IBUS_KEY_asciicircum, 0x1EB8, 0x1EC6, -+IBUS_KEY_asciicircum, 0x1EB9, 0x1EC7, -+IBUS_KEY_asciicircum, 0x1ECC, 0x1ED8, -+IBUS_KEY_asciicircum, 0x1ECD, 0x1ED9, -+IBUS_KEY_asciicircum, 0x2212, 0x207B, -+IBUS_KEY_asciicircum, 0x4E00, 0x3192, -+IBUS_KEY_asciicircum, 0x4E01, 0x319C, -+IBUS_KEY_asciicircum, 0x4E09, 0x3194, -+IBUS_KEY_asciicircum, 0x4E0A, 0x3196, -+IBUS_KEY_asciicircum, 0x4E0B, 0x3198, -+IBUS_KEY_asciicircum, 0x4E19, 0x319B, -+IBUS_KEY_asciicircum, 0x4E2D, 0x3197, -+IBUS_KEY_asciicircum, 0x4E59, 0x319A, -+IBUS_KEY_asciicircum, 0x4E8C, 0x3193, -+IBUS_KEY_asciicircum, 0x4EBA, 0x319F, -+IBUS_KEY_asciicircum, 0x56DB, 0x3195, -+IBUS_KEY_asciicircum, 0x5730, 0x319E, -+IBUS_KEY_asciicircum, 0x5929, 0x319D, -+IBUS_KEY_asciicircum, 0x7532, 0x3199, -+IBUS_KEY_asciicircum, IBUS_KEY_KP_Space, 0x00B2, -+IBUS_KEY_asciicircum, IBUS_KEY_KP_Add, 0x207A, -+IBUS_KEY_asciicircum, IBUS_KEY_KP_0, 0x2070, -+IBUS_KEY_asciicircum, IBUS_KEY_KP_1, 0x00B9, -+IBUS_KEY_asciicircum, IBUS_KEY_KP_2, 0x00B2, -+IBUS_KEY_asciicircum, IBUS_KEY_KP_3, 0x00B3, -+IBUS_KEY_asciicircum, IBUS_KEY_KP_4, 0x2074, -+IBUS_KEY_asciicircum, IBUS_KEY_KP_5, 0x2075, -+IBUS_KEY_asciicircum, IBUS_KEY_KP_6, 0x2076, -+IBUS_KEY_asciicircum, IBUS_KEY_KP_7, 0x2077, -+IBUS_KEY_asciicircum, IBUS_KEY_KP_8, 0x2078, -+IBUS_KEY_asciicircum, IBUS_KEY_KP_9, 0x2079, -+IBUS_KEY_asciicircum, IBUS_KEY_KP_Equal, 0x207C, -+IBUS_KEY_underscore, IBUS_KEY_apostrophe, 0x2358, -+IBUS_KEY_underscore, IBUS_KEY_parenleft, 0x208D, -+IBUS_KEY_underscore, IBUS_KEY_parenright, 0x208E, -+IBUS_KEY_underscore, IBUS_KEY_plus, 0x208A, -+IBUS_KEY_underscore, IBUS_KEY_0, 0x2080, -+IBUS_KEY_underscore, IBUS_KEY_1, 0x2081, -+IBUS_KEY_underscore, IBUS_KEY_2, 0x2082, -+IBUS_KEY_underscore, IBUS_KEY_3, 0x2083, -+IBUS_KEY_underscore, IBUS_KEY_4, 0x2084, -+IBUS_KEY_underscore, IBUS_KEY_5, 0x2085, -+IBUS_KEY_underscore, IBUS_KEY_6, 0x2086, -+IBUS_KEY_underscore, IBUS_KEY_7, 0x2087, -+IBUS_KEY_underscore, IBUS_KEY_8, 0x2088, -+IBUS_KEY_underscore, IBUS_KEY_9, 0x2089, -+IBUS_KEY_underscore, IBUS_KEY_less, 0x2264, -+IBUS_KEY_underscore, IBUS_KEY_equal, 0x208C, -+IBUS_KEY_underscore, IBUS_KEY_greater, 0x2265, -+IBUS_KEY_underscore, IBUS_KEY_A, 0x0100, -+IBUS_KEY_underscore, IBUS_KEY_E, 0x0112, -+IBUS_KEY_underscore, IBUS_KEY_G, 0x1E20, -+IBUS_KEY_underscore, IBUS_KEY_I, 0x012A, -+IBUS_KEY_underscore, IBUS_KEY_O, 0x014C, -+IBUS_KEY_underscore, IBUS_KEY_U, 0x016A, -+IBUS_KEY_underscore, IBUS_KEY_Y, 0x0232, -+IBUS_KEY_underscore, IBUS_KEY_asciicircum, 0x00AF, -+IBUS_KEY_underscore, IBUS_KEY_underscore, 0x00AF, -+IBUS_KEY_underscore, IBUS_KEY_a, 0x0101, -+IBUS_KEY_underscore, IBUS_KEY_e, 0x0113, -+IBUS_KEY_underscore, IBUS_KEY_g, 0x1E21, -+IBUS_KEY_underscore, IBUS_KEY_i, 0x012B, -+IBUS_KEY_underscore, IBUS_KEY_o, 0x014D, -+IBUS_KEY_underscore, IBUS_KEY_u, 0x016B, -+IBUS_KEY_underscore, IBUS_KEY_y, 0x0233, -+IBUS_KEY_underscore, IBUS_KEY_Adiaeresis, 0x01DE, -+IBUS_KEY_underscore, IBUS_KEY_AE, 0x01E2, -+IBUS_KEY_underscore, IBUS_KEY_Otilde, 0x022C, -+IBUS_KEY_underscore, IBUS_KEY_Odiaeresis, 0x022A, -+IBUS_KEY_underscore, IBUS_KEY_Udiaeresis, 0x01D5, -+IBUS_KEY_underscore, IBUS_KEY_adiaeresis, 0x01DF, -+IBUS_KEY_underscore, IBUS_KEY_ae, 0x01E3, -+IBUS_KEY_underscore, IBUS_KEY_otilde, 0x022D, -+IBUS_KEY_underscore, IBUS_KEY_odiaeresis, 0x022B, -+IBUS_KEY_underscore, IBUS_KEY_udiaeresis, 0x01D6, -+IBUS_KEY_underscore, 0x01EA, 0x01EC, -+IBUS_KEY_underscore, 0x01EB, 0x01ED, -+IBUS_KEY_underscore, 0x0226, 0x01E0, -+IBUS_KEY_underscore, 0x0227, 0x01E1, -+IBUS_KEY_underscore, 0x022E, 0x0230, -+IBUS_KEY_underscore, 0x022F, 0x0231, -+IBUS_KEY_underscore, IBUS_KEY_Cyrillic_i, 0x04E3, -+IBUS_KEY_underscore, IBUS_KEY_Cyrillic_u, 0x04EF, -+IBUS_KEY_underscore, IBUS_KEY_Cyrillic_I, 0x04E2, -+IBUS_KEY_underscore, IBUS_KEY_Cyrillic_U, 0x04EE, -+IBUS_KEY_underscore, IBUS_KEY_Greek_ALPHA, 0x1FB9, -+IBUS_KEY_underscore, IBUS_KEY_Greek_IOTA, 0x1FD9, -+IBUS_KEY_underscore, IBUS_KEY_Greek_UPSILON, 0x1FE9, -+IBUS_KEY_underscore, IBUS_KEY_Greek_alpha, 0x1FB1, -+IBUS_KEY_underscore, IBUS_KEY_Greek_iota, 0x1FD1, -+IBUS_KEY_underscore, IBUS_KEY_Greek_upsilon, 0x1FE1, -+IBUS_KEY_underscore, 0x1E36, 0x1E38, -+IBUS_KEY_underscore, 0x1E37, 0x1E39, -+IBUS_KEY_underscore, 0x1E5A, 0x1E5C, -+IBUS_KEY_underscore, 0x1E5B, 0x1E5D, -+IBUS_KEY_underscore, 0x2206, 0x2359, -+IBUS_KEY_underscore, 0x220A, 0x2377, -+IBUS_KEY_underscore, 0x2212, 0x208B, -+IBUS_KEY_underscore, 0x2218, 0x235B, -+IBUS_KEY_underscore, 0x2260, 0x2262, -+IBUS_KEY_underscore, 0x2282, 0x2286, -+IBUS_KEY_underscore, 0x2283, 0x2287, -+IBUS_KEY_underscore, IBUS_KEY_downtack, 0x234A, -+IBUS_KEY_underscore, 0x22C4, 0x235A, -+IBUS_KEY_underscore, 0x2373, 0x2378, -+IBUS_KEY_underscore, 0x2375, 0x2379, -+IBUS_KEY_underscore, 0x237A, 0x2376, -+IBUS_KEY_underscore, IBUS_KEY_emopencircle, 0x235C, -+IBUS_KEY_underscore, IBUS_KEY_KP_Space, 0x2082, -+IBUS_KEY_underscore, IBUS_KEY_KP_Add, 0x208A, -+IBUS_KEY_underscore, IBUS_KEY_KP_0, 0x2080, -+IBUS_KEY_underscore, IBUS_KEY_KP_1, 0x2081, -+IBUS_KEY_underscore, IBUS_KEY_KP_2, 0x2082, -+IBUS_KEY_underscore, IBUS_KEY_KP_3, 0x2083, -+IBUS_KEY_underscore, IBUS_KEY_KP_4, 0x2084, -+IBUS_KEY_underscore, IBUS_KEY_KP_5, 0x2085, -+IBUS_KEY_underscore, IBUS_KEY_KP_6, 0x2086, -+IBUS_KEY_underscore, IBUS_KEY_KP_7, 0x2087, -+IBUS_KEY_underscore, IBUS_KEY_KP_8, 0x2088, -+IBUS_KEY_underscore, IBUS_KEY_KP_9, 0x2089, -+IBUS_KEY_underscore, IBUS_KEY_KP_Equal, 0x208C, -+IBUS_KEY_grave, IBUS_KEY_space, 0x0060, -+IBUS_KEY_grave, IBUS_KEY_A, 0x00C0, -+IBUS_KEY_grave, IBUS_KEY_E, 0x00C8, -+IBUS_KEY_grave, IBUS_KEY_I, 0x00CC, -+IBUS_KEY_grave, IBUS_KEY_N, 0x01F8, -+IBUS_KEY_grave, IBUS_KEY_O, 0x00D2, -+IBUS_KEY_grave, IBUS_KEY_U, 0x00D9, -+IBUS_KEY_grave, IBUS_KEY_W, 0x1E80, -+IBUS_KEY_grave, IBUS_KEY_Y, 0x1EF2, -+IBUS_KEY_grave, IBUS_KEY_a, 0x00E0, -+IBUS_KEY_grave, IBUS_KEY_e, 0x00E8, -+IBUS_KEY_grave, IBUS_KEY_i, 0x00EC, -+IBUS_KEY_grave, IBUS_KEY_n, 0x01F9, -+IBUS_KEY_grave, IBUS_KEY_o, 0x00F2, -+IBUS_KEY_grave, IBUS_KEY_u, 0x00F9, -+IBUS_KEY_grave, IBUS_KEY_w, 0x1E81, -+IBUS_KEY_grave, IBUS_KEY_y, 0x1EF3, -+IBUS_KEY_grave, IBUS_KEY_Acircumflex, 0x1EA6, -+IBUS_KEY_grave, IBUS_KEY_Ecircumflex, 0x1EC0, -+IBUS_KEY_grave, IBUS_KEY_Ocircumflex, 0x1ED2, -+IBUS_KEY_grave, IBUS_KEY_Udiaeresis, 0x01DB, -+IBUS_KEY_grave, IBUS_KEY_acircumflex, 0x1EA7, -+IBUS_KEY_grave, IBUS_KEY_ecircumflex, 0x1EC1, -+IBUS_KEY_grave, IBUS_KEY_ocircumflex, 0x1ED3, -+IBUS_KEY_grave, IBUS_KEY_udiaeresis, 0x01DC, -+IBUS_KEY_grave, IBUS_KEY_Abreve, 0x1EB0, -+IBUS_KEY_grave, IBUS_KEY_abreve, 0x1EB1, -+IBUS_KEY_grave, IBUS_KEY_Emacron, 0x1E14, -+IBUS_KEY_grave, IBUS_KEY_emacron, 0x1E15, -+IBUS_KEY_grave, IBUS_KEY_Omacron, 0x1E50, -+IBUS_KEY_grave, IBUS_KEY_omacron, 0x1E51, -+IBUS_KEY_grave, IBUS_KEY_Cyrillic_ie, 0x0450, -+IBUS_KEY_grave, IBUS_KEY_Cyrillic_i, 0x045D, -+IBUS_KEY_grave, IBUS_KEY_Cyrillic_IE, 0x0400, -+IBUS_KEY_grave, IBUS_KEY_Cyrillic_I, 0x040D, -+IBUS_KEY_grave, IBUS_KEY_Greek_iotadieresis, 0x1FD2, -+IBUS_KEY_grave, IBUS_KEY_Greek_upsilondieresis, 0x1FE2, -+IBUS_KEY_grave, IBUS_KEY_Greek_ALPHA, 0x1FBA, -+IBUS_KEY_grave, IBUS_KEY_Greek_EPSILON, 0x1FC8, -+IBUS_KEY_grave, IBUS_KEY_Greek_ETA, 0x1FCA, -+IBUS_KEY_grave, IBUS_KEY_Greek_IOTA, 0x1FDA, -+IBUS_KEY_grave, IBUS_KEY_Greek_OMICRON, 0x1FF8, -+IBUS_KEY_grave, IBUS_KEY_Greek_UPSILON, 0x1FEA, -+IBUS_KEY_grave, IBUS_KEY_Greek_OMEGA, 0x1FFA, -+IBUS_KEY_grave, IBUS_KEY_Greek_alpha, 0x1F70, -+IBUS_KEY_grave, IBUS_KEY_Greek_epsilon, 0x1F72, -+IBUS_KEY_grave, IBUS_KEY_Greek_eta, 0x1F74, -+IBUS_KEY_grave, IBUS_KEY_Greek_iota, 0x1F76, -+IBUS_KEY_grave, IBUS_KEY_Greek_omicron, 0x1F78, -+IBUS_KEY_grave, IBUS_KEY_Greek_upsilon, 0x1F7A, -+IBUS_KEY_grave, IBUS_KEY_Greek_omega, 0x1F7C, -+IBUS_KEY_grave, 0x1F00, 0x1F02, -+IBUS_KEY_grave, 0x1F01, 0x1F03, -+IBUS_KEY_grave, 0x1F08, 0x1F0A, -+IBUS_KEY_grave, 0x1F09, 0x1F0B, -+IBUS_KEY_grave, 0x1F10, 0x1F12, -+IBUS_KEY_grave, 0x1F11, 0x1F13, -+IBUS_KEY_grave, 0x1F18, 0x1F1A, -+IBUS_KEY_grave, 0x1F19, 0x1F1B, -+IBUS_KEY_grave, 0x1F20, 0x1F22, -+IBUS_KEY_grave, 0x1F21, 0x1F23, -+IBUS_KEY_grave, 0x1F28, 0x1F2A, -+IBUS_KEY_grave, 0x1F29, 0x1F2B, -+IBUS_KEY_grave, 0x1F30, 0x1F32, -+IBUS_KEY_grave, 0x1F31, 0x1F33, -+IBUS_KEY_grave, 0x1F38, 0x1F3A, -+IBUS_KEY_grave, 0x1F39, 0x1F3B, -+IBUS_KEY_grave, 0x1F40, 0x1F42, -+IBUS_KEY_grave, 0x1F41, 0x1F43, -+IBUS_KEY_grave, 0x1F48, 0x1F4A, -+IBUS_KEY_grave, 0x1F49, 0x1F4B, -+IBUS_KEY_grave, 0x1F50, 0x1F52, -+IBUS_KEY_grave, 0x1F51, 0x1F53, -+IBUS_KEY_grave, 0x1F59, 0x1F5B, -+IBUS_KEY_grave, 0x1F60, 0x1F62, -+IBUS_KEY_grave, 0x1F61, 0x1F63, -+IBUS_KEY_grave, 0x1F68, 0x1F6A, -+IBUS_KEY_grave, 0x1F69, 0x1F6B, -+IBUS_KEY_a, IBUS_KEY_quotedbl, 0x00E4, -+IBUS_KEY_a, IBUS_KEY_apostrophe, 0x00E1, -+IBUS_KEY_a, IBUS_KEY_parenleft, 0x0103, -+IBUS_KEY_a, IBUS_KEY_asterisk, 0x00E5, -+IBUS_KEY_a, IBUS_KEY_comma, 0x0105, -+IBUS_KEY_a, IBUS_KEY_minus, 0x0101, -+IBUS_KEY_a, IBUS_KEY_semicolon, 0x0105, -+IBUS_KEY_a, IBUS_KEY_greater, 0x00E2, -+IBUS_KEY_a, IBUS_KEY_asciicircum, 0x00E2, -+IBUS_KEY_a, IBUS_KEY_underscore, 0x0101, -+IBUS_KEY_a, IBUS_KEY_grave, 0x00E0, -+IBUS_KEY_a, IBUS_KEY_a, 0x00E5, -+IBUS_KEY_a, IBUS_KEY_e, 0x00E6, -+IBUS_KEY_a, IBUS_KEY_asciitilde, 0x00E3, -+IBUS_KEY_a, IBUS_KEY_diaeresis, 0x00E4, -+IBUS_KEY_a, IBUS_KEY_acute, 0x00E1, -+IBUS_KEY_b, IBUS_KEY_period, 0x1E03, -+IBUS_KEY_b, IBUS_KEY_A, 0x0102, -+IBUS_KEY_b, IBUS_KEY_E, 0x0114, -+IBUS_KEY_b, IBUS_KEY_G, 0x011E, -+IBUS_KEY_b, IBUS_KEY_I, 0x012C, -+IBUS_KEY_b, IBUS_KEY_O, 0x014E, -+IBUS_KEY_b, IBUS_KEY_U, 0x016C, -+IBUS_KEY_b, IBUS_KEY_a, 0x0103, -+IBUS_KEY_b, IBUS_KEY_e, 0x0115, -+IBUS_KEY_b, IBUS_KEY_g, 0x011F, -+IBUS_KEY_b, IBUS_KEY_i, 0x012D, -+IBUS_KEY_b, IBUS_KEY_o, 0x014F, -+IBUS_KEY_b, IBUS_KEY_u, 0x016D, -+IBUS_KEY_b, 0x0228, 0x1E1C, -+IBUS_KEY_b, 0x0229, 0x1E1D, -+IBUS_KEY_b, IBUS_KEY_Cyrillic_a, 0x04D1, -+IBUS_KEY_b, IBUS_KEY_Cyrillic_ie, 0x04D7, -+IBUS_KEY_b, IBUS_KEY_Cyrillic_i, 0x0439, -+IBUS_KEY_b, IBUS_KEY_Cyrillic_u, 0x045E, -+IBUS_KEY_b, IBUS_KEY_Cyrillic_zhe, 0x04C2, -+IBUS_KEY_b, IBUS_KEY_Cyrillic_A, 0x04D0, -+IBUS_KEY_b, IBUS_KEY_Cyrillic_IE, 0x04D6, -+IBUS_KEY_b, IBUS_KEY_Cyrillic_I, 0x0419, -+IBUS_KEY_b, IBUS_KEY_Cyrillic_U, 0x040E, -+IBUS_KEY_b, IBUS_KEY_Cyrillic_ZHE, 0x04C1, -+IBUS_KEY_b, IBUS_KEY_Greek_ALPHA, 0x1FB8, -+IBUS_KEY_b, IBUS_KEY_Greek_IOTA, 0x1FD8, -+IBUS_KEY_b, IBUS_KEY_Greek_UPSILON, 0x1FE8, -+IBUS_KEY_b, IBUS_KEY_Greek_alpha, 0x1FB0, -+IBUS_KEY_b, IBUS_KEY_Greek_iota, 0x1FD0, -+IBUS_KEY_b, IBUS_KEY_Greek_upsilon, 0x1FE0, -+IBUS_KEY_b, 0x1EA0, 0x1EB6, -+IBUS_KEY_b, 0x1EA1, 0x1EB7, -+IBUS_KEY_c, IBUS_KEY_apostrophe, 0x0107, -+IBUS_KEY_c, IBUS_KEY_comma, 0x00E7, -+IBUS_KEY_c, IBUS_KEY_period, 0x010B, -+IBUS_KEY_c, IBUS_KEY_slash, 0x00A2, -+IBUS_KEY_c, IBUS_KEY_0, 0x00A9, -+IBUS_KEY_c, IBUS_KEY_less, 0x010D, -+IBUS_KEY_c, IBUS_KEY_equal, 0x20AC, -+IBUS_KEY_c, IBUS_KEY_A, 0x01CD, -+IBUS_KEY_c, IBUS_KEY_C, 0x010C, -+IBUS_KEY_c, IBUS_KEY_D, 0x010E, -+IBUS_KEY_c, IBUS_KEY_E, 0x011A, -+IBUS_KEY_c, IBUS_KEY_G, 0x01E6, -+IBUS_KEY_c, IBUS_KEY_H, 0x021E, -+IBUS_KEY_c, IBUS_KEY_I, 0x01CF, -+IBUS_KEY_c, IBUS_KEY_K, 0x01E8, -+IBUS_KEY_c, IBUS_KEY_L, 0x013D, -+IBUS_KEY_c, IBUS_KEY_N, 0x0147, -+IBUS_KEY_c, IBUS_KEY_O, 0x01D1, -+IBUS_KEY_c, IBUS_KEY_R, 0x0158, -+IBUS_KEY_c, IBUS_KEY_S, 0x0160, -+IBUS_KEY_c, IBUS_KEY_T, 0x0164, -+IBUS_KEY_c, IBUS_KEY_U, 0x01D3, -+IBUS_KEY_c, IBUS_KEY_Z, 0x017D, -+IBUS_KEY_c, IBUS_KEY_a, 0x01CE, -+IBUS_KEY_c, IBUS_KEY_c, 0x010D, -+IBUS_KEY_c, IBUS_KEY_d, 0x010F, -+IBUS_KEY_c, IBUS_KEY_e, 0x011B, -+IBUS_KEY_c, IBUS_KEY_g, 0x01E7, -+IBUS_KEY_c, IBUS_KEY_h, 0x021F, -+IBUS_KEY_c, IBUS_KEY_i, 0x01D0, -+IBUS_KEY_c, IBUS_KEY_j, 0x01F0, -+IBUS_KEY_c, IBUS_KEY_k, 0x01E9, -+IBUS_KEY_c, IBUS_KEY_l, 0x013E, -+IBUS_KEY_c, IBUS_KEY_n, 0x0148, -+IBUS_KEY_c, IBUS_KEY_o, 0x01D2, -+IBUS_KEY_c, IBUS_KEY_r, 0x0159, -+IBUS_KEY_c, IBUS_KEY_s, 0x0161, -+IBUS_KEY_c, IBUS_KEY_t, 0x0165, -+IBUS_KEY_c, IBUS_KEY_u, 0x01D4, -+IBUS_KEY_c, IBUS_KEY_z, 0x017E, -+IBUS_KEY_c, IBUS_KEY_bar, 0x00A2, -+IBUS_KEY_c, IBUS_KEY_Udiaeresis, 0x01D9, -+IBUS_KEY_c, IBUS_KEY_udiaeresis, 0x01DA, -+IBUS_KEY_d, IBUS_KEY_comma, 0x1E11, -+IBUS_KEY_d, IBUS_KEY_minus, 0x0111, -+IBUS_KEY_d, IBUS_KEY_period, 0x1E0B, -+IBUS_KEY_d, IBUS_KEY_less, 0x010F, -+IBUS_KEY_d, IBUS_KEY_equal, 0x20AB, -+IBUS_KEY_d, IBUS_KEY_h, 0x00F0, -+IBUS_KEY_d, IBUS_KEY_i, 0x2300, -+IBUS_KEY_e, IBUS_KEY_quotedbl, 0x00EB, -+IBUS_KEY_e, IBUS_KEY_apostrophe, 0x00E9, -+IBUS_KEY_e, IBUS_KEY_comma, 0x0119, -+IBUS_KEY_e, IBUS_KEY_minus, 0x0113, -+IBUS_KEY_e, IBUS_KEY_period, 0x0117, -+IBUS_KEY_e, IBUS_KEY_semicolon, 0x0119, -+IBUS_KEY_e, IBUS_KEY_less, 0x011B, -+IBUS_KEY_e, IBUS_KEY_equal, 0x20AC, -+IBUS_KEY_e, IBUS_KEY_greater, 0x00EA, -+IBUS_KEY_e, IBUS_KEY_asciicircum, 0x00EA, -+IBUS_KEY_e, IBUS_KEY_underscore, 0x0113, -+IBUS_KEY_e, IBUS_KEY_grave, 0x00E8, -+IBUS_KEY_e, IBUS_KEY_e, 0x0259, -+IBUS_KEY_e, IBUS_KEY_diaeresis, 0x00EB, -+IBUS_KEY_e, IBUS_KEY_acute, 0x00E9, -+IBUS_KEY_f, IBUS_KEY_period, 0x1E1F, -+IBUS_KEY_f, IBUS_KEY_S, 0x017F, -+IBUS_KEY_f, IBUS_KEY_f, 0xFB00, -+IBUS_KEY_f, IBUS_KEY_i, 0xFB01, -+IBUS_KEY_f, IBUS_KEY_l, 0xFB02, -+IBUS_KEY_f, IBUS_KEY_s, 0x017F, -+IBUS_KEY_g, IBUS_KEY_parenleft, 0x011F, -+IBUS_KEY_g, IBUS_KEY_comma, 0x0123, -+IBUS_KEY_g, IBUS_KEY_period, 0x0121, -+IBUS_KEY_g, IBUS_KEY_U, 0x011F, -+IBUS_KEY_g, IBUS_KEY_breve, 0x011F, -+IBUS_KEY_h, IBUS_KEY_comma, 0x1E29, -+IBUS_KEY_i, IBUS_KEY_quotedbl, 0x00EF, -+IBUS_KEY_i, IBUS_KEY_apostrophe, 0x00ED, -+IBUS_KEY_i, IBUS_KEY_comma, 0x012F, -+IBUS_KEY_i, IBUS_KEY_minus, 0x012B, -+IBUS_KEY_i, IBUS_KEY_period, 0x0131, -+IBUS_KEY_i, IBUS_KEY_semicolon, 0x012F, -+IBUS_KEY_i, IBUS_KEY_greater, 0x00EE, -+IBUS_KEY_i, IBUS_KEY_asciicircum, 0x00EE, -+IBUS_KEY_i, IBUS_KEY_underscore, 0x012B, -+IBUS_KEY_i, IBUS_KEY_grave, 0x00EC, -+IBUS_KEY_i, IBUS_KEY_j, 0x0133, -+IBUS_KEY_i, IBUS_KEY_asciitilde, 0x0129, -+IBUS_KEY_i, IBUS_KEY_diaeresis, 0x00EF, -+IBUS_KEY_i, IBUS_KEY_acute, 0x00ED, -+IBUS_KEY_k, IBUS_KEY_comma, 0x0137, -+IBUS_KEY_k, IBUS_KEY_k, 0x0138, -+IBUS_KEY_l, IBUS_KEY_apostrophe, 0x013A, -+IBUS_KEY_l, IBUS_KEY_comma, 0x013C, -+IBUS_KEY_l, IBUS_KEY_minus, 0x00A3, -+IBUS_KEY_l, IBUS_KEY_slash, 0x0142, -+IBUS_KEY_l, IBUS_KEY_less, 0x013E, -+IBUS_KEY_l, IBUS_KEY_equal, 0x00A3, -+IBUS_KEY_l, IBUS_KEY_v, 0x007C, -+IBUS_KEY_m, IBUS_KEY_period, 0x1E41, -+IBUS_KEY_m, IBUS_KEY_slash, 0x20A5, -+IBUS_KEY_m, IBUS_KEY_u, 0x00B5, -+IBUS_KEY_n, IBUS_KEY_apostrophe, 0x0144, -+IBUS_KEY_n, IBUS_KEY_comma, 0x0146, -+IBUS_KEY_n, IBUS_KEY_minus, 0x00F1, -+IBUS_KEY_n, IBUS_KEY_less, 0x0148, -+IBUS_KEY_n, IBUS_KEY_g, 0x014B, -+IBUS_KEY_n, IBUS_KEY_asciitilde, 0x00F1, -+IBUS_KEY_o, IBUS_KEY_quotedbl, 0x00F6, -+IBUS_KEY_o, IBUS_KEY_apostrophe, 0x00F3, -+IBUS_KEY_o, IBUS_KEY_comma, 0x01EB, -+IBUS_KEY_o, IBUS_KEY_minus, 0x014D, -+IBUS_KEY_o, IBUS_KEY_slash, 0x00F8, -+IBUS_KEY_o, IBUS_KEY_semicolon, 0x01EB, -+IBUS_KEY_o, IBUS_KEY_greater, 0x00F4, -+IBUS_KEY_o, IBUS_KEY_A, 0x00C5, -+IBUS_KEY_o, IBUS_KEY_C, 0x00A9, -+IBUS_KEY_o, IBUS_KEY_R, 0x00AE, -+IBUS_KEY_o, IBUS_KEY_U, 0x016E, -+IBUS_KEY_o, IBUS_KEY_X, 0x00A4, -+IBUS_KEY_o, IBUS_KEY_asciicircum, 0x00F4, -+IBUS_KEY_o, IBUS_KEY_underscore, 0x014D, -+IBUS_KEY_o, IBUS_KEY_grave, 0x00F2, -+IBUS_KEY_o, IBUS_KEY_a, 0x00E5, -+IBUS_KEY_o, IBUS_KEY_c, 0x00A9, -+IBUS_KEY_o, IBUS_KEY_e, 0x0153, -+IBUS_KEY_o, IBUS_KEY_o, 0x00B0, -+IBUS_KEY_o, IBUS_KEY_r, 0x00AE, -+IBUS_KEY_o, IBUS_KEY_s, 0x00A7, -+IBUS_KEY_o, IBUS_KEY_u, 0x016F, -+IBUS_KEY_o, IBUS_KEY_w, 0x1E98, -+IBUS_KEY_o, IBUS_KEY_x, 0x00A4, -+IBUS_KEY_o, IBUS_KEY_y, 0x1E99, -+IBUS_KEY_o, IBUS_KEY_asciitilde, 0x00F5, -+IBUS_KEY_o, IBUS_KEY_diaeresis, 0x00F6, -+IBUS_KEY_o, IBUS_KEY_acute, 0x00F3, -+IBUS_KEY_p, IBUS_KEY_exclam, 0x00B6, -+IBUS_KEY_p, IBUS_KEY_period, 0x1E57, -+IBUS_KEY_r, IBUS_KEY_apostrophe, 0x0155, -+IBUS_KEY_r, IBUS_KEY_comma, 0x0157, -+IBUS_KEY_r, IBUS_KEY_less, 0x0159, -+IBUS_KEY_r, IBUS_KEY_equal, 0x20B9, -+IBUS_KEY_s, IBUS_KEY_exclam, 0x00A7, -+IBUS_KEY_s, IBUS_KEY_apostrophe, 0x015B, -+IBUS_KEY_s, IBUS_KEY_comma, 0x015F, -+IBUS_KEY_s, IBUS_KEY_period, 0x1E61, -+IBUS_KEY_s, IBUS_KEY_0, 0x00A7, -+IBUS_KEY_s, IBUS_KEY_1, 0x00B9, -+IBUS_KEY_s, IBUS_KEY_2, 0x00B2, -+IBUS_KEY_s, IBUS_KEY_3, 0x00B3, -+IBUS_KEY_s, IBUS_KEY_semicolon, 0x0219, -+IBUS_KEY_s, IBUS_KEY_less, 0x0161, -+IBUS_KEY_s, IBUS_KEY_M, 0x2120, -+IBUS_KEY_s, IBUS_KEY_m, 0x2120, -+IBUS_KEY_s, IBUS_KEY_o, 0x00A7, -+IBUS_KEY_s, IBUS_KEY_s, 0x00DF, -+IBUS_KEY_s, IBUS_KEY_cedilla, 0x015F, -+IBUS_KEY_t, IBUS_KEY_comma, 0x0163, -+IBUS_KEY_t, IBUS_KEY_minus, 0x0167, -+IBUS_KEY_t, IBUS_KEY_period, 0x1E6B, -+IBUS_KEY_t, IBUS_KEY_slash, 0x0167, -+IBUS_KEY_t, IBUS_KEY_semicolon, 0x021B, -+IBUS_KEY_t, IBUS_KEY_less, 0x0165, -+IBUS_KEY_t, IBUS_KEY_M, 0x2122, -+IBUS_KEY_t, IBUS_KEY_h, 0x00FE, -+IBUS_KEY_t, IBUS_KEY_m, 0x2122, -+IBUS_KEY_u, IBUS_KEY_quotedbl, 0x00FC, -+IBUS_KEY_u, IBUS_KEY_apostrophe, 0x00FA, -+IBUS_KEY_u, IBUS_KEY_asterisk, 0x016F, -+IBUS_KEY_u, IBUS_KEY_comma, 0x0173, -+IBUS_KEY_u, IBUS_KEY_minus, 0x016B, -+IBUS_KEY_u, IBUS_KEY_slash, 0x00B5, -+IBUS_KEY_u, IBUS_KEY_semicolon, 0x0173, -+IBUS_KEY_u, IBUS_KEY_greater, 0x00FB, -+IBUS_KEY_u, IBUS_KEY_A, 0x0102, -+IBUS_KEY_u, IBUS_KEY_U, 0x016C, -+IBUS_KEY_u, IBUS_KEY_asciicircum, 0x00FB, -+IBUS_KEY_u, IBUS_KEY_underscore, 0x016B, -+IBUS_KEY_u, IBUS_KEY_grave, 0x00F9, -+IBUS_KEY_u, IBUS_KEY_a, 0x0103, -+IBUS_KEY_u, IBUS_KEY_u, 0x016D, -+IBUS_KEY_u, IBUS_KEY_asciitilde, 0x0169, -+IBUS_KEY_u, IBUS_KEY_diaeresis, 0x00FC, -+IBUS_KEY_u, IBUS_KEY_acute, 0x00FA, -+IBUS_KEY_v, IBUS_KEY_slash, 0x221A, -+IBUS_KEY_v, IBUS_KEY_Z, 0x017D, -+IBUS_KEY_v, IBUS_KEY_l, 0x007C, -+IBUS_KEY_v, IBUS_KEY_z, 0x017E, -+IBUS_KEY_w, IBUS_KEY_asciicircum, 0x0175, -+IBUS_KEY_x, IBUS_KEY_0, 0x00A4, -+IBUS_KEY_x, IBUS_KEY_O, 0x00A4, -+IBUS_KEY_x, IBUS_KEY_o, 0x00A4, -+IBUS_KEY_x, IBUS_KEY_x, 0x00D7, -+IBUS_KEY_y, IBUS_KEY_quotedbl, 0x00FF, -+IBUS_KEY_y, IBUS_KEY_apostrophe, 0x00FD, -+IBUS_KEY_y, IBUS_KEY_minus, 0x00A5, -+IBUS_KEY_y, IBUS_KEY_equal, 0x00A5, -+IBUS_KEY_y, IBUS_KEY_asciicircum, 0x0177, -+IBUS_KEY_y, IBUS_KEY_diaeresis, 0x00FF, -+IBUS_KEY_y, IBUS_KEY_acute, 0x00FD, -+IBUS_KEY_z, IBUS_KEY_apostrophe, 0x017A, -+IBUS_KEY_z, IBUS_KEY_period, 0x017C, -+IBUS_KEY_z, IBUS_KEY_less, 0x017E, -+IBUS_KEY_braceleft, IBUS_KEY_braceright, 0x2205, -+IBUS_KEY_bar, IBUS_KEY_C, 0x00A2, -+IBUS_KEY_bar, IBUS_KEY_c, 0x00A2, -+IBUS_KEY_bar, IBUS_KEY_asciitilde, 0x236D, -+IBUS_KEY_bar, 0x2190, 0x2345, -+IBUS_KEY_bar, 0x2192, 0x2346, -+IBUS_KEY_bar, 0x2206, 0x234B, -+IBUS_KEY_bar, 0x2207, 0x2352, -+IBUS_KEY_bar, IBUS_KEY_union, 0x2366, -+IBUS_KEY_bar, 0x2282, 0x2367, -+IBUS_KEY_bar, IBUS_KEY_emopencircle, 0x233D, -+IBUS_KEY_asciitilde, IBUS_KEY_space, 0x007E, -+IBUS_KEY_asciitilde, IBUS_KEY_0, 0x236C, -+IBUS_KEY_asciitilde, IBUS_KEY_A, 0x00C3, -+IBUS_KEY_asciitilde, IBUS_KEY_E, 0x1EBC, -+IBUS_KEY_asciitilde, IBUS_KEY_I, 0x0128, -+IBUS_KEY_asciitilde, IBUS_KEY_N, 0x00D1, -+IBUS_KEY_asciitilde, IBUS_KEY_O, 0x00D5, -+IBUS_KEY_asciitilde, IBUS_KEY_U, 0x0168, -+IBUS_KEY_asciitilde, IBUS_KEY_V, 0x1E7C, -+IBUS_KEY_asciitilde, IBUS_KEY_Y, 0x1EF8, -+IBUS_KEY_asciitilde, IBUS_KEY_a, 0x00E3, -+IBUS_KEY_asciitilde, IBUS_KEY_e, 0x1EBD, -+IBUS_KEY_asciitilde, IBUS_KEY_i, 0x0129, -+IBUS_KEY_asciitilde, IBUS_KEY_n, 0x00F1, -+IBUS_KEY_asciitilde, IBUS_KEY_o, 0x00F5, -+IBUS_KEY_asciitilde, IBUS_KEY_u, 0x0169, -+IBUS_KEY_asciitilde, IBUS_KEY_v, 0x1E7D, -+IBUS_KEY_asciitilde, IBUS_KEY_y, 0x1EF9, -+IBUS_KEY_asciitilde, IBUS_KEY_bar, 0x236D, -+IBUS_KEY_asciitilde, IBUS_KEY_diaeresis, 0x2368, -+IBUS_KEY_asciitilde, IBUS_KEY_Acircumflex, 0x1EAA, -+IBUS_KEY_asciitilde, IBUS_KEY_Ecircumflex, 0x1EC4, -+IBUS_KEY_asciitilde, IBUS_KEY_Ocircumflex, 0x1ED6, -+IBUS_KEY_asciitilde, IBUS_KEY_acircumflex, 0x1EAB, -+IBUS_KEY_asciitilde, IBUS_KEY_ecircumflex, 0x1EC5, -+IBUS_KEY_asciitilde, IBUS_KEY_ocircumflex, 0x1ED7, -+IBUS_KEY_asciitilde, IBUS_KEY_Abreve, 0x1EB4, -+IBUS_KEY_asciitilde, IBUS_KEY_abreve, 0x1EB5, -+IBUS_KEY_asciitilde, IBUS_KEY_Greek_iotadieresis, 0x1FD7, -+IBUS_KEY_asciitilde, IBUS_KEY_Greek_upsilondieresis, 0x1FE7, -+IBUS_KEY_asciitilde, IBUS_KEY_Greek_alpha, 0x1FB6, -+IBUS_KEY_asciitilde, IBUS_KEY_Greek_eta, 0x1FC6, -+IBUS_KEY_asciitilde, IBUS_KEY_Greek_iota, 0x1FD6, -+IBUS_KEY_asciitilde, IBUS_KEY_Greek_upsilon, 0x1FE6, -+IBUS_KEY_asciitilde, IBUS_KEY_Greek_omega, 0x1FF6, -+IBUS_KEY_asciitilde, 0x1F00, 0x1F06, -+IBUS_KEY_asciitilde, 0x1F01, 0x1F07, -+IBUS_KEY_asciitilde, 0x1F08, 0x1F0E, -+IBUS_KEY_asciitilde, 0x1F09, 0x1F0F, -+IBUS_KEY_asciitilde, 0x1F20, 0x1F26, -+IBUS_KEY_asciitilde, 0x1F21, 0x1F27, -+IBUS_KEY_asciitilde, 0x1F28, 0x1F2E, -+IBUS_KEY_asciitilde, 0x1F29, 0x1F2F, -+IBUS_KEY_asciitilde, 0x1F30, 0x1F36, -+IBUS_KEY_asciitilde, 0x1F31, 0x1F37, -+IBUS_KEY_asciitilde, 0x1F38, 0x1F3E, -+IBUS_KEY_asciitilde, 0x1F39, 0x1F3F, -+IBUS_KEY_asciitilde, 0x1F50, 0x1F56, -+IBUS_KEY_asciitilde, 0x1F51, 0x1F57, -+IBUS_KEY_asciitilde, 0x1F59, 0x1F5F, -+IBUS_KEY_asciitilde, 0x1F60, 0x1F66, -+IBUS_KEY_asciitilde, 0x1F61, 0x1F67, -+IBUS_KEY_asciitilde, 0x1F68, 0x1F6E, -+IBUS_KEY_asciitilde, 0x1F69, 0x1F6F, -+IBUS_KEY_asciitilde, 0x2207, 0x236B, -+IBUS_KEY_asciitilde, 0x2227, 0x2372, -+IBUS_KEY_asciitilde, 0x2228, 0x2371, -+IBUS_KEY_diaeresis, IBUS_KEY_apostrophe, 0x0385, -+IBUS_KEY_diaeresis, IBUS_KEY_asterisk, 0x2363, -+IBUS_KEY_diaeresis, IBUS_KEY_greater, 0x2369, -+IBUS_KEY_diaeresis, IBUS_KEY_A, 0x00C4, -+IBUS_KEY_diaeresis, IBUS_KEY_E, 0x00CB, -+IBUS_KEY_diaeresis, IBUS_KEY_I, 0x00CF, -+IBUS_KEY_diaeresis, IBUS_KEY_O, 0x00D6, -+IBUS_KEY_diaeresis, IBUS_KEY_U, 0x00DC, -+IBUS_KEY_diaeresis, IBUS_KEY_Y, 0x0178, -+IBUS_KEY_diaeresis, IBUS_KEY_grave, 0x1FED, -+IBUS_KEY_diaeresis, IBUS_KEY_a, 0x00E4, -+IBUS_KEY_diaeresis, IBUS_KEY_e, 0x00EB, -+IBUS_KEY_diaeresis, IBUS_KEY_i, 0x00EF, -+IBUS_KEY_diaeresis, IBUS_KEY_o, 0x00F6, -+IBUS_KEY_diaeresis, IBUS_KEY_u, 0x00FC, -+IBUS_KEY_diaeresis, IBUS_KEY_y, 0x00FF, -+IBUS_KEY_diaeresis, IBUS_KEY_asciitilde, 0x1FC1, -+IBUS_KEY_diaeresis, IBUS_KEY_acute, 0x0385, -+IBUS_KEY_diaeresis, 0x2207, 0x2362, -+IBUS_KEY_diaeresis, 0x2218, 0x2364, -+IBUS_KEY_diaeresis, IBUS_KEY_uptack, 0x2361, -+IBUS_KEY_diaeresis, IBUS_KEY_emopencircle, 0x2365, -+IBUS_KEY_diaeresis, IBUS_KEY_dead_grave, 0x1FED, -+IBUS_KEY_diaeresis, IBUS_KEY_dead_acute, 0x0385, -+IBUS_KEY_diaeresis, IBUS_KEY_dead_tilde, 0x1FC1, -+IBUS_KEY_macron, IBUS_KEY_A, 0x0100, -+IBUS_KEY_macron, IBUS_KEY_E, 0x0112, -+IBUS_KEY_macron, IBUS_KEY_G, 0x1E20, -+IBUS_KEY_macron, IBUS_KEY_I, 0x012A, -+IBUS_KEY_macron, IBUS_KEY_O, 0x014C, -+IBUS_KEY_macron, IBUS_KEY_U, 0x016A, -+IBUS_KEY_macron, IBUS_KEY_Y, 0x0232, -+IBUS_KEY_macron, IBUS_KEY_a, 0x0101, -+IBUS_KEY_macron, IBUS_KEY_e, 0x0113, -+IBUS_KEY_macron, IBUS_KEY_g, 0x1E21, -+IBUS_KEY_macron, IBUS_KEY_i, 0x012B, -+IBUS_KEY_macron, IBUS_KEY_o, 0x014D, -+IBUS_KEY_macron, IBUS_KEY_u, 0x016B, -+IBUS_KEY_macron, IBUS_KEY_y, 0x0233, -+IBUS_KEY_macron, IBUS_KEY_Adiaeresis, 0x01DE, -+IBUS_KEY_macron, IBUS_KEY_AE, 0x01E2, -+IBUS_KEY_macron, IBUS_KEY_Otilde, 0x022C, -+IBUS_KEY_macron, IBUS_KEY_Odiaeresis, 0x022A, -+IBUS_KEY_macron, IBUS_KEY_Udiaeresis, 0x01D5, -+IBUS_KEY_macron, IBUS_KEY_adiaeresis, 0x01DF, -+IBUS_KEY_macron, IBUS_KEY_ae, 0x01E3, -+IBUS_KEY_macron, IBUS_KEY_otilde, 0x022D, -+IBUS_KEY_macron, IBUS_KEY_odiaeresis, 0x022B, -+IBUS_KEY_macron, IBUS_KEY_udiaeresis, 0x01D6, -+IBUS_KEY_macron, 0x01EA, 0x01EC, -+IBUS_KEY_macron, 0x01EB, 0x01ED, -+IBUS_KEY_macron, 0x0226, 0x01E0, -+IBUS_KEY_macron, 0x0227, 0x01E1, -+IBUS_KEY_macron, 0x022E, 0x0230, -+IBUS_KEY_macron, 0x022F, 0x0231, -+IBUS_KEY_macron, IBUS_KEY_Cyrillic_i, 0x04E3, -+IBUS_KEY_macron, IBUS_KEY_Cyrillic_u, 0x04EF, -+IBUS_KEY_macron, IBUS_KEY_Cyrillic_I, 0x04E2, -+IBUS_KEY_macron, IBUS_KEY_Cyrillic_U, 0x04EE, -+IBUS_KEY_macron, IBUS_KEY_Greek_ALPHA, 0x1FB9, -+IBUS_KEY_macron, IBUS_KEY_Greek_IOTA, 0x1FD9, -+IBUS_KEY_macron, IBUS_KEY_Greek_UPSILON, 0x1FE9, -+IBUS_KEY_macron, IBUS_KEY_Greek_alpha, 0x1FB1, -+IBUS_KEY_macron, IBUS_KEY_Greek_iota, 0x1FD1, -+IBUS_KEY_macron, IBUS_KEY_Greek_upsilon, 0x1FE1, -+IBUS_KEY_macron, 0x1E36, 0x1E38, -+IBUS_KEY_macron, 0x1E37, 0x1E39, -+IBUS_KEY_macron, 0x1E5A, 0x1E5C, -+IBUS_KEY_macron, 0x1E5B, 0x1E5D, -+IBUS_KEY_macron, IBUS_KEY_uptack, 0x2351, -+IBUS_KEY_acute, IBUS_KEY_A, 0x00C1, -+IBUS_KEY_acute, IBUS_KEY_C, 0x0106, -+IBUS_KEY_acute, IBUS_KEY_E, 0x00C9, -+IBUS_KEY_acute, IBUS_KEY_G, 0x01F4, -+IBUS_KEY_acute, IBUS_KEY_I, 0x00CD, -+IBUS_KEY_acute, IBUS_KEY_K, 0x1E30, -+IBUS_KEY_acute, IBUS_KEY_L, 0x0139, -+IBUS_KEY_acute, IBUS_KEY_M, 0x1E3E, -+IBUS_KEY_acute, IBUS_KEY_N, 0x0143, -+IBUS_KEY_acute, IBUS_KEY_O, 0x00D3, -+IBUS_KEY_acute, IBUS_KEY_P, 0x1E54, -+IBUS_KEY_acute, IBUS_KEY_R, 0x0154, -+IBUS_KEY_acute, IBUS_KEY_S, 0x015A, -+IBUS_KEY_acute, IBUS_KEY_U, 0x00DA, -+IBUS_KEY_acute, IBUS_KEY_W, 0x1E82, -+IBUS_KEY_acute, IBUS_KEY_Y, 0x00DD, -+IBUS_KEY_acute, IBUS_KEY_Z, 0x0179, -+IBUS_KEY_acute, IBUS_KEY_a, 0x00E1, -+IBUS_KEY_acute, IBUS_KEY_c, 0x0107, -+IBUS_KEY_acute, IBUS_KEY_e, 0x00E9, -+IBUS_KEY_acute, IBUS_KEY_g, 0x01F5, -+IBUS_KEY_acute, IBUS_KEY_i, 0x00ED, -+IBUS_KEY_acute, IBUS_KEY_k, 0x1E31, -+IBUS_KEY_acute, IBUS_KEY_l, 0x013A, -+IBUS_KEY_acute, IBUS_KEY_m, 0x1E3F, -+IBUS_KEY_acute, IBUS_KEY_n, 0x0144, -+IBUS_KEY_acute, IBUS_KEY_o, 0x00F3, -+IBUS_KEY_acute, IBUS_KEY_p, 0x1E55, -+IBUS_KEY_acute, IBUS_KEY_r, 0x0155, -+IBUS_KEY_acute, IBUS_KEY_s, 0x015B, -+IBUS_KEY_acute, IBUS_KEY_u, 0x00FA, -+IBUS_KEY_acute, IBUS_KEY_w, 0x1E83, -+IBUS_KEY_acute, IBUS_KEY_y, 0x00FD, -+IBUS_KEY_acute, IBUS_KEY_z, 0x017A, -+IBUS_KEY_acute, IBUS_KEY_Acircumflex, 0x1EA4, -+IBUS_KEY_acute, IBUS_KEY_Aring, 0x01FA, -+IBUS_KEY_acute, IBUS_KEY_AE, 0x01FC, -+IBUS_KEY_acute, IBUS_KEY_Ccedilla, 0x1E08, -+IBUS_KEY_acute, IBUS_KEY_Ecircumflex, 0x1EBE, -+IBUS_KEY_acute, IBUS_KEY_Idiaeresis, 0x1E2E, -+IBUS_KEY_acute, IBUS_KEY_Ocircumflex, 0x1ED0, -+IBUS_KEY_acute, IBUS_KEY_Otilde, 0x1E4C, -+IBUS_KEY_acute, IBUS_KEY_Ooblique, 0x01FE, -+IBUS_KEY_acute, IBUS_KEY_Udiaeresis, 0x01D7, -+IBUS_KEY_acute, IBUS_KEY_acircumflex, 0x1EA5, -+IBUS_KEY_acute, IBUS_KEY_aring, 0x01FB, -+IBUS_KEY_acute, IBUS_KEY_ae, 0x01FD, -+IBUS_KEY_acute, IBUS_KEY_ccedilla, 0x1E09, -+IBUS_KEY_acute, IBUS_KEY_ecircumflex, 0x1EBF, -+IBUS_KEY_acute, IBUS_KEY_idiaeresis, 0x1E2F, -+IBUS_KEY_acute, IBUS_KEY_ocircumflex, 0x1ED1, -+IBUS_KEY_acute, IBUS_KEY_otilde, 0x1E4D, -+IBUS_KEY_acute, IBUS_KEY_oslash, 0x01FF, -+IBUS_KEY_acute, IBUS_KEY_udiaeresis, 0x01D8, -+IBUS_KEY_acute, IBUS_KEY_Abreve, 0x1EAE, -+IBUS_KEY_acute, IBUS_KEY_abreve, 0x1EAF, -+IBUS_KEY_acute, IBUS_KEY_Emacron, 0x1E16, -+IBUS_KEY_acute, IBUS_KEY_emacron, 0x1E17, -+IBUS_KEY_acute, IBUS_KEY_Omacron, 0x1E52, -+IBUS_KEY_acute, IBUS_KEY_Utilde, 0x1E78, -+IBUS_KEY_acute, IBUS_KEY_omacron, 0x1E53, -+IBUS_KEY_acute, IBUS_KEY_utilde, 0x1E79, -+IBUS_KEY_acute, IBUS_KEY_Cyrillic_ghe, 0x0453, -+IBUS_KEY_acute, IBUS_KEY_Cyrillic_ka, 0x045C, -+IBUS_KEY_acute, IBUS_KEY_Cyrillic_GHE, 0x0403, -+IBUS_KEY_acute, IBUS_KEY_Cyrillic_KA, 0x040C, -+IBUS_KEY_acute, IBUS_KEY_Greek_iotadieresis, 0x0390, -+IBUS_KEY_acute, IBUS_KEY_Greek_upsilondieresis, 0x03B0, -+IBUS_KEY_acute, IBUS_KEY_Greek_ALPHA, 0x0386, -+IBUS_KEY_acute, IBUS_KEY_Greek_EPSILON, 0x0388, -+IBUS_KEY_acute, IBUS_KEY_Greek_ETA, 0x0389, -+IBUS_KEY_acute, IBUS_KEY_Greek_IOTA, 0x038A, -+IBUS_KEY_acute, IBUS_KEY_Greek_OMICRON, 0x038C, -+IBUS_KEY_acute, IBUS_KEY_Greek_UPSILON, 0x038E, -+IBUS_KEY_acute, IBUS_KEY_Greek_OMEGA, 0x038F, -+IBUS_KEY_acute, IBUS_KEY_Greek_alpha, 0x03AC, -+IBUS_KEY_acute, IBUS_KEY_Greek_epsilon, 0x03AD, -+IBUS_KEY_acute, IBUS_KEY_Greek_eta, 0x03AE, -+IBUS_KEY_acute, IBUS_KEY_Greek_iota, 0x03AF, -+IBUS_KEY_acute, IBUS_KEY_Greek_omicron, 0x03CC, -+IBUS_KEY_acute, IBUS_KEY_Greek_upsilon, 0x03CD, -+IBUS_KEY_acute, IBUS_KEY_Greek_omega, 0x03CE, -+IBUS_KEY_acute, 0x1F00, 0x1F04, -+IBUS_KEY_acute, 0x1F01, 0x1F05, -+IBUS_KEY_acute, 0x1F08, 0x1F0C, -+IBUS_KEY_acute, 0x1F09, 0x1F0D, -+IBUS_KEY_acute, 0x1F10, 0x1F14, -+IBUS_KEY_acute, 0x1F11, 0x1F15, -+IBUS_KEY_acute, 0x1F18, 0x1F1C, -+IBUS_KEY_acute, 0x1F19, 0x1F1D, -+IBUS_KEY_acute, 0x1F20, 0x1F24, -+IBUS_KEY_acute, 0x1F21, 0x1F25, -+IBUS_KEY_acute, 0x1F28, 0x1F2C, -+IBUS_KEY_acute, 0x1F29, 0x1F2D, -+IBUS_KEY_acute, 0x1F30, 0x1F34, -+IBUS_KEY_acute, 0x1F31, 0x1F35, -+IBUS_KEY_acute, 0x1F38, 0x1F3C, -+IBUS_KEY_acute, 0x1F39, 0x1F3D, -+IBUS_KEY_acute, 0x1F40, 0x1F44, -+IBUS_KEY_acute, 0x1F41, 0x1F45, -+IBUS_KEY_acute, 0x1F48, 0x1F4C, -+IBUS_KEY_acute, 0x1F49, 0x1F4D, -+IBUS_KEY_acute, 0x1F50, 0x1F54, -+IBUS_KEY_acute, 0x1F51, 0x1F55, -+IBUS_KEY_acute, 0x1F59, 0x1F5D, -+IBUS_KEY_acute, 0x1F60, 0x1F64, -+IBUS_KEY_acute, 0x1F61, 0x1F65, -+IBUS_KEY_acute, 0x1F68, 0x1F6C, -+IBUS_KEY_acute, 0x1F69, 0x1F6D, -+IBUS_KEY_cedilla, IBUS_KEY_C, 0x00C7, -+IBUS_KEY_cedilla, IBUS_KEY_D, 0x1E10, -+IBUS_KEY_cedilla, IBUS_KEY_E, 0x0228, -+IBUS_KEY_cedilla, IBUS_KEY_G, 0x0122, -+IBUS_KEY_cedilla, IBUS_KEY_H, 0x1E28, -+IBUS_KEY_cedilla, IBUS_KEY_K, 0x0136, -+IBUS_KEY_cedilla, IBUS_KEY_L, 0x013B, -+IBUS_KEY_cedilla, IBUS_KEY_N, 0x0145, -+IBUS_KEY_cedilla, IBUS_KEY_R, 0x0156, -+IBUS_KEY_cedilla, IBUS_KEY_S, 0x015E, -+IBUS_KEY_cedilla, IBUS_KEY_T, 0x0162, -+IBUS_KEY_cedilla, IBUS_KEY_c, 0x00E7, -+IBUS_KEY_cedilla, IBUS_KEY_d, 0x1E11, -+IBUS_KEY_cedilla, IBUS_KEY_e, 0x0229, -+IBUS_KEY_cedilla, IBUS_KEY_g, 0x0123, -+IBUS_KEY_cedilla, IBUS_KEY_h, 0x1E29, -+IBUS_KEY_cedilla, IBUS_KEY_k, 0x0137, -+IBUS_KEY_cedilla, IBUS_KEY_l, 0x013C, -+IBUS_KEY_cedilla, IBUS_KEY_n, 0x0146, -+IBUS_KEY_cedilla, IBUS_KEY_r, 0x0157, -+IBUS_KEY_cedilla, IBUS_KEY_s, 0x015F, -+IBUS_KEY_cedilla, IBUS_KEY_t, 0x0163, -+IBUS_KEY_division, 0x2395, 0x2339, -+IBUS_KEY_breve, IBUS_KEY_G, 0x011E, -+IBUS_KEY_breve, IBUS_KEY_g, 0x011F, -+0x05B4, IBUS_KEY_hebrew_yod, 0xFB1D, -+0x05B7, 0x05F2, 0xFB1F, -+0x05B7, IBUS_KEY_hebrew_aleph, 0xFB2E, -+0x05B8, IBUS_KEY_hebrew_aleph, 0xFB2F, -+0x05B9, IBUS_KEY_hebrew_waw, 0xFB4B, -+0x05BC, IBUS_KEY_hebrew_aleph, 0xFB30, -+0x05BC, IBUS_KEY_hebrew_bet, 0xFB31, -+0x05BC, IBUS_KEY_hebrew_gimel, 0xFB32, -+0x05BC, IBUS_KEY_hebrew_dalet, 0xFB33, -+0x05BC, IBUS_KEY_hebrew_he, 0xFB34, -+0x05BC, IBUS_KEY_hebrew_waw, 0xFB35, -+0x05BC, IBUS_KEY_hebrew_zain, 0xFB36, -+0x05BC, IBUS_KEY_hebrew_tet, 0xFB38, -+0x05BC, IBUS_KEY_hebrew_yod, 0xFB39, -+0x05BC, IBUS_KEY_hebrew_finalkaph, 0xFB3A, -+0x05BC, IBUS_KEY_hebrew_kaph, 0xFB3B, -+0x05BC, IBUS_KEY_hebrew_lamed, 0xFB3C, -+0x05BC, IBUS_KEY_hebrew_mem, 0xFB3E, -+0x05BC, IBUS_KEY_hebrew_nun, 0xFB40, -+0x05BC, IBUS_KEY_hebrew_samech, 0xFB41, -+0x05BC, IBUS_KEY_hebrew_finalpe, 0xFB43, -+0x05BC, IBUS_KEY_hebrew_pe, 0xFB44, -+0x05BC, IBUS_KEY_hebrew_zade, 0xFB46, -+0x05BC, IBUS_KEY_hebrew_kuf, 0xFB47, -+0x05BC, IBUS_KEY_hebrew_resh, 0xFB48, -+0x05BC, IBUS_KEY_hebrew_shin, 0xFB49, -+0x05BC, IBUS_KEY_hebrew_taf, 0xFB4A, -+0x05BF, IBUS_KEY_hebrew_bet, 0xFB4C, -+0x05BF, IBUS_KEY_hebrew_kaph, 0xFB4D, -+0x05BF, IBUS_KEY_hebrew_pe, 0xFB4E, -+0x05C1, IBUS_KEY_hebrew_shin, 0xFB2A, -+0x05C1, 0xFB49, 0xFB2C, -+0x05C2, IBUS_KEY_hebrew_shin, 0xFB2B, -+0x05C2, 0xFB49, 0xFB2D, -+0x0653, IBUS_KEY_Arabic_alef, 0x0622, -+0x0654, IBUS_KEY_Arabic_alef, 0x0623, -+0x0654, IBUS_KEY_Arabic_waw, 0x0624, -+0x0654, IBUS_KEY_Arabic_yeh, 0x0626, -+0x0654, 0x06C1, 0x06C2, -+0x0654, 0x06D2, 0x06D3, -+0x0654, 0x06D5, 0x06C0, -+0x0655, IBUS_KEY_Arabic_alef, 0x0625, -+IBUS_KEY_Cyrillic_pe, IBUS_KEY_Cyrillic_a, 0x00A7, -+IBUS_KEY_Cyrillic_IE, IBUS_KEY_equal, 0x20AC, -+IBUS_KEY_Cyrillic_EN, IBUS_KEY_Cyrillic_o, 0x2116, -+IBUS_KEY_Cyrillic_EN, IBUS_KEY_Cyrillic_O, 0x2116, -+IBUS_KEY_Cyrillic_ES, IBUS_KEY_equal, 0x20AC, -+IBUS_KEY_Greek_ALPHA, IBUS_KEY_apostrophe, 0x0386, -+IBUS_KEY_Greek_EPSILON, IBUS_KEY_apostrophe, 0x0388, -+IBUS_KEY_Greek_ETA, IBUS_KEY_apostrophe, 0x0389, -+IBUS_KEY_Greek_IOTA, IBUS_KEY_quotedbl, 0x03AA, -+IBUS_KEY_Greek_IOTA, IBUS_KEY_apostrophe, 0x038A, -+IBUS_KEY_Greek_OMICRON, IBUS_KEY_apostrophe, 0x038C, -+IBUS_KEY_Greek_UPSILON, IBUS_KEY_quotedbl, 0x03AB, -+IBUS_KEY_Greek_UPSILON, IBUS_KEY_apostrophe, 0x038E, -+IBUS_KEY_Greek_OMEGA, IBUS_KEY_apostrophe, 0x038F, -+IBUS_KEY_Greek_alpha, IBUS_KEY_apostrophe, 0x03AC, -+IBUS_KEY_Greek_epsilon, IBUS_KEY_apostrophe, 0x03AD, -+IBUS_KEY_Greek_eta, IBUS_KEY_apostrophe, 0x03AE, -+IBUS_KEY_Greek_iota, IBUS_KEY_quotedbl, 0x03CA, -+IBUS_KEY_Greek_iota, IBUS_KEY_apostrophe, 0x03AF, -+IBUS_KEY_Greek_iota, IBUS_KEY_Greek_alphaaccent, 0x1FB4, -+IBUS_KEY_Greek_iota, IBUS_KEY_Greek_etaaccent, 0x1FC4, -+IBUS_KEY_Greek_iota, IBUS_KEY_Greek_omegaaccent, 0x1FF4, -+IBUS_KEY_Greek_iota, IBUS_KEY_Greek_ALPHA, 0x1FBC, -+IBUS_KEY_Greek_iota, IBUS_KEY_Greek_ETA, 0x1FCC, -+IBUS_KEY_Greek_iota, IBUS_KEY_Greek_OMEGA, 0x1FFC, -+IBUS_KEY_Greek_iota, IBUS_KEY_Greek_alpha, 0x1FB3, -+IBUS_KEY_Greek_iota, IBUS_KEY_Greek_eta, 0x1FC3, -+IBUS_KEY_Greek_iota, IBUS_KEY_Greek_omega, 0x1FF3, -+IBUS_KEY_Greek_iota, 0x1F00, 0x1F80, -+IBUS_KEY_Greek_iota, 0x1F01, 0x1F81, -+IBUS_KEY_Greek_iota, 0x1F02, 0x1F82, -+IBUS_KEY_Greek_iota, 0x1F03, 0x1F83, -+IBUS_KEY_Greek_iota, 0x1F04, 0x1F84, -+IBUS_KEY_Greek_iota, 0x1F05, 0x1F85, -+IBUS_KEY_Greek_iota, 0x1F06, 0x1F86, -+IBUS_KEY_Greek_iota, 0x1F07, 0x1F87, -+IBUS_KEY_Greek_iota, 0x1F08, 0x1F88, -+IBUS_KEY_Greek_iota, 0x1F09, 0x1F89, -+IBUS_KEY_Greek_iota, 0x1F0A, 0x1F8A, -+IBUS_KEY_Greek_iota, 0x1F0B, 0x1F8B, -+IBUS_KEY_Greek_iota, 0x1F0C, 0x1F8C, -+IBUS_KEY_Greek_iota, 0x1F0D, 0x1F8D, -+IBUS_KEY_Greek_iota, 0x1F0E, 0x1F8E, -+IBUS_KEY_Greek_iota, 0x1F0F, 0x1F8F, -+IBUS_KEY_Greek_iota, 0x1F20, 0x1F90, -+IBUS_KEY_Greek_iota, 0x1F21, 0x1F91, -+IBUS_KEY_Greek_iota, 0x1F22, 0x1F92, -+IBUS_KEY_Greek_iota, 0x1F23, 0x1F93, -+IBUS_KEY_Greek_iota, 0x1F24, 0x1F94, -+IBUS_KEY_Greek_iota, 0x1F25, 0x1F95, -+IBUS_KEY_Greek_iota, 0x1F26, 0x1F96, -+IBUS_KEY_Greek_iota, 0x1F27, 0x1F97, -+IBUS_KEY_Greek_iota, 0x1F28, 0x1F98, -+IBUS_KEY_Greek_iota, 0x1F29, 0x1F99, -+IBUS_KEY_Greek_iota, 0x1F2A, 0x1F9A, -+IBUS_KEY_Greek_iota, 0x1F2B, 0x1F9B, -+IBUS_KEY_Greek_iota, 0x1F2C, 0x1F9C, -+IBUS_KEY_Greek_iota, 0x1F2D, 0x1F9D, -+IBUS_KEY_Greek_iota, 0x1F2E, 0x1F9E, -+IBUS_KEY_Greek_iota, 0x1F2F, 0x1F9F, -+IBUS_KEY_Greek_iota, 0x1F60, 0x1FA0, -+IBUS_KEY_Greek_iota, 0x1F61, 0x1FA1, -+IBUS_KEY_Greek_iota, 0x1F62, 0x1FA2, -+IBUS_KEY_Greek_iota, 0x1F63, 0x1FA3, -+IBUS_KEY_Greek_iota, 0x1F64, 0x1FA4, -+IBUS_KEY_Greek_iota, 0x1F65, 0x1FA5, -+IBUS_KEY_Greek_iota, 0x1F66, 0x1FA6, -+IBUS_KEY_Greek_iota, 0x1F67, 0x1FA7, -+IBUS_KEY_Greek_iota, 0x1F68, 0x1FA8, -+IBUS_KEY_Greek_iota, 0x1F69, 0x1FA9, -+IBUS_KEY_Greek_iota, 0x1F6A, 0x1FAA, -+IBUS_KEY_Greek_iota, 0x1F6B, 0x1FAB, -+IBUS_KEY_Greek_iota, 0x1F6C, 0x1FAC, -+IBUS_KEY_Greek_iota, 0x1F6D, 0x1FAD, -+IBUS_KEY_Greek_iota, 0x1F6E, 0x1FAE, -+IBUS_KEY_Greek_iota, 0x1F6F, 0x1FAF, -+IBUS_KEY_Greek_iota, 0x1F70, 0x1FB2, -+IBUS_KEY_Greek_iota, 0x1F74, 0x1FC2, -+IBUS_KEY_Greek_iota, 0x1F7C, 0x1FF2, -+IBUS_KEY_Greek_iota, 0x1FB6, 0x1FB7, -+IBUS_KEY_Greek_iota, 0x1FC6, 0x1FC7, -+IBUS_KEY_Greek_iota, 0x1FF6, 0x1FF7, -+IBUS_KEY_Greek_omicron, IBUS_KEY_apostrophe, 0x03CC, -+IBUS_KEY_Greek_upsilon, IBUS_KEY_quotedbl, 0x03CB, -+IBUS_KEY_Greek_upsilon, IBUS_KEY_apostrophe, 0x03CD, -+IBUS_KEY_Greek_omega, IBUS_KEY_apostrophe, 0x03CE, -+IBUS_KEY_lessthanequal, 0x0338, 0x2270, -+IBUS_KEY_greaterthanequal, 0x0338, 0x2271, -+IBUS_KEY_approximate, 0x0338, 0x2247, -+IBUS_KEY_identical, 0x0338, 0x2262, -+IBUS_KEY_includedin, 0x0338, 0x2284, -+IBUS_KEY_includes, 0x0338, 0x2285, -+0x093C, 0x0915, 0x0958, -+0x093C, 0x0916, 0x0959, -+0x093C, 0x0917, 0x095A, -+0x093C, 0x091C, 0x095B, -+0x093C, 0x0921, 0x095C, -+0x093C, 0x0922, 0x095D, -+0x093C, 0x0928, 0x0929, -+0x093C, 0x092B, 0x095E, -+0x093C, 0x092F, 0x095F, -+0x093C, 0x0930, 0x0931, -+0x093C, 0x0933, 0x0934, -+0x09BC, 0x09A1, 0x09DC, -+0x09BC, 0x09A2, 0x09DD, -+0x09BC, 0x09AF, 0x09DF, -+0x09C7, 0x09BE, 0x09CB, -+0x09C7, 0x09D7, 0x09CC, -+0x0A3C, 0x0A16, 0x0A59, -+0x0A3C, 0x0A17, 0x0A5A, -+0x0A3C, 0x0A1C, 0x0A5B, -+0x0A3C, 0x0A2B, 0x0A5E, -+0x0A3C, 0x0A32, 0x0A33, -+0x0A3C, 0x0A38, 0x0A36, -+0x0B3C, 0x0B21, 0x0B5C, -+0x0B3C, 0x0B22, 0x0B5D, -+0x0B47, 0x0B3E, 0x0B4B, -+0x0B47, 0x0B56, 0x0B48, -+0x0B47, 0x0B57, 0x0B4C, -+IBUS_KEY_leftcaret, 0x0338, 0x226E, -+IBUS_KEY_rightcaret, 0x0338, 0x226F, -+IBUS_KEY_underbar, IBUS_KEY_parenleft, 0x208D, -+IBUS_KEY_underbar, IBUS_KEY_parenright, 0x208E, -+IBUS_KEY_underbar, IBUS_KEY_plus, 0x208A, -+IBUS_KEY_underbar, IBUS_KEY_0, 0x2080, -+IBUS_KEY_underbar, IBUS_KEY_1, 0x2081, -+IBUS_KEY_underbar, IBUS_KEY_2, 0x2082, -+IBUS_KEY_underbar, IBUS_KEY_3, 0x2083, -+IBUS_KEY_underbar, IBUS_KEY_4, 0x2084, -+IBUS_KEY_underbar, IBUS_KEY_5, 0x2085, -+IBUS_KEY_underbar, IBUS_KEY_6, 0x2086, -+IBUS_KEY_underbar, IBUS_KEY_7, 0x2087, -+IBUS_KEY_underbar, IBUS_KEY_8, 0x2088, -+IBUS_KEY_underbar, IBUS_KEY_9, 0x2089, -+IBUS_KEY_underbar, IBUS_KEY_equal, 0x208C, -+0x0BC6, 0x0BBE, 0x0BCA, -+0x0BC6, 0x0BD7, 0x0BCC, -+IBUS_KEY_underbar, 0x2212, 0x208B, -+IBUS_KEY_underbar, IBUS_KEY_KP_Space, 0x2082, -+IBUS_KEY_underbar, IBUS_KEY_KP_Add, 0x208A, -+IBUS_KEY_underbar, IBUS_KEY_KP_0, 0x2080, -+IBUS_KEY_underbar, IBUS_KEY_KP_1, 0x2081, -+IBUS_KEY_underbar, IBUS_KEY_KP_2, 0x2082, -+IBUS_KEY_underbar, IBUS_KEY_KP_3, 0x2083, -+IBUS_KEY_underbar, IBUS_KEY_KP_4, 0x2084, -+IBUS_KEY_underbar, IBUS_KEY_KP_5, 0x2085, -+IBUS_KEY_underbar, IBUS_KEY_KP_6, 0x2086, -+IBUS_KEY_underbar, IBUS_KEY_KP_7, 0x2087, -+IBUS_KEY_underbar, IBUS_KEY_KP_8, 0x2088, -+IBUS_KEY_underbar, IBUS_KEY_KP_9, 0x2089, -+IBUS_KEY_underbar, IBUS_KEY_KP_Equal, 0x208C, -+0x0BC7, 0x0BBE, 0x0BCB, -+0x0BD7, 0x0B92, 0x0B94, -+IBUS_KEY_rightshoe, 0x0338, 0x2285, -+IBUS_KEY_leftshoe, 0x0338, 0x2284, -+IBUS_KEY_righttack, 0x0338, 0x22AC, -+0x0C46, 0x0C56, 0x0C48, -+0x0CBF, 0x0CD5, 0x0CC0, -+0x0CC6, 0x0CC2, 0x0CCA, -+0x0CC6, 0x0CD5, 0x0CC7, -+0x0CC6, 0x0CD6, 0x0CC8, -+0x0CCA, 0x0CD5, 0x0CCB, -+0x0D46, 0x0D3E, 0x0D4A, -+0x0D46, 0x0D57, 0x0D4C, -+0x0D47, 0x0D3E, 0x0D4B, -+0x0DD9, 0x0DCA, 0x0DDA, -+0x0DD9, 0x0DCF, 0x0DDC, -+0x0DD9, 0x0DDF, 0x0DDE, -+0x0DDC, 0x0DCA, 0x0DDD, -+0x0F71, 0x0F72, 0x0F73, -+0x0F71, 0x0F74, 0x0F75, -+0x0F71, 0x0F80, 0x0F81, -+0x0F90, 0x0FB5, 0x0FB9, -+0x0F92, 0x0FB7, 0x0F93, -+0x0F9C, 0x0FB7, 0x0F9D, -+0x0FA1, 0x0FB7, 0x0FA2, -+0x0FA6, 0x0FB7, 0x0FA7, -+0x0FAB, 0x0FB7, 0x0FAC, -+0x0FB2, 0x0F80, 0x0F76, -+0x0FB3, 0x0F80, 0x0F78, -+0x0FB5, 0x0F40, 0x0F69, -+0x0FB7, 0x0F42, 0x0F43, -+0x0FB7, 0x0F4C, 0x0F4D, -+0x0FB7, 0x0F51, 0x0F52, -+0x0FB7, 0x0F56, 0x0F57, -+0x0FB7, 0x0F5B, 0x0F5C, -+0x102E, 0x1025, 0x1026, -+0x1100, 0x1100, 0x1101, -+0x1102, 0x1100, 0x1113, -+0x1102, 0x1102, 0x1114, -+0x1102, 0x1103, 0x1115, -+0x1102, 0x1107, 0x1116, -+0x1103, 0x1100, 0x1117, -+0x1103, 0x1103, 0x1104, -+0x1105, 0x1102, 0x1118, -+0x1105, 0x1105, 0x1119, -+0x1105, 0x110B, 0x111B, -+0x1105, 0x1112, 0x111A, -+0x1106, 0x1107, 0x111C, -+0x1106, 0x110B, 0x111D, -+0x1107, 0x1100, 0x111E, -+0x1107, 0x1102, 0x111F, -+0x1107, 0x1103, 0x1120, -+0x1107, 0x1107, 0x1108, -+0x1107, 0x1109, 0x1121, -+0x1107, 0x110A, 0x1125, -+0x1107, 0x110B, 0x112B, -+0x1107, 0x110C, 0x1127, -+0x1107, 0x110E, 0x1128, -+0x1107, 0x1110, 0x1129, -+0x1107, 0x1111, 0x112A, -+0x1107, 0x112B, 0x112C, -+0x1107, 0x112D, 0x1122, -+0x1107, 0x112F, 0x1123, -+0x1107, 0x1132, 0x1124, -+0x1107, 0x1136, 0x1126, -+0x1108, 0x110B, 0x112C, -+0x1109, 0x1100, 0x112D, -+0x1109, 0x1102, 0x112E, -+0x1109, 0x1103, 0x112F, -+0x1109, 0x1105, 0x1130, -+0x1109, 0x1106, 0x1131, -+0x1109, 0x1107, 0x1132, -+0x1109, 0x1109, 0x110A, -+0x1109, 0x110A, 0x1134, -+0x1109, 0x110B, 0x1135, -+0x1109, 0x110C, 0x1136, -+0x1109, 0x110E, 0x1137, -+0x1109, 0x110F, 0x1138, -+0x1109, 0x1110, 0x1139, -+0x1109, 0x1111, 0x113A, -+0x1109, 0x1112, 0x113B, -+0x1109, 0x111E, 0x1133, -+0x110A, 0x1109, 0x1134, -+0x110B, 0x1100, 0x1141, -+0x110B, 0x1103, 0x1142, -+0x110B, 0x1106, 0x1143, -+0x110B, 0x1107, 0x1144, -+0x110B, 0x1109, 0x1145, -+0x110B, 0x110B, 0x1147, -+0x110B, 0x110C, 0x1148, -+0x110B, 0x110E, 0x1149, -+0x110B, 0x1110, 0x114A, -+0x110B, 0x1111, 0x114B, -+0x110B, 0x1140, 0x1146, -+0x110C, 0x110B, 0x114D, -+0x110C, 0x110C, 0x110D, -+0x110E, 0x110F, 0x1152, -+0x110E, 0x1112, 0x1153, -+0x1111, 0x1107, 0x1156, -+0x1111, 0x110B, 0x1157, -+0x1112, 0x1112, 0x1158, -+0x1121, 0x1100, 0x1122, -+0x1121, 0x1103, 0x1123, -+0x1121, 0x1107, 0x1124, -+0x1121, 0x1109, 0x1125, -+0x1121, 0x110C, 0x1126, -+0x1132, 0x1100, 0x1133, -+0x113C, 0x113C, 0x113D, -+0x113E, 0x113E, 0x113F, -+0x114E, 0x114E, 0x114F, -+0x1150, 0x1150, 0x1151, -+0x1161, 0x1169, 0x1176, -+0x1161, 0x116E, 0x1177, -+0x1161, 0x1175, 0x1162, -+0x1163, 0x1169, 0x1178, -+0x1163, 0x116D, 0x1179, -+0x1163, 0x1175, 0x1164, -+0x1165, 0x1169, 0x117A, -+0x1165, 0x116E, 0x117B, -+0x1165, 0x1173, 0x117C, -+0x1165, 0x1175, 0x1166, -+0x1167, 0x1169, 0x117D, -+0x1167, 0x116E, 0x117E, -+0x1167, 0x1175, 0x1168, -+0x1169, 0x1161, 0x116A, -+0x1169, 0x1162, 0x116B, -+0x1169, 0x1165, 0x117F, -+0x1169, 0x1166, 0x1180, -+0x1169, 0x1168, 0x1181, -+0x1169, 0x1169, 0x1182, -+0x1169, 0x116E, 0x1183, -+0x1169, 0x1175, 0x116C, -+0x116A, 0x1175, 0x116B, -+0x116D, 0x1163, 0x1184, -+0x116D, 0x1164, 0x1185, -+0x116D, 0x1167, 0x1186, -+0x116D, 0x1169, 0x1187, -+0x116D, 0x1175, 0x1188, -+0x116E, 0x1161, 0x1189, -+0x116E, 0x1162, 0x118A, -+0x116E, 0x1165, 0x116F, -+0x116E, 0x1166, 0x1170, -+0x116E, 0x1168, 0x118C, -+0x116E, 0x116E, 0x118D, -+0x116E, 0x1175, 0x1171, -+0x116E, 0x117C, 0x118B, -+0x116F, 0x1173, 0x118B, -+0x116F, 0x1175, 0x1170, -+0x1172, 0x1161, 0x118E, -+0x1172, 0x1165, 0x118F, -+0x1172, 0x1166, 0x1190, -+0x1172, 0x1167, 0x1191, -+0x1172, 0x1168, 0x1192, -+0x1172, 0x116E, 0x1193, -+0x1172, 0x1175, 0x1194, -+0x1173, 0x116E, 0x1195, -+0x1173, 0x1173, 0x1196, -+0x1173, 0x1175, 0x1174, -+0x1174, 0x116E, 0x1197, -+0x1175, 0x1161, 0x1198, -+0x1175, 0x1163, 0x1199, -+0x1175, 0x1169, 0x119A, -+0x1175, 0x116E, 0x119B, -+0x1175, 0x1173, 0x119C, -+0x1175, 0x119E, 0x119D, -+0x119E, 0x1165, 0x119F, -+0x119E, 0x116E, 0x11A0, -+0x119E, 0x1175, 0x11A1, -+0x119E, 0x119E, 0x11A2, -+0x11A8, 0x11A8, 0x11A9, -+0x11A8, 0x11AF, 0x11C3, -+0x11A8, 0x11BA, 0x11AA, -+0x11A8, 0x11E7, 0x11C4, -+0x11AA, 0x11A8, 0x11C4, -+0x11AB, 0x11A8, 0x11C5, -+0x11AB, 0x11AE, 0x11C6, -+0x11AB, 0x11BA, 0x11C7, -+0x11AB, 0x11BD, 0x11AC, -+0x11AB, 0x11C0, 0x11C9, -+0x11AB, 0x11C2, 0x11AD, -+0x11AB, 0x11EB, 0x11C8, -+0x11AE, 0x11A8, 0x11CA, -+0x11AE, 0x11AF, 0x11CB, -+0x11AF, 0x11A8, 0x11B0, -+0x11AF, 0x11AA, 0x11CC, -+0x11AF, 0x11AB, 0x11CD, -+0x11AF, 0x11AE, 0x11CE, -+0x11AF, 0x11AF, 0x11D0, -+0x11AF, 0x11B7, 0x11B1, -+0x11AF, 0x11B8, 0x11B2, -+0x11AF, 0x11B9, 0x11D3, -+0x11AF, 0x11BA, 0x11B3, -+0x11AF, 0x11BB, 0x11D6, -+0x11AF, 0x11BF, 0x11D8, -+0x11AF, 0x11C0, 0x11B4, -+0x11AF, 0x11C1, 0x11B5, -+0x11AF, 0x11C2, 0x11B6, -+0x11AF, 0x11DA, 0x11D1, -+0x11AF, 0x11DD, 0x11D2, -+0x11AF, 0x11E5, 0x11D4, -+0x11AF, 0x11E6, 0x11D5, -+0x11AF, 0x11EB, 0x11D7, -+0x11AF, 0x11F9, 0x11D9, -+0x11B0, 0x11BA, 0x11CC, -+0x11B1, 0x11A8, 0x11D1, -+0x11B1, 0x11BA, 0x11D2, -+0x11B2, 0x11BA, 0x11D3, -+0x11B2, 0x11BC, 0x11D5, -+0x11B2, 0x11C2, 0x11D4, -+0x11B3, 0x11BA, 0x11D6, -+0x11B7, 0x11A8, 0x11DA, -+0x11B7, 0x11AF, 0x11DB, -+0x11B7, 0x11B8, 0x11DC, -+0x11B7, 0x11BA, 0x11DD, -+0x11B7, 0x11BB, 0x11DE, -+0x11B7, 0x11BC, 0x11E2, -+0x11B7, 0x11BE, 0x11E0, -+0x11B7, 0x11C2, 0x11E1, -+0x11B7, 0x11EB, 0x11DF, -+0x11B8, 0x11AF, 0x11E3, -+0x11B8, 0x11BA, 0x11B9, -+0x11B8, 0x11BC, 0x11E6, -+0x11B8, 0x11C1, 0x11E4, -+0x11B8, 0x11C2, 0x11E5, -+0x11BA, 0x11A8, 0x11E7, -+0x11BA, 0x11AE, 0x11E8, -+0x11BA, 0x11AF, 0x11E9, -+0x11BA, 0x11B8, 0x11EA, -+0x11BA, 0x11BA, 0x11BB, -+0x11BC, 0x11A8, 0x11EC, -+0x11BC, 0x11A9, 0x11ED, -+0x11BC, 0x11BC, 0x11EE, -+0x11BC, 0x11BF, 0x11EF, -+0x11C1, 0x11B8, 0x11F3, -+0x11C1, 0x11BC, 0x11F4, -+0x11C2, 0x11AB, 0x11F5, -+0x11C2, 0x11AF, 0x11F6, -+0x11C2, 0x11B7, 0x11F7, -+0x11C2, 0x11B8, 0x11F8, -+0x11CE, 0x11C2, 0x11CF, -+0x11DD, 0x11BA, 0x11DE, -+0x11EC, 0x11A8, 0x11ED, -+0x11F0, 0x11BA, 0x11F1, -+0x11F0, 0x11EB, 0x11F2, -+0x1FBF, IBUS_KEY_apostrophe, 0x1FCE, -+0x1FBF, IBUS_KEY_grave, 0x1FCD, -+0x1FBF, IBUS_KEY_asciitilde, 0x1FCF, -+0x1FBF, IBUS_KEY_acute, 0x1FCE, -+0x1FBF, IBUS_KEY_dead_grave, 0x1FCD, -+0x1FBF, IBUS_KEY_dead_acute, 0x1FCE, -+0x1FBF, IBUS_KEY_dead_tilde, 0x1FCF, -+0x1FFE, IBUS_KEY_apostrophe, 0x1FDE, -+0x1FFE, IBUS_KEY_grave, 0x1FDD, -+0x1FFE, IBUS_KEY_asciitilde, 0x1FDF, -+0x1FFE, IBUS_KEY_acute, 0x1FDE, -+0x1FFE, IBUS_KEY_dead_grave, 0x1FDD, -+0x1FFE, IBUS_KEY_dead_acute, 0x1FDE, -+0x1FFE, IBUS_KEY_dead_tilde, 0x1FDF, -+0x2190, IBUS_KEY_bar, 0x2345, -+0x2190, 0x2395, 0x2347, -+0x2191, IBUS_KEY_minus, 0x234F, -+0x2191, 0x2395, 0x2350, -+0x2192, IBUS_KEY_bar, 0x2346, -+0x2192, 0x2395, 0x2348, -+0x2193, IBUS_KEY_minus, 0x2356, -+0x2193, 0x2395, 0x2357, -+0x2203, 0x0338, 0x2204, -+0x2206, IBUS_KEY_underscore, 0x2359, -+0x2206, IBUS_KEY_bar, 0x234B, -+0x2206, 0x2395, 0x234D, -+0x2207, IBUS_KEY_bar, 0x2352, -+0x2207, IBUS_KEY_asciitilde, 0x236B, -+0x2207, IBUS_KEY_diaeresis, 0x2362, -+0x2207, 0x2395, 0x2354, -+0x2208, 0x0338, 0x2209, -+0x220A, IBUS_KEY_underscore, 0x2377, -+0x220B, 0x0338, 0x220C, -+0x2218, IBUS_KEY_underscore, 0x235B, -+0x2218, IBUS_KEY_diaeresis, 0x2364, -+0x2218, 0x2229, 0x235D, -+0x2218, IBUS_KEY_uptack, 0x2355, -+0x2218, IBUS_KEY_downtack, 0x234E, -+0x2218, 0x2395, 0x233B, -+0x2218, IBUS_KEY_emopencircle, 0x233E, -+0x2223, 0x0338, 0x2224, -+0x2225, 0x0338, 0x2226, -+0x2227, IBUS_KEY_asciitilde, 0x2372, -+0x2227, 0x2228, 0x22C4, -+0x2227, 0x2395, 0x2353, -+0x2228, IBUS_KEY_asciitilde, 0x2371, -+0x2228, 0x2227, 0x22C4, -+0x2228, 0x2395, 0x234C, -+0x2229, 0x2218, 0x235D, -+IBUS_KEY_union, IBUS_KEY_bar, 0x2366, -+0x223C, 0x0338, 0x2241, -+0x2243, 0x0338, 0x2244, -+0x2248, 0x0338, 0x2249, -+0x224D, 0x0338, 0x226D, -+0x2260, IBUS_KEY_underscore, 0x2262, -+0x2260, 0x2395, 0x236F, -+0x2272, 0x0338, 0x2274, -+0x2273, 0x0338, 0x2275, -+0x2276, 0x0338, 0x2278, -+0x2277, 0x0338, 0x2279, -+0x227A, 0x0338, 0x2280, -+0x227B, 0x0338, 0x2281, -+0x227C, 0x0338, 0x22E0, -+0x227D, 0x0338, 0x22E1, -+0x2282, IBUS_KEY_underscore, 0x2286, -+0x2282, IBUS_KEY_bar, 0x2367, -+0x2283, IBUS_KEY_underscore, 0x2287, -+0x2286, 0x0338, 0x2288, -+0x2287, 0x0338, 0x2289, -+0x2291, 0x0338, 0x22E2, -+0x2292, 0x0338, 0x22E3, -+IBUS_KEY_uptack, IBUS_KEY_diaeresis, 0x2361, -+IBUS_KEY_uptack, IBUS_KEY_macron, 0x2351, -+IBUS_KEY_uptack, 0x2218, 0x2355, -+IBUS_KEY_uptack, IBUS_KEY_downtack, 0x2336, -+IBUS_KEY_downtack, IBUS_KEY_underscore, 0x234A, -+IBUS_KEY_downtack, 0x2218, 0x234E, -+IBUS_KEY_downtack, IBUS_KEY_uptack, 0x2336, -+0x22A8, 0x0338, 0x22AD, -+0x22A9, 0x0338, 0x22AE, -+0x22AB, 0x0338, 0x22AF, -+0x22B2, 0x0338, 0x22EA, -+0x22B3, 0x0338, 0x22EB, -+0x22B4, 0x0338, 0x22EC, -+0x22B5, 0x0338, 0x22ED, -+0x22C4, IBUS_KEY_underscore, 0x235A, -+0x22C4, 0x2395, 0x233A, -+0x2373, IBUS_KEY_underscore, 0x2378, -+0x2375, IBUS_KEY_underscore, 0x2379, -+0x237A, IBUS_KEY_underscore, 0x2376, -+0x2395, IBUS_KEY_apostrophe, 0x235E, -+0x2395, IBUS_KEY_slash, 0x2341, -+0x2395, IBUS_KEY_colon, 0x2360, -+0x2395, IBUS_KEY_less, 0x2343, -+0x2395, IBUS_KEY_equal, 0x2338, -+0x2395, IBUS_KEY_greater, 0x2344, -+0x2395, IBUS_KEY_question, 0x2370, -+0x2395, IBUS_KEY_backslash, 0x2342, -+0x2395, IBUS_KEY_division, 0x2339, -+0x2395, 0x2190, 0x2347, -+0x2395, 0x2191, 0x2350, -+0x2395, 0x2192, 0x2348, -+0x2395, 0x2193, 0x2357, -+0x2395, 0x2206, 0x234D, -+0x2395, 0x2207, 0x2354, -+0x2395, 0x2218, 0x233B, -+0x2395, 0x2227, 0x2353, -+0x2395, 0x2228, 0x234C, -+0x2395, 0x2260, 0x236F, -+0x2395, 0x22C4, 0x233A, -+0x2395, IBUS_KEY_emopencircle, 0x233C, -+IBUS_KEY_emopencircle, IBUS_KEY_asterisk, 0x235F, -+IBUS_KEY_emopencircle, IBUS_KEY_minus, 0x2296, -+IBUS_KEY_emopencircle, IBUS_KEY_period, 0x2299, -+IBUS_KEY_emopencircle, IBUS_KEY_backslash, 0x2349, -+IBUS_KEY_emopencircle, IBUS_KEY_underscore, 0x235C, -+IBUS_KEY_emopencircle, IBUS_KEY_bar, 0x233D, -+IBUS_KEY_emopencircle, IBUS_KEY_diaeresis, 0x2365, -+IBUS_KEY_emopencircle, 0x2218, 0x233E, -+IBUS_KEY_emopencircle, 0x2395, 0x233C, -+0x2ADD, 0x0338, 0x2ADC, -+IBUS_KEY_KP_Divide, IBUS_KEY_D, 0x0110, -+IBUS_KEY_KP_Divide, IBUS_KEY_G, 0x01E4, -+IBUS_KEY_KP_Divide, IBUS_KEY_H, 0x0126, -+IBUS_KEY_KP_Divide, IBUS_KEY_I, 0x0197, -+IBUS_KEY_KP_Divide, IBUS_KEY_L, 0x0141, -+IBUS_KEY_KP_Divide, IBUS_KEY_O, 0x00D8, -+IBUS_KEY_KP_Divide, IBUS_KEY_T, 0x0166, -+IBUS_KEY_KP_Divide, IBUS_KEY_Z, 0x01B5, -+IBUS_KEY_KP_Divide, IBUS_KEY_b, 0x0180, -+IBUS_KEY_KP_Divide, IBUS_KEY_d, 0x0111, -+IBUS_KEY_KP_Divide, IBUS_KEY_g, 0x01E5, -+IBUS_KEY_KP_Divide, IBUS_KEY_h, 0x0127, -+IBUS_KEY_KP_Divide, IBUS_KEY_i, 0x0268, -+IBUS_KEY_KP_Divide, IBUS_KEY_l, 0x0142, -+IBUS_KEY_KP_Divide, IBUS_KEY_o, 0x00F8, -+IBUS_KEY_KP_Divide, IBUS_KEY_t, 0x0167, -+IBUS_KEY_KP_Divide, IBUS_KEY_z, 0x01B6, -+IBUS_KEY_KP_Divide, 0x0294, 0x02A1, -+IBUS_KEY_KP_Divide, 0x04AE, 0x04B0, -+IBUS_KEY_KP_Divide, 0x04AF, 0x04B1, -+IBUS_KEY_KP_Divide, IBUS_KEY_Cyrillic_ghe, 0x0493, -+IBUS_KEY_KP_Divide, IBUS_KEY_Cyrillic_ka, 0x049F, -+IBUS_KEY_KP_Divide, IBUS_KEY_Cyrillic_GHE, 0x0492, -+IBUS_KEY_KP_Divide, IBUS_KEY_Cyrillic_KA, 0x049E, -+IBUS_KEY_KP_Divide, IBUS_KEY_leftarrow, 0x219A, -+IBUS_KEY_KP_Divide, IBUS_KEY_rightarrow, 0x219B, -+IBUS_KEY_KP_Divide, 0x2194, 0x21AE, -+IBUS_KEY_KP_Equal, 0x0338, 0x2260, -+IBUS_KEY_exclam, IBUS_KEY_plus, IBUS_KEY_O, 0x1EE2, -+IBUS_KEY_exclam, IBUS_KEY_plus, IBUS_KEY_U, 0x1EF0, -+IBUS_KEY_exclam, IBUS_KEY_plus, IBUS_KEY_o, 0x1EE3, -+IBUS_KEY_exclam, IBUS_KEY_plus, IBUS_KEY_u, 0x1EF1, -+IBUS_KEY_exclam, IBUS_KEY_dead_horn, IBUS_KEY_O, 0x1EE2, -+IBUS_KEY_exclam, IBUS_KEY_dead_horn, IBUS_KEY_U, 0x1EF0, -+IBUS_KEY_exclam, IBUS_KEY_dead_horn, IBUS_KEY_o, 0x1EE3, -+IBUS_KEY_exclam, IBUS_KEY_dead_horn, IBUS_KEY_u, 0x1EF1, -+IBUS_KEY_quotedbl, IBUS_KEY_apostrophe, IBUS_KEY_space, 0x0385, -+IBUS_KEY_quotedbl, IBUS_KEY_apostrophe, IBUS_KEY_Greek_iota, 0x0390, -+IBUS_KEY_quotedbl, IBUS_KEY_apostrophe, IBUS_KEY_Greek_upsilon, 0x03B0, -+IBUS_KEY_quotedbl, IBUS_KEY_underscore, IBUS_KEY_U, 0x1E7A, -+IBUS_KEY_quotedbl, IBUS_KEY_underscore, IBUS_KEY_u, 0x1E7B, -+IBUS_KEY_quotedbl, IBUS_KEY_asciitilde, IBUS_KEY_O, 0x1E4E, -+IBUS_KEY_quotedbl, IBUS_KEY_asciitilde, IBUS_KEY_o, 0x1E4F, -+IBUS_KEY_quotedbl, IBUS_KEY_macron, IBUS_KEY_U, 0x1E7A, -+IBUS_KEY_quotedbl, IBUS_KEY_macron, IBUS_KEY_u, 0x1E7B, -+IBUS_KEY_quotedbl, IBUS_KEY_dead_tilde, IBUS_KEY_O, 0x1E4E, -+IBUS_KEY_quotedbl, IBUS_KEY_dead_tilde, IBUS_KEY_o, 0x1E4F, -+IBUS_KEY_quotedbl, IBUS_KEY_dead_macron, IBUS_KEY_U, 0x1E7A, -+IBUS_KEY_quotedbl, IBUS_KEY_dead_macron, IBUS_KEY_u, 0x1E7B, -+IBUS_KEY_apostrophe, IBUS_KEY_quotedbl, IBUS_KEY_space, 0x0385, -+IBUS_KEY_apostrophe, IBUS_KEY_quotedbl, IBUS_KEY_I, 0x1E2E, -+IBUS_KEY_apostrophe, IBUS_KEY_quotedbl, IBUS_KEY_U, 0x01D7, -+IBUS_KEY_apostrophe, IBUS_KEY_quotedbl, IBUS_KEY_i, 0x1E2F, -+IBUS_KEY_apostrophe, IBUS_KEY_quotedbl, IBUS_KEY_u, 0x01D8, -+IBUS_KEY_apostrophe, IBUS_KEY_quotedbl, IBUS_KEY_Greek_iota, 0x0390, -+IBUS_KEY_apostrophe, IBUS_KEY_quotedbl, IBUS_KEY_Greek_upsilon, 0x03B0, -+IBUS_KEY_apostrophe, IBUS_KEY_parenleft, IBUS_KEY_Greek_ALPHA, 0x1F0D, -+IBUS_KEY_apostrophe, IBUS_KEY_parenleft, IBUS_KEY_Greek_EPSILON, 0x1F1D, -+IBUS_KEY_apostrophe, IBUS_KEY_parenleft, IBUS_KEY_Greek_ETA, 0x1F2D, -+IBUS_KEY_apostrophe, IBUS_KEY_parenleft, IBUS_KEY_Greek_IOTA, 0x1F3D, -+IBUS_KEY_apostrophe, IBUS_KEY_parenleft, IBUS_KEY_Greek_OMICRON, 0x1F4D, -+IBUS_KEY_apostrophe, IBUS_KEY_parenleft, IBUS_KEY_Greek_UPSILON, 0x1F5D, -+IBUS_KEY_apostrophe, IBUS_KEY_parenleft, IBUS_KEY_Greek_OMEGA, 0x1F6D, -+IBUS_KEY_apostrophe, IBUS_KEY_parenleft, IBUS_KEY_Greek_alpha, 0x1F05, -+IBUS_KEY_apostrophe, IBUS_KEY_parenleft, IBUS_KEY_Greek_epsilon, 0x1F15, -+IBUS_KEY_apostrophe, IBUS_KEY_parenleft, IBUS_KEY_Greek_eta, 0x1F25, -+IBUS_KEY_apostrophe, IBUS_KEY_parenleft, IBUS_KEY_Greek_iota, 0x1F35, -+IBUS_KEY_apostrophe, IBUS_KEY_parenleft, IBUS_KEY_Greek_omicron, 0x1F45, -+IBUS_KEY_apostrophe, IBUS_KEY_parenleft, IBUS_KEY_Greek_upsilon, 0x1F55, -+IBUS_KEY_apostrophe, IBUS_KEY_parenleft, IBUS_KEY_Greek_omega, 0x1F65, -+IBUS_KEY_apostrophe, IBUS_KEY_parenright, IBUS_KEY_Greek_ALPHA, 0x1F0C, -+IBUS_KEY_apostrophe, IBUS_KEY_parenright, IBUS_KEY_Greek_EPSILON, 0x1F1C, -+IBUS_KEY_apostrophe, IBUS_KEY_parenright, IBUS_KEY_Greek_ETA, 0x1F2C, -+IBUS_KEY_apostrophe, IBUS_KEY_parenright, IBUS_KEY_Greek_IOTA, 0x1F3C, -+IBUS_KEY_apostrophe, IBUS_KEY_parenright, IBUS_KEY_Greek_OMICRON, 0x1F4C, -+IBUS_KEY_apostrophe, IBUS_KEY_parenright, IBUS_KEY_Greek_OMEGA, 0x1F6C, -+IBUS_KEY_apostrophe, IBUS_KEY_parenright, IBUS_KEY_Greek_alpha, 0x1F04, -+IBUS_KEY_apostrophe, IBUS_KEY_parenright, IBUS_KEY_Greek_epsilon, 0x1F14, -+IBUS_KEY_apostrophe, IBUS_KEY_parenright, IBUS_KEY_Greek_eta, 0x1F24, -+IBUS_KEY_apostrophe, IBUS_KEY_parenright, IBUS_KEY_Greek_iota, 0x1F34, -+IBUS_KEY_apostrophe, IBUS_KEY_parenright, IBUS_KEY_Greek_omicron, 0x1F44, -+IBUS_KEY_apostrophe, IBUS_KEY_parenright, IBUS_KEY_Greek_upsilon, 0x1F54, -+IBUS_KEY_apostrophe, IBUS_KEY_parenright, IBUS_KEY_Greek_omega, 0x1F64, -+IBUS_KEY_apostrophe, IBUS_KEY_plus, IBUS_KEY_O, 0x1EDA, -+IBUS_KEY_apostrophe, IBUS_KEY_plus, IBUS_KEY_U, 0x1EE8, -+IBUS_KEY_apostrophe, IBUS_KEY_plus, IBUS_KEY_o, 0x1EDB, -+IBUS_KEY_apostrophe, IBUS_KEY_plus, IBUS_KEY_u, 0x1EE9, -+IBUS_KEY_apostrophe, IBUS_KEY_slash, IBUS_KEY_O, 0x01FE, -+IBUS_KEY_apostrophe, IBUS_KEY_slash, IBUS_KEY_o, 0x01FF, -+IBUS_KEY_apostrophe, IBUS_KEY_asciicircum, IBUS_KEY_A, 0x1EA4, -+IBUS_KEY_apostrophe, IBUS_KEY_asciicircum, IBUS_KEY_E, 0x1EBE, -+IBUS_KEY_apostrophe, IBUS_KEY_asciicircum, IBUS_KEY_O, 0x1ED0, -+IBUS_KEY_apostrophe, IBUS_KEY_asciicircum, IBUS_KEY_a, 0x1EA5, -+IBUS_KEY_apostrophe, IBUS_KEY_asciicircum, IBUS_KEY_e, 0x1EBF, -+IBUS_KEY_apostrophe, IBUS_KEY_asciicircum, IBUS_KEY_o, 0x1ED1, -+IBUS_KEY_apostrophe, IBUS_KEY_underscore, IBUS_KEY_E, 0x1E16, -+IBUS_KEY_apostrophe, IBUS_KEY_underscore, IBUS_KEY_O, 0x1E52, -+IBUS_KEY_apostrophe, IBUS_KEY_underscore, IBUS_KEY_e, 0x1E17, -+IBUS_KEY_apostrophe, IBUS_KEY_underscore, IBUS_KEY_o, 0x1E53, -+IBUS_KEY_apostrophe, IBUS_KEY_b, IBUS_KEY_A, 0x1EAE, -+IBUS_KEY_apostrophe, IBUS_KEY_b, IBUS_KEY_a, 0x1EAF, -+IBUS_KEY_apostrophe, IBUS_KEY_asciitilde, IBUS_KEY_O, 0x1E4C, -+IBUS_KEY_apostrophe, IBUS_KEY_asciitilde, IBUS_KEY_U, 0x1E78, -+IBUS_KEY_apostrophe, IBUS_KEY_asciitilde, IBUS_KEY_o, 0x1E4D, -+IBUS_KEY_apostrophe, IBUS_KEY_asciitilde, IBUS_KEY_u, 0x1E79, -+IBUS_KEY_apostrophe, IBUS_KEY_macron, IBUS_KEY_E, 0x1E16, -+IBUS_KEY_apostrophe, IBUS_KEY_macron, IBUS_KEY_O, 0x1E52, -+IBUS_KEY_apostrophe, IBUS_KEY_macron, IBUS_KEY_e, 0x1E17, -+IBUS_KEY_apostrophe, IBUS_KEY_macron, IBUS_KEY_o, 0x1E53, -+IBUS_KEY_apostrophe, IBUS_KEY_cedilla, IBUS_KEY_C, 0x1E08, -+IBUS_KEY_apostrophe, IBUS_KEY_cedilla, IBUS_KEY_c, 0x1E09, -+IBUS_KEY_apostrophe, IBUS_KEY_dead_circumflex, IBUS_KEY_A, 0x1EA4, -+IBUS_KEY_apostrophe, IBUS_KEY_dead_circumflex, IBUS_KEY_E, 0x1EBE, -+IBUS_KEY_apostrophe, IBUS_KEY_dead_circumflex, IBUS_KEY_O, 0x1ED0, -+IBUS_KEY_apostrophe, IBUS_KEY_dead_circumflex, IBUS_KEY_a, 0x1EA5, -+IBUS_KEY_apostrophe, IBUS_KEY_dead_circumflex, IBUS_KEY_e, 0x1EBF, -+IBUS_KEY_apostrophe, IBUS_KEY_dead_circumflex, IBUS_KEY_o, 0x1ED1, -+IBUS_KEY_apostrophe, IBUS_KEY_dead_tilde, IBUS_KEY_O, 0x1E4C, -+IBUS_KEY_apostrophe, IBUS_KEY_dead_tilde, IBUS_KEY_U, 0x1E78, -+IBUS_KEY_apostrophe, IBUS_KEY_dead_tilde, IBUS_KEY_o, 0x1E4D, -+IBUS_KEY_apostrophe, IBUS_KEY_dead_tilde, IBUS_KEY_u, 0x1E79, -+IBUS_KEY_apostrophe, IBUS_KEY_dead_macron, IBUS_KEY_E, 0x1E16, -+IBUS_KEY_apostrophe, IBUS_KEY_dead_macron, IBUS_KEY_O, 0x1E52, -+IBUS_KEY_apostrophe, IBUS_KEY_dead_macron, IBUS_KEY_e, 0x1E17, -+IBUS_KEY_apostrophe, IBUS_KEY_dead_macron, IBUS_KEY_o, 0x1E53, -+IBUS_KEY_apostrophe, IBUS_KEY_dead_breve, IBUS_KEY_A, 0x1EAE, -+IBUS_KEY_apostrophe, IBUS_KEY_dead_breve, IBUS_KEY_a, 0x1EAF, -+IBUS_KEY_apostrophe, IBUS_KEY_dead_diaeresis, IBUS_KEY_I, 0x1E2E, -+IBUS_KEY_apostrophe, IBUS_KEY_dead_diaeresis, IBUS_KEY_U, 0x01D7, -+IBUS_KEY_apostrophe, IBUS_KEY_dead_diaeresis, IBUS_KEY_i, 0x1E2F, -+IBUS_KEY_apostrophe, IBUS_KEY_dead_diaeresis, IBUS_KEY_u, 0x01D8, -+IBUS_KEY_apostrophe, IBUS_KEY_dead_diaeresis, IBUS_KEY_Greek_iota, 0x0390, -+IBUS_KEY_apostrophe, IBUS_KEY_dead_diaeresis, IBUS_KEY_Greek_upsilon, 0x03B0, -+IBUS_KEY_apostrophe, IBUS_KEY_dead_abovering, IBUS_KEY_A, 0x01FA, -+IBUS_KEY_apostrophe, IBUS_KEY_dead_abovering, IBUS_KEY_a, 0x01FB, -+IBUS_KEY_apostrophe, IBUS_KEY_dead_cedilla, IBUS_KEY_C, 0x1E08, -+IBUS_KEY_apostrophe, IBUS_KEY_dead_cedilla, IBUS_KEY_c, 0x1E09, -+IBUS_KEY_apostrophe, IBUS_KEY_dead_horn, IBUS_KEY_O, 0x1EDA, -+IBUS_KEY_apostrophe, IBUS_KEY_dead_horn, IBUS_KEY_U, 0x1EE8, -+IBUS_KEY_apostrophe, IBUS_KEY_dead_horn, IBUS_KEY_o, 0x1EDB, -+IBUS_KEY_apostrophe, IBUS_KEY_dead_horn, IBUS_KEY_u, 0x1EE9, -+IBUS_KEY_apostrophe, IBUS_KEY_dead_psili, IBUS_KEY_Greek_ALPHA, 0x1F0C, -+IBUS_KEY_apostrophe, IBUS_KEY_dead_psili, IBUS_KEY_Greek_EPSILON, 0x1F1C, -+IBUS_KEY_apostrophe, IBUS_KEY_dead_psili, IBUS_KEY_Greek_ETA, 0x1F2C, -+IBUS_KEY_apostrophe, IBUS_KEY_dead_psili, IBUS_KEY_Greek_IOTA, 0x1F3C, -+IBUS_KEY_apostrophe, IBUS_KEY_dead_psili, IBUS_KEY_Greek_OMICRON, 0x1F4C, -+IBUS_KEY_apostrophe, IBUS_KEY_dead_psili, IBUS_KEY_Greek_OMEGA, 0x1F6C, -+IBUS_KEY_apostrophe, IBUS_KEY_dead_psili, IBUS_KEY_Greek_alpha, 0x1F04, -+IBUS_KEY_apostrophe, IBUS_KEY_dead_psili, IBUS_KEY_Greek_epsilon, 0x1F14, -+IBUS_KEY_apostrophe, IBUS_KEY_dead_psili, IBUS_KEY_Greek_eta, 0x1F24, -+IBUS_KEY_apostrophe, IBUS_KEY_dead_psili, IBUS_KEY_Greek_iota, 0x1F34, -+IBUS_KEY_apostrophe, IBUS_KEY_dead_psili, IBUS_KEY_Greek_omicron, 0x1F44, -+IBUS_KEY_apostrophe, IBUS_KEY_dead_psili, IBUS_KEY_Greek_upsilon, 0x1F54, -+IBUS_KEY_apostrophe, IBUS_KEY_dead_psili, IBUS_KEY_Greek_omega, 0x1F64, -+IBUS_KEY_apostrophe, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_ALPHA, 0x1F0D, -+IBUS_KEY_apostrophe, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_EPSILON, 0x1F1D, -+IBUS_KEY_apostrophe, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_ETA, 0x1F2D, -+IBUS_KEY_apostrophe, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_IOTA, 0x1F3D, -+IBUS_KEY_apostrophe, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_OMICRON, 0x1F4D, -+IBUS_KEY_apostrophe, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_UPSILON, 0x1F5D, -+IBUS_KEY_apostrophe, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_OMEGA, 0x1F6D, -+IBUS_KEY_apostrophe, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_alpha, 0x1F05, -+IBUS_KEY_apostrophe, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_epsilon, 0x1F15, -+IBUS_KEY_apostrophe, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_eta, 0x1F25, -+IBUS_KEY_apostrophe, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_iota, 0x1F35, -+IBUS_KEY_apostrophe, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_omicron, 0x1F45, -+IBUS_KEY_apostrophe, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_upsilon, 0x1F55, -+IBUS_KEY_apostrophe, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_omega, 0x1F65, -+IBUS_KEY_apostrophe, IBUS_KEY_KP_Divide, IBUS_KEY_O, 0x01FE, -+IBUS_KEY_apostrophe, IBUS_KEY_KP_Divide, IBUS_KEY_o, 0x01FF, -+IBUS_KEY_parenleft, IBUS_KEY_0, IBUS_KEY_parenright, 0x24EA, -+IBUS_KEY_parenleft, IBUS_KEY_1, IBUS_KEY_parenright, 0x2460, -+IBUS_KEY_parenleft, IBUS_KEY_2, IBUS_KEY_parenright, 0x2461, -+IBUS_KEY_parenleft, IBUS_KEY_3, IBUS_KEY_parenright, 0x2462, -+IBUS_KEY_parenleft, IBUS_KEY_4, IBUS_KEY_parenright, 0x2463, -+IBUS_KEY_parenleft, IBUS_KEY_5, IBUS_KEY_parenright, 0x2464, -+IBUS_KEY_parenleft, IBUS_KEY_6, IBUS_KEY_parenright, 0x2465, -+IBUS_KEY_parenleft, IBUS_KEY_7, IBUS_KEY_parenright, 0x2466, -+IBUS_KEY_parenleft, IBUS_KEY_8, IBUS_KEY_parenright, 0x2467, -+IBUS_KEY_parenleft, IBUS_KEY_9, IBUS_KEY_parenright, 0x2468, -+IBUS_KEY_parenleft, IBUS_KEY_A, IBUS_KEY_parenright, 0x24B6, -+IBUS_KEY_parenleft, IBUS_KEY_B, IBUS_KEY_parenright, 0x24B7, -+IBUS_KEY_parenleft, IBUS_KEY_C, IBUS_KEY_parenright, 0x24B8, -+IBUS_KEY_parenleft, IBUS_KEY_D, IBUS_KEY_parenright, 0x24B9, -+IBUS_KEY_parenleft, IBUS_KEY_E, IBUS_KEY_parenright, 0x24BA, -+IBUS_KEY_parenleft, IBUS_KEY_F, IBUS_KEY_parenright, 0x24BB, -+IBUS_KEY_parenleft, IBUS_KEY_G, IBUS_KEY_parenright, 0x24BC, -+IBUS_KEY_parenleft, IBUS_KEY_H, IBUS_KEY_parenright, 0x24BD, -+IBUS_KEY_parenleft, IBUS_KEY_I, IBUS_KEY_parenright, 0x24BE, -+IBUS_KEY_parenleft, IBUS_KEY_J, IBUS_KEY_parenright, 0x24BF, -+IBUS_KEY_parenleft, IBUS_KEY_K, IBUS_KEY_parenright, 0x24C0, -+IBUS_KEY_parenleft, IBUS_KEY_L, IBUS_KEY_parenright, 0x24C1, -+IBUS_KEY_parenleft, IBUS_KEY_M, IBUS_KEY_parenright, 0x24C2, -+IBUS_KEY_parenleft, IBUS_KEY_N, IBUS_KEY_parenright, 0x24C3, -+IBUS_KEY_parenleft, IBUS_KEY_O, IBUS_KEY_parenright, 0x24C4, -+IBUS_KEY_parenleft, IBUS_KEY_P, IBUS_KEY_parenright, 0x24C5, -+IBUS_KEY_parenleft, IBUS_KEY_Q, IBUS_KEY_parenright, 0x24C6, -+IBUS_KEY_parenleft, IBUS_KEY_R, IBUS_KEY_parenright, 0x24C7, -+IBUS_KEY_parenleft, IBUS_KEY_S, IBUS_KEY_parenright, 0x24C8, -+IBUS_KEY_parenleft, IBUS_KEY_T, IBUS_KEY_parenright, 0x24C9, -+IBUS_KEY_parenleft, IBUS_KEY_U, IBUS_KEY_parenright, 0x24CA, -+IBUS_KEY_parenleft, IBUS_KEY_V, IBUS_KEY_parenright, 0x24CB, -+IBUS_KEY_parenleft, IBUS_KEY_W, IBUS_KEY_parenright, 0x24CC, -+IBUS_KEY_parenleft, IBUS_KEY_X, IBUS_KEY_parenright, 0x24CD, -+IBUS_KEY_parenleft, IBUS_KEY_Y, IBUS_KEY_parenright, 0x24CE, -+IBUS_KEY_parenleft, IBUS_KEY_Z, IBUS_KEY_parenright, 0x24CF, -+IBUS_KEY_parenleft, IBUS_KEY_a, IBUS_KEY_parenright, 0x24D0, -+IBUS_KEY_parenleft, IBUS_KEY_b, IBUS_KEY_parenright, 0x24D1, -+IBUS_KEY_parenleft, IBUS_KEY_c, IBUS_KEY_parenright, 0x24D2, -+IBUS_KEY_parenleft, IBUS_KEY_d, IBUS_KEY_parenright, 0x24D3, -+IBUS_KEY_parenleft, IBUS_KEY_e, IBUS_KEY_parenright, 0x24D4, -+IBUS_KEY_parenleft, IBUS_KEY_f, IBUS_KEY_parenright, 0x24D5, -+IBUS_KEY_parenleft, IBUS_KEY_g, IBUS_KEY_parenright, 0x24D6, -+IBUS_KEY_parenleft, IBUS_KEY_h, IBUS_KEY_parenright, 0x24D7, -+IBUS_KEY_parenleft, IBUS_KEY_i, IBUS_KEY_parenright, 0x24D8, -+IBUS_KEY_parenleft, IBUS_KEY_j, IBUS_KEY_parenright, 0x24D9, -+IBUS_KEY_parenleft, IBUS_KEY_k, IBUS_KEY_parenright, 0x24DA, -+IBUS_KEY_parenleft, IBUS_KEY_l, IBUS_KEY_parenright, 0x24DB, -+IBUS_KEY_parenleft, IBUS_KEY_m, IBUS_KEY_parenright, 0x24DC, -+IBUS_KEY_parenleft, IBUS_KEY_n, IBUS_KEY_parenright, 0x24DD, -+IBUS_KEY_parenleft, IBUS_KEY_o, IBUS_KEY_parenright, 0x24DE, -+IBUS_KEY_parenleft, IBUS_KEY_p, IBUS_KEY_parenright, 0x24DF, -+IBUS_KEY_parenleft, IBUS_KEY_q, IBUS_KEY_parenright, 0x24E0, -+IBUS_KEY_parenleft, IBUS_KEY_r, IBUS_KEY_parenright, 0x24E1, -+IBUS_KEY_parenleft, IBUS_KEY_s, IBUS_KEY_parenright, 0x24E2, -+IBUS_KEY_parenleft, IBUS_KEY_t, IBUS_KEY_parenright, 0x24E3, -+IBUS_KEY_parenleft, IBUS_KEY_u, IBUS_KEY_parenright, 0x24E4, -+IBUS_KEY_parenleft, IBUS_KEY_v, IBUS_KEY_parenright, 0x24E5, -+IBUS_KEY_parenleft, IBUS_KEY_w, IBUS_KEY_parenright, 0x24E6, -+IBUS_KEY_parenleft, IBUS_KEY_x, IBUS_KEY_parenright, 0x24E7, -+IBUS_KEY_parenleft, IBUS_KEY_y, IBUS_KEY_parenright, 0x24E8, -+IBUS_KEY_parenleft, IBUS_KEY_z, IBUS_KEY_parenright, 0x24E9, -+IBUS_KEY_parenleft, IBUS_KEY_kana_WO, IBUS_KEY_parenright, 0x32FE, -+IBUS_KEY_parenleft, IBUS_KEY_kana_A, IBUS_KEY_parenright, 0x32D0, -+IBUS_KEY_parenleft, IBUS_KEY_kana_I, IBUS_KEY_parenright, 0x32D1, -+IBUS_KEY_parenleft, IBUS_KEY_kana_U, IBUS_KEY_parenright, 0x32D2, -+IBUS_KEY_parenleft, IBUS_KEY_kana_E, IBUS_KEY_parenright, 0x32D3, -+IBUS_KEY_parenleft, IBUS_KEY_kana_O, IBUS_KEY_parenright, 0x32D4, -+IBUS_KEY_parenleft, IBUS_KEY_kana_KA, IBUS_KEY_parenright, 0x32D5, -+IBUS_KEY_parenleft, IBUS_KEY_kana_KI, IBUS_KEY_parenright, 0x32D6, -+IBUS_KEY_parenleft, IBUS_KEY_kana_KU, IBUS_KEY_parenright, 0x32D7, -+IBUS_KEY_parenleft, IBUS_KEY_kana_KE, IBUS_KEY_parenright, 0x32D8, -+IBUS_KEY_parenleft, IBUS_KEY_kana_KO, IBUS_KEY_parenright, 0x32D9, -+IBUS_KEY_parenleft, IBUS_KEY_kana_SA, IBUS_KEY_parenright, 0x32DA, -+IBUS_KEY_parenleft, IBUS_KEY_kana_SHI, IBUS_KEY_parenright, 0x32DB, -+IBUS_KEY_parenleft, IBUS_KEY_kana_SU, IBUS_KEY_parenright, 0x32DC, -+IBUS_KEY_parenleft, IBUS_KEY_kana_SE, IBUS_KEY_parenright, 0x32DD, -+IBUS_KEY_parenleft, IBUS_KEY_kana_SO, IBUS_KEY_parenright, 0x32DE, -+IBUS_KEY_parenleft, IBUS_KEY_kana_TA, IBUS_KEY_parenright, 0x32DF, -+IBUS_KEY_parenleft, IBUS_KEY_kana_CHI, IBUS_KEY_parenright, 0x32E0, -+IBUS_KEY_parenleft, IBUS_KEY_kana_TSU, IBUS_KEY_parenright, 0x32E1, -+IBUS_KEY_parenleft, IBUS_KEY_kana_TE, IBUS_KEY_parenright, 0x32E2, -+IBUS_KEY_parenleft, IBUS_KEY_kana_TO, IBUS_KEY_parenright, 0x32E3, -+IBUS_KEY_parenleft, IBUS_KEY_kana_NA, IBUS_KEY_parenright, 0x32E4, -+IBUS_KEY_parenleft, IBUS_KEY_kana_NI, IBUS_KEY_parenright, 0x32E5, -+IBUS_KEY_parenleft, IBUS_KEY_kana_NU, IBUS_KEY_parenright, 0x32E6, -+IBUS_KEY_parenleft, IBUS_KEY_kana_NE, IBUS_KEY_parenright, 0x32E7, -+IBUS_KEY_parenleft, IBUS_KEY_kana_NO, IBUS_KEY_parenright, 0x32E8, -+IBUS_KEY_parenleft, IBUS_KEY_kana_HA, IBUS_KEY_parenright, 0x32E9, -+IBUS_KEY_parenleft, IBUS_KEY_kana_HI, IBUS_KEY_parenright, 0x32EA, -+IBUS_KEY_parenleft, IBUS_KEY_kana_FU, IBUS_KEY_parenright, 0x32EB, -+IBUS_KEY_parenleft, IBUS_KEY_kana_HE, IBUS_KEY_parenright, 0x32EC, -+IBUS_KEY_parenleft, IBUS_KEY_kana_HO, IBUS_KEY_parenright, 0x32ED, -+IBUS_KEY_parenleft, IBUS_KEY_kana_MA, IBUS_KEY_parenright, 0x32EE, -+IBUS_KEY_parenleft, IBUS_KEY_kana_MI, IBUS_KEY_parenright, 0x32EF, -+IBUS_KEY_parenleft, IBUS_KEY_kana_MU, IBUS_KEY_parenright, 0x32F0, -+IBUS_KEY_parenleft, IBUS_KEY_kana_ME, IBUS_KEY_parenright, 0x32F1, -+IBUS_KEY_parenleft, IBUS_KEY_kana_MO, IBUS_KEY_parenright, 0x32F2, -+IBUS_KEY_parenleft, IBUS_KEY_kana_YA, IBUS_KEY_parenright, 0x32F3, -+IBUS_KEY_parenleft, IBUS_KEY_kana_YU, IBUS_KEY_parenright, 0x32F4, -+IBUS_KEY_parenleft, IBUS_KEY_kana_YO, IBUS_KEY_parenright, 0x32F5, -+IBUS_KEY_parenleft, IBUS_KEY_kana_RA, IBUS_KEY_parenright, 0x32F6, -+IBUS_KEY_parenleft, IBUS_KEY_kana_RI, IBUS_KEY_parenright, 0x32F7, -+IBUS_KEY_parenleft, IBUS_KEY_kana_RU, IBUS_KEY_parenright, 0x32F8, -+IBUS_KEY_parenleft, IBUS_KEY_kana_RE, IBUS_KEY_parenright, 0x32F9, -+IBUS_KEY_parenleft, IBUS_KEY_kana_RO, IBUS_KEY_parenright, 0x32FA, -+IBUS_KEY_parenleft, IBUS_KEY_kana_WA, IBUS_KEY_parenright, 0x32FB, -+IBUS_KEY_parenleft, 0x1100, IBUS_KEY_parenright, 0x3260, -+IBUS_KEY_parenleft, 0x1102, IBUS_KEY_parenright, 0x3261, -+IBUS_KEY_parenleft, 0x1103, IBUS_KEY_parenright, 0x3262, -+IBUS_KEY_parenleft, 0x1105, IBUS_KEY_parenright, 0x3263, -+IBUS_KEY_parenleft, 0x1106, IBUS_KEY_parenright, 0x3264, -+IBUS_KEY_parenleft, 0x1107, IBUS_KEY_parenright, 0x3265, -+IBUS_KEY_parenleft, 0x1109, IBUS_KEY_parenright, 0x3266, -+IBUS_KEY_parenleft, 0x110B, IBUS_KEY_parenright, 0x3267, -+IBUS_KEY_parenleft, 0x110C, IBUS_KEY_parenright, 0x3268, -+IBUS_KEY_parenleft, 0x110E, IBUS_KEY_parenright, 0x3269, -+IBUS_KEY_parenleft, 0x110F, IBUS_KEY_parenright, 0x326A, -+IBUS_KEY_parenleft, 0x1110, IBUS_KEY_parenright, 0x326B, -+IBUS_KEY_parenleft, 0x1111, IBUS_KEY_parenright, 0x326C, -+IBUS_KEY_parenleft, 0x1112, IBUS_KEY_parenright, 0x326D, -+IBUS_KEY_parenleft, 0x30F0, IBUS_KEY_parenright, 0x32FC, -+IBUS_KEY_parenleft, 0x30F1, IBUS_KEY_parenright, 0x32FD, -+IBUS_KEY_parenleft, 0x4E00, IBUS_KEY_parenright, 0x3280, -+IBUS_KEY_parenleft, 0x4E03, IBUS_KEY_parenright, 0x3286, -+IBUS_KEY_parenleft, 0x4E09, IBUS_KEY_parenright, 0x3282, -+IBUS_KEY_parenleft, 0x4E0A, IBUS_KEY_parenright, 0x32A4, -+IBUS_KEY_parenleft, 0x4E0B, IBUS_KEY_parenright, 0x32A6, -+IBUS_KEY_parenleft, 0x4E2D, IBUS_KEY_parenright, 0x32A5, -+IBUS_KEY_parenleft, 0x4E5D, IBUS_KEY_parenright, 0x3288, -+IBUS_KEY_parenleft, 0x4E8C, IBUS_KEY_parenright, 0x3281, -+IBUS_KEY_parenleft, 0x4E94, IBUS_KEY_parenright, 0x3284, -+IBUS_KEY_parenleft, 0x4F01, IBUS_KEY_parenright, 0x32AD, -+IBUS_KEY_parenleft, 0x4F11, IBUS_KEY_parenright, 0x32A1, -+IBUS_KEY_parenleft, 0x512A, IBUS_KEY_parenright, 0x329D, -+IBUS_KEY_parenleft, 0x516B, IBUS_KEY_parenright, 0x3287, -+IBUS_KEY_parenleft, 0x516D, IBUS_KEY_parenright, 0x3285, -+IBUS_KEY_parenleft, 0x5199, IBUS_KEY_parenright, 0x32A2, -+IBUS_KEY_parenleft, 0x52B4, IBUS_KEY_parenright, 0x3298, -+IBUS_KEY_parenleft, 0x533B, IBUS_KEY_parenright, 0x32A9, -+IBUS_KEY_parenleft, 0x5341, IBUS_KEY_parenright, 0x3289, -+IBUS_KEY_parenleft, 0x5354, IBUS_KEY_parenright, 0x32AF, -+IBUS_KEY_parenleft, 0x5370, IBUS_KEY_parenright, 0x329E, -+IBUS_KEY_parenleft, 0x53F3, IBUS_KEY_parenright, 0x32A8, -+IBUS_KEY_parenleft, 0x540D, IBUS_KEY_parenright, 0x3294, -+IBUS_KEY_parenleft, 0x56DB, IBUS_KEY_parenright, 0x3283, -+IBUS_KEY_parenleft, 0x571F, IBUS_KEY_parenright, 0x328F, -+IBUS_KEY_parenleft, 0x591C, IBUS_KEY_parenright, 0x32B0, -+IBUS_KEY_parenleft, 0x5973, IBUS_KEY_parenright, 0x329B, -+IBUS_KEY_parenleft, 0x5B66, IBUS_KEY_parenright, 0x32AB, -+IBUS_KEY_parenleft, 0x5B97, IBUS_KEY_parenright, 0x32AA, -+IBUS_KEY_parenleft, 0x5DE6, IBUS_KEY_parenright, 0x32A7, -+IBUS_KEY_parenleft, 0x65E5, IBUS_KEY_parenright, 0x3290, -+IBUS_KEY_parenleft, 0x6708, IBUS_KEY_parenright, 0x328A, -+IBUS_KEY_parenleft, 0x6709, IBUS_KEY_parenright, 0x3292, -+IBUS_KEY_parenleft, 0x6728, IBUS_KEY_parenright, 0x328D, -+IBUS_KEY_parenleft, 0x682A, IBUS_KEY_parenright, 0x3291, -+IBUS_KEY_parenleft, 0x6B63, IBUS_KEY_parenright, 0x32A3, -+IBUS_KEY_parenleft, 0x6C34, IBUS_KEY_parenright, 0x328C, -+IBUS_KEY_parenleft, 0x6CE8, IBUS_KEY_parenright, 0x329F, -+IBUS_KEY_parenleft, 0x706B, IBUS_KEY_parenright, 0x328B, -+IBUS_KEY_parenleft, 0x7279, IBUS_KEY_parenright, 0x3295, -+IBUS_KEY_parenleft, 0x7537, IBUS_KEY_parenright, 0x329A, -+IBUS_KEY_parenleft, 0x76E3, IBUS_KEY_parenright, 0x32AC, -+IBUS_KEY_parenleft, 0x793E, IBUS_KEY_parenright, 0x3293, -+IBUS_KEY_parenleft, 0x795D, IBUS_KEY_parenright, 0x3297, -+IBUS_KEY_parenleft, 0x79D8, IBUS_KEY_parenright, 0x3299, -+IBUS_KEY_parenleft, 0x8CA1, IBUS_KEY_parenright, 0x3296, -+IBUS_KEY_parenleft, 0x8CC7, IBUS_KEY_parenright, 0x32AE, -+IBUS_KEY_parenleft, 0x9069, IBUS_KEY_parenright, 0x329C, -+IBUS_KEY_parenleft, 0x91D1, IBUS_KEY_parenright, 0x328E, -+IBUS_KEY_parenleft, 0x9805, IBUS_KEY_parenright, 0x32A0, -+IBUS_KEY_parenleft, IBUS_KEY_KP_Space, IBUS_KEY_parenright, 0x2461, -+IBUS_KEY_parenleft, IBUS_KEY_KP_0, IBUS_KEY_parenright, 0x24EA, -+IBUS_KEY_parenleft, IBUS_KEY_KP_1, IBUS_KEY_parenright, 0x2460, -+IBUS_KEY_parenleft, IBUS_KEY_KP_2, IBUS_KEY_parenright, 0x2461, -+IBUS_KEY_parenleft, IBUS_KEY_KP_3, IBUS_KEY_parenright, 0x2462, -+IBUS_KEY_parenleft, IBUS_KEY_KP_4, IBUS_KEY_parenright, 0x2463, -+IBUS_KEY_parenleft, IBUS_KEY_KP_5, IBUS_KEY_parenright, 0x2464, -+IBUS_KEY_parenleft, IBUS_KEY_KP_6, IBUS_KEY_parenright, 0x2465, -+IBUS_KEY_parenleft, IBUS_KEY_KP_7, IBUS_KEY_parenright, 0x2466, -+IBUS_KEY_parenleft, IBUS_KEY_KP_8, IBUS_KEY_parenright, 0x2467, -+IBUS_KEY_parenleft, IBUS_KEY_KP_9, IBUS_KEY_parenright, 0x2468, -+IBUS_KEY_asterisk, IBUS_KEY_apostrophe, IBUS_KEY_A, 0x01FA, -+IBUS_KEY_asterisk, IBUS_KEY_apostrophe, IBUS_KEY_a, 0x01FB, -+IBUS_KEY_minus, IBUS_KEY_minus, IBUS_KEY_space, 0x00AD, -+IBUS_KEY_minus, IBUS_KEY_minus, IBUS_KEY_minus, 0x2014, -+IBUS_KEY_minus, IBUS_KEY_minus, IBUS_KEY_period, 0x2013, -+IBUS_KEY_period, IBUS_KEY_exclam, IBUS_KEY_S, 0x1E68, -+IBUS_KEY_period, IBUS_KEY_exclam, IBUS_KEY_s, 0x1E69, -+IBUS_KEY_period, IBUS_KEY_apostrophe, IBUS_KEY_S, 0x1E64, -+IBUS_KEY_period, IBUS_KEY_apostrophe, IBUS_KEY_s, 0x1E65, -+IBUS_KEY_period, IBUS_KEY_acute, IBUS_KEY_S, 0x1E64, -+IBUS_KEY_period, IBUS_KEY_acute, IBUS_KEY_s, 0x1E65, -+IBUS_KEY_period, IBUS_KEY_dead_acute, IBUS_KEY_S, 0x1E64, -+IBUS_KEY_period, IBUS_KEY_dead_acute, IBUS_KEY_s, 0x1E65, -+IBUS_KEY_period, IBUS_KEY_dead_caron, IBUS_KEY_S, 0x1E66, -+IBUS_KEY_period, IBUS_KEY_dead_caron, IBUS_KEY_s, 0x1E67, -+IBUS_KEY_period, IBUS_KEY_dead_belowdot, IBUS_KEY_S, 0x1E68, -+IBUS_KEY_period, IBUS_KEY_dead_belowdot, IBUS_KEY_s, 0x1E69, -+IBUS_KEY_1, IBUS_KEY_1, IBUS_KEY_0, 0x2152, -+IBUS_KEY_question, IBUS_KEY_plus, IBUS_KEY_O, 0x1EDE, -+IBUS_KEY_question, IBUS_KEY_plus, IBUS_KEY_U, 0x1EEC, -+IBUS_KEY_question, IBUS_KEY_plus, IBUS_KEY_o, 0x1EDF, -+IBUS_KEY_question, IBUS_KEY_plus, IBUS_KEY_u, 0x1EED, -+IBUS_KEY_question, IBUS_KEY_asciicircum, IBUS_KEY_A, 0x1EA8, -+IBUS_KEY_question, IBUS_KEY_asciicircum, IBUS_KEY_E, 0x1EC2, -+IBUS_KEY_question, IBUS_KEY_asciicircum, IBUS_KEY_O, 0x1ED4, -+IBUS_KEY_question, IBUS_KEY_asciicircum, IBUS_KEY_a, 0x1EA9, -+IBUS_KEY_question, IBUS_KEY_asciicircum, IBUS_KEY_e, 0x1EC3, -+IBUS_KEY_question, IBUS_KEY_asciicircum, IBUS_KEY_o, 0x1ED5, -+IBUS_KEY_question, IBUS_KEY_b, IBUS_KEY_A, 0x1EB2, -+IBUS_KEY_question, IBUS_KEY_b, IBUS_KEY_a, 0x1EB3, -+IBUS_KEY_question, IBUS_KEY_dead_circumflex, IBUS_KEY_A, 0x1EA8, -+IBUS_KEY_question, IBUS_KEY_dead_circumflex, IBUS_KEY_E, 0x1EC2, -+IBUS_KEY_question, IBUS_KEY_dead_circumflex, IBUS_KEY_O, 0x1ED4, -+IBUS_KEY_question, IBUS_KEY_dead_circumflex, IBUS_KEY_a, 0x1EA9, -+IBUS_KEY_question, IBUS_KEY_dead_circumflex, IBUS_KEY_e, 0x1EC3, -+IBUS_KEY_question, IBUS_KEY_dead_circumflex, IBUS_KEY_o, 0x1ED5, -+IBUS_KEY_question, IBUS_KEY_dead_breve, IBUS_KEY_A, 0x1EB2, -+IBUS_KEY_question, IBUS_KEY_dead_breve, IBUS_KEY_a, 0x1EB3, -+IBUS_KEY_question, IBUS_KEY_dead_horn, IBUS_KEY_O, 0x1EDE, -+IBUS_KEY_question, IBUS_KEY_dead_horn, IBUS_KEY_U, 0x1EEC, -+IBUS_KEY_question, IBUS_KEY_dead_horn, IBUS_KEY_o, 0x1EDF, -+IBUS_KEY_question, IBUS_KEY_dead_horn, IBUS_KEY_u, 0x1EED, -+IBUS_KEY_U, IBUS_KEY_exclam, IBUS_KEY_A, 0x1EB6, -+IBUS_KEY_U, IBUS_KEY_exclam, IBUS_KEY_a, 0x1EB7, -+IBUS_KEY_U, IBUS_KEY_cedilla, IBUS_KEY_E, 0x1E1C, -+IBUS_KEY_U, IBUS_KEY_cedilla, IBUS_KEY_e, 0x1E1D, -+IBUS_KEY_U, IBUS_KEY_dead_cedilla, IBUS_KEY_E, 0x1E1C, -+IBUS_KEY_U, IBUS_KEY_dead_cedilla, IBUS_KEY_e, 0x1E1D, -+IBUS_KEY_U, IBUS_KEY_dead_belowdot, IBUS_KEY_A, 0x1EB6, -+IBUS_KEY_U, IBUS_KEY_dead_belowdot, IBUS_KEY_a, 0x1EB7, -+IBUS_KEY_asciicircum, IBUS_KEY_exclam, IBUS_KEY_A, 0x1EAC, -+IBUS_KEY_asciicircum, IBUS_KEY_exclam, IBUS_KEY_E, 0x1EC6, -+IBUS_KEY_asciicircum, IBUS_KEY_exclam, IBUS_KEY_O, 0x1ED8, -+IBUS_KEY_asciicircum, IBUS_KEY_exclam, IBUS_KEY_a, 0x1EAD, -+IBUS_KEY_asciicircum, IBUS_KEY_exclam, IBUS_KEY_e, 0x1EC7, -+IBUS_KEY_asciicircum, IBUS_KEY_exclam, IBUS_KEY_o, 0x1ED9, -+IBUS_KEY_asciicircum, IBUS_KEY_underscore, IBUS_KEY_a, 0x00AA, -+IBUS_KEY_asciicircum, IBUS_KEY_underscore, IBUS_KEY_h, 0x02B0, -+IBUS_KEY_asciicircum, IBUS_KEY_underscore, IBUS_KEY_i, 0x2071, -+IBUS_KEY_asciicircum, IBUS_KEY_underscore, IBUS_KEY_j, 0x02B2, -+IBUS_KEY_asciicircum, IBUS_KEY_underscore, IBUS_KEY_l, 0x02E1, -+IBUS_KEY_asciicircum, IBUS_KEY_underscore, IBUS_KEY_n, 0x207F, -+IBUS_KEY_asciicircum, IBUS_KEY_underscore, IBUS_KEY_o, 0x00BA, -+IBUS_KEY_asciicircum, IBUS_KEY_underscore, IBUS_KEY_r, 0x02B3, -+IBUS_KEY_asciicircum, IBUS_KEY_underscore, IBUS_KEY_s, 0x02E2, -+IBUS_KEY_asciicircum, IBUS_KEY_underscore, IBUS_KEY_w, 0x02B7, -+IBUS_KEY_asciicircum, IBUS_KEY_underscore, IBUS_KEY_x, 0x02E3, -+IBUS_KEY_asciicircum, IBUS_KEY_underscore, IBUS_KEY_y, 0x02B8, -+IBUS_KEY_asciicircum, IBUS_KEY_underscore, 0x0263, 0x02E0, -+IBUS_KEY_asciicircum, IBUS_KEY_underscore, 0x0266, 0x02B1, -+IBUS_KEY_asciicircum, IBUS_KEY_underscore, 0x0279, 0x02B4, -+IBUS_KEY_asciicircum, IBUS_KEY_underscore, 0x027B, 0x02B5, -+IBUS_KEY_asciicircum, IBUS_KEY_underscore, 0x0281, 0x02B6, -+IBUS_KEY_asciicircum, IBUS_KEY_underscore, 0x0295, 0x02E4, -+IBUS_KEY_asciicircum, IBUS_KEY_underbar, IBUS_KEY_a, 0x00AA, -+IBUS_KEY_asciicircum, IBUS_KEY_underbar, IBUS_KEY_h, 0x02B0, -+IBUS_KEY_asciicircum, IBUS_KEY_underbar, IBUS_KEY_i, 0x2071, -+IBUS_KEY_asciicircum, IBUS_KEY_underbar, IBUS_KEY_j, 0x02B2, -+IBUS_KEY_asciicircum, IBUS_KEY_underbar, IBUS_KEY_l, 0x02E1, -+IBUS_KEY_asciicircum, IBUS_KEY_underbar, IBUS_KEY_n, 0x207F, -+IBUS_KEY_asciicircum, IBUS_KEY_underbar, IBUS_KEY_o, 0x00BA, -+IBUS_KEY_asciicircum, IBUS_KEY_underbar, IBUS_KEY_r, 0x02B3, -+IBUS_KEY_asciicircum, IBUS_KEY_underbar, IBUS_KEY_s, 0x02E2, -+IBUS_KEY_asciicircum, IBUS_KEY_underbar, IBUS_KEY_w, 0x02B7, -+IBUS_KEY_asciicircum, IBUS_KEY_underbar, IBUS_KEY_x, 0x02E3, -+IBUS_KEY_asciicircum, IBUS_KEY_underbar, IBUS_KEY_y, 0x02B8, -+IBUS_KEY_asciicircum, IBUS_KEY_underbar, 0x0263, 0x02E0, -+IBUS_KEY_asciicircum, IBUS_KEY_underbar, 0x0266, 0x02B1, -+IBUS_KEY_asciicircum, IBUS_KEY_underbar, 0x0279, 0x02B4, -+IBUS_KEY_asciicircum, IBUS_KEY_underbar, 0x027B, 0x02B5, -+IBUS_KEY_asciicircum, IBUS_KEY_underbar, 0x0281, 0x02B6, -+IBUS_KEY_asciicircum, IBUS_KEY_underbar, 0x0295, 0x02E4, -+IBUS_KEY_asciicircum, IBUS_KEY_dead_belowdot, IBUS_KEY_A, 0x1EAC, -+IBUS_KEY_asciicircum, IBUS_KEY_dead_belowdot, IBUS_KEY_E, 0x1EC6, -+IBUS_KEY_asciicircum, IBUS_KEY_dead_belowdot, IBUS_KEY_O, 0x1ED8, -+IBUS_KEY_asciicircum, IBUS_KEY_dead_belowdot, IBUS_KEY_a, 0x1EAD, -+IBUS_KEY_asciicircum, IBUS_KEY_dead_belowdot, IBUS_KEY_e, 0x1EC7, -+IBUS_KEY_asciicircum, IBUS_KEY_dead_belowdot, IBUS_KEY_o, 0x1ED9, -+IBUS_KEY_underscore, IBUS_KEY_exclam, IBUS_KEY_L, 0x1E38, -+IBUS_KEY_underscore, IBUS_KEY_exclam, IBUS_KEY_R, 0x1E5C, -+IBUS_KEY_underscore, IBUS_KEY_exclam, IBUS_KEY_l, 0x1E39, -+IBUS_KEY_underscore, IBUS_KEY_exclam, IBUS_KEY_r, 0x1E5D, -+IBUS_KEY_underscore, IBUS_KEY_quotedbl, IBUS_KEY_A, 0x01DE, -+IBUS_KEY_underscore, IBUS_KEY_quotedbl, IBUS_KEY_O, 0x022A, -+IBUS_KEY_underscore, IBUS_KEY_quotedbl, IBUS_KEY_U, 0x01D5, -+IBUS_KEY_underscore, IBUS_KEY_quotedbl, IBUS_KEY_a, 0x01DF, -+IBUS_KEY_underscore, IBUS_KEY_quotedbl, IBUS_KEY_o, 0x022B, -+IBUS_KEY_underscore, IBUS_KEY_quotedbl, IBUS_KEY_u, 0x01D6, -+IBUS_KEY_underscore, IBUS_KEY_period, IBUS_KEY_A, 0x01E0, -+IBUS_KEY_underscore, IBUS_KEY_period, IBUS_KEY_O, 0x0230, -+IBUS_KEY_underscore, IBUS_KEY_period, IBUS_KEY_a, 0x01E1, -+IBUS_KEY_underscore, IBUS_KEY_period, IBUS_KEY_o, 0x0231, -+IBUS_KEY_underscore, IBUS_KEY_semicolon, IBUS_KEY_O, 0x01EC, -+IBUS_KEY_underscore, IBUS_KEY_semicolon, IBUS_KEY_o, 0x01ED, -+IBUS_KEY_underscore, IBUS_KEY_asciitilde, IBUS_KEY_O, 0x022C, -+IBUS_KEY_underscore, IBUS_KEY_asciitilde, IBUS_KEY_o, 0x022D, -+IBUS_KEY_underscore, IBUS_KEY_dead_tilde, IBUS_KEY_O, 0x022C, -+IBUS_KEY_underscore, IBUS_KEY_dead_tilde, IBUS_KEY_o, 0x022D, -+IBUS_KEY_underscore, IBUS_KEY_dead_abovedot, IBUS_KEY_A, 0x01E0, -+IBUS_KEY_underscore, IBUS_KEY_dead_abovedot, IBUS_KEY_O, 0x0230, -+IBUS_KEY_underscore, IBUS_KEY_dead_abovedot, IBUS_KEY_a, 0x01E1, -+IBUS_KEY_underscore, IBUS_KEY_dead_abovedot, IBUS_KEY_o, 0x0231, -+IBUS_KEY_underscore, IBUS_KEY_dead_diaeresis, IBUS_KEY_A, 0x01DE, -+IBUS_KEY_underscore, IBUS_KEY_dead_diaeresis, IBUS_KEY_O, 0x022A, -+IBUS_KEY_underscore, IBUS_KEY_dead_diaeresis, IBUS_KEY_U, 0x01D5, -+IBUS_KEY_underscore, IBUS_KEY_dead_diaeresis, IBUS_KEY_a, 0x01DF, -+IBUS_KEY_underscore, IBUS_KEY_dead_diaeresis, IBUS_KEY_o, 0x022B, -+IBUS_KEY_underscore, IBUS_KEY_dead_diaeresis, IBUS_KEY_u, 0x01D6, -+IBUS_KEY_underscore, IBUS_KEY_dead_ogonek, IBUS_KEY_O, 0x01EC, -+IBUS_KEY_underscore, IBUS_KEY_dead_ogonek, IBUS_KEY_o, 0x01ED, -+IBUS_KEY_underscore, IBUS_KEY_dead_belowdot, IBUS_KEY_L, 0x1E38, -+IBUS_KEY_underscore, IBUS_KEY_dead_belowdot, IBUS_KEY_R, 0x1E5C, -+IBUS_KEY_underscore, IBUS_KEY_dead_belowdot, IBUS_KEY_l, 0x1E39, -+IBUS_KEY_underscore, IBUS_KEY_dead_belowdot, IBUS_KEY_r, 0x1E5D, -+IBUS_KEY_grave, IBUS_KEY_quotedbl, IBUS_KEY_U, 0x01DB, -+IBUS_KEY_grave, IBUS_KEY_quotedbl, IBUS_KEY_u, 0x01DC, -+IBUS_KEY_grave, IBUS_KEY_quotedbl, IBUS_KEY_Greek_iota, 0x1FD2, -+IBUS_KEY_grave, IBUS_KEY_quotedbl, IBUS_KEY_Greek_upsilon, 0x1FE2, -+IBUS_KEY_grave, IBUS_KEY_parenleft, IBUS_KEY_Greek_ALPHA, 0x1F0B, -+IBUS_KEY_grave, IBUS_KEY_parenleft, IBUS_KEY_Greek_EPSILON, 0x1F1B, -+IBUS_KEY_grave, IBUS_KEY_parenleft, IBUS_KEY_Greek_ETA, 0x1F2B, -+IBUS_KEY_grave, IBUS_KEY_parenleft, IBUS_KEY_Greek_IOTA, 0x1F3B, -+IBUS_KEY_grave, IBUS_KEY_parenleft, IBUS_KEY_Greek_OMICRON, 0x1F4B, -+IBUS_KEY_grave, IBUS_KEY_parenleft, IBUS_KEY_Greek_UPSILON, 0x1F5B, -+IBUS_KEY_grave, IBUS_KEY_parenleft, IBUS_KEY_Greek_OMEGA, 0x1F6B, -+IBUS_KEY_grave, IBUS_KEY_parenleft, IBUS_KEY_Greek_alpha, 0x1F03, -+IBUS_KEY_grave, IBUS_KEY_parenleft, IBUS_KEY_Greek_epsilon, 0x1F13, -+IBUS_KEY_grave, IBUS_KEY_parenleft, IBUS_KEY_Greek_eta, 0x1F23, -+IBUS_KEY_grave, IBUS_KEY_parenleft, IBUS_KEY_Greek_iota, 0x1F33, -+IBUS_KEY_grave, IBUS_KEY_parenleft, IBUS_KEY_Greek_omicron, 0x1F43, -+IBUS_KEY_grave, IBUS_KEY_parenleft, IBUS_KEY_Greek_upsilon, 0x1F53, -+IBUS_KEY_grave, IBUS_KEY_parenleft, IBUS_KEY_Greek_omega, 0x1F63, -+IBUS_KEY_grave, IBUS_KEY_parenright, IBUS_KEY_Greek_ALPHA, 0x1F0A, -+IBUS_KEY_grave, IBUS_KEY_parenright, IBUS_KEY_Greek_EPSILON, 0x1F1A, -+IBUS_KEY_grave, IBUS_KEY_parenright, IBUS_KEY_Greek_ETA, 0x1F2A, -+IBUS_KEY_grave, IBUS_KEY_parenright, IBUS_KEY_Greek_IOTA, 0x1F3A, -+IBUS_KEY_grave, IBUS_KEY_parenright, IBUS_KEY_Greek_OMICRON, 0x1F4A, -+IBUS_KEY_grave, IBUS_KEY_parenright, IBUS_KEY_Greek_OMEGA, 0x1F6A, -+IBUS_KEY_grave, IBUS_KEY_parenright, IBUS_KEY_Greek_alpha, 0x1F02, -+IBUS_KEY_grave, IBUS_KEY_parenright, IBUS_KEY_Greek_epsilon, 0x1F12, -+IBUS_KEY_grave, IBUS_KEY_parenright, IBUS_KEY_Greek_eta, 0x1F22, -+IBUS_KEY_grave, IBUS_KEY_parenright, IBUS_KEY_Greek_iota, 0x1F32, -+IBUS_KEY_grave, IBUS_KEY_parenright, IBUS_KEY_Greek_omicron, 0x1F42, -+IBUS_KEY_grave, IBUS_KEY_parenright, IBUS_KEY_Greek_upsilon, 0x1F52, -+IBUS_KEY_grave, IBUS_KEY_parenright, IBUS_KEY_Greek_omega, 0x1F62, -+IBUS_KEY_grave, IBUS_KEY_plus, IBUS_KEY_O, 0x1EDC, -+IBUS_KEY_grave, IBUS_KEY_plus, IBUS_KEY_U, 0x1EEA, -+IBUS_KEY_grave, IBUS_KEY_plus, IBUS_KEY_o, 0x1EDD, -+IBUS_KEY_grave, IBUS_KEY_plus, IBUS_KEY_u, 0x1EEB, -+IBUS_KEY_grave, IBUS_KEY_asciicircum, IBUS_KEY_A, 0x1EA6, -+IBUS_KEY_grave, IBUS_KEY_asciicircum, IBUS_KEY_E, 0x1EC0, -+IBUS_KEY_grave, IBUS_KEY_asciicircum, IBUS_KEY_O, 0x1ED2, -+IBUS_KEY_grave, IBUS_KEY_asciicircum, IBUS_KEY_a, 0x1EA7, -+IBUS_KEY_grave, IBUS_KEY_asciicircum, IBUS_KEY_e, 0x1EC1, -+IBUS_KEY_grave, IBUS_KEY_asciicircum, IBUS_KEY_o, 0x1ED3, -+IBUS_KEY_grave, IBUS_KEY_underscore, IBUS_KEY_E, 0x1E14, -+IBUS_KEY_grave, IBUS_KEY_underscore, IBUS_KEY_O, 0x1E50, -+IBUS_KEY_grave, IBUS_KEY_underscore, IBUS_KEY_e, 0x1E15, -+IBUS_KEY_grave, IBUS_KEY_underscore, IBUS_KEY_o, 0x1E51, -+IBUS_KEY_grave, IBUS_KEY_b, IBUS_KEY_A, 0x1EB0, -+IBUS_KEY_grave, IBUS_KEY_b, IBUS_KEY_a, 0x1EB1, -+IBUS_KEY_grave, IBUS_KEY_macron, IBUS_KEY_E, 0x1E14, -+IBUS_KEY_grave, IBUS_KEY_macron, IBUS_KEY_O, 0x1E50, -+IBUS_KEY_grave, IBUS_KEY_macron, IBUS_KEY_e, 0x1E15, -+IBUS_KEY_grave, IBUS_KEY_macron, IBUS_KEY_o, 0x1E51, -+IBUS_KEY_grave, IBUS_KEY_dead_circumflex, IBUS_KEY_A, 0x1EA6, -+IBUS_KEY_grave, IBUS_KEY_dead_circumflex, IBUS_KEY_E, 0x1EC0, -+IBUS_KEY_grave, IBUS_KEY_dead_circumflex, IBUS_KEY_O, 0x1ED2, -+IBUS_KEY_grave, IBUS_KEY_dead_circumflex, IBUS_KEY_a, 0x1EA7, -+IBUS_KEY_grave, IBUS_KEY_dead_circumflex, IBUS_KEY_e, 0x1EC1, -+IBUS_KEY_grave, IBUS_KEY_dead_circumflex, IBUS_KEY_o, 0x1ED3, -+IBUS_KEY_grave, IBUS_KEY_dead_macron, IBUS_KEY_E, 0x1E14, -+IBUS_KEY_grave, IBUS_KEY_dead_macron, IBUS_KEY_O, 0x1E50, -+IBUS_KEY_grave, IBUS_KEY_dead_macron, IBUS_KEY_e, 0x1E15, -+IBUS_KEY_grave, IBUS_KEY_dead_macron, IBUS_KEY_o, 0x1E51, -+IBUS_KEY_grave, IBUS_KEY_dead_breve, IBUS_KEY_A, 0x1EB0, -+IBUS_KEY_grave, IBUS_KEY_dead_breve, IBUS_KEY_a, 0x1EB1, -+IBUS_KEY_grave, IBUS_KEY_dead_diaeresis, IBUS_KEY_U, 0x01DB, -+IBUS_KEY_grave, IBUS_KEY_dead_diaeresis, IBUS_KEY_u, 0x01DC, -+IBUS_KEY_grave, IBUS_KEY_dead_diaeresis, IBUS_KEY_Greek_iota, 0x1FD2, -+IBUS_KEY_grave, IBUS_KEY_dead_diaeresis, IBUS_KEY_Greek_upsilon, 0x1FE2, -+IBUS_KEY_grave, IBUS_KEY_dead_horn, IBUS_KEY_O, 0x1EDC, -+IBUS_KEY_grave, IBUS_KEY_dead_horn, IBUS_KEY_U, 0x1EEA, -+IBUS_KEY_grave, IBUS_KEY_dead_horn, IBUS_KEY_o, 0x1EDD, -+IBUS_KEY_grave, IBUS_KEY_dead_horn, IBUS_KEY_u, 0x1EEB, -+IBUS_KEY_grave, IBUS_KEY_dead_psili, IBUS_KEY_Greek_ALPHA, 0x1F0A, -+IBUS_KEY_grave, IBUS_KEY_dead_psili, IBUS_KEY_Greek_EPSILON, 0x1F1A, -+IBUS_KEY_grave, IBUS_KEY_dead_psili, IBUS_KEY_Greek_ETA, 0x1F2A, -+IBUS_KEY_grave, IBUS_KEY_dead_psili, IBUS_KEY_Greek_IOTA, 0x1F3A, -+IBUS_KEY_grave, IBUS_KEY_dead_psili, IBUS_KEY_Greek_OMICRON, 0x1F4A, -+IBUS_KEY_grave, IBUS_KEY_dead_psili, IBUS_KEY_Greek_OMEGA, 0x1F6A, -+IBUS_KEY_grave, IBUS_KEY_dead_psili, IBUS_KEY_Greek_alpha, 0x1F02, -+IBUS_KEY_grave, IBUS_KEY_dead_psili, IBUS_KEY_Greek_epsilon, 0x1F12, -+IBUS_KEY_grave, IBUS_KEY_dead_psili, IBUS_KEY_Greek_eta, 0x1F22, -+IBUS_KEY_grave, IBUS_KEY_dead_psili, IBUS_KEY_Greek_iota, 0x1F32, -+IBUS_KEY_grave, IBUS_KEY_dead_psili, IBUS_KEY_Greek_omicron, 0x1F42, -+IBUS_KEY_grave, IBUS_KEY_dead_psili, IBUS_KEY_Greek_upsilon, 0x1F52, -+IBUS_KEY_grave, IBUS_KEY_dead_psili, IBUS_KEY_Greek_omega, 0x1F62, -+IBUS_KEY_grave, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_ALPHA, 0x1F0B, -+IBUS_KEY_grave, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_EPSILON, 0x1F1B, -+IBUS_KEY_grave, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_ETA, 0x1F2B, -+IBUS_KEY_grave, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_IOTA, 0x1F3B, -+IBUS_KEY_grave, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_OMICRON, 0x1F4B, -+IBUS_KEY_grave, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_UPSILON, 0x1F5B, -+IBUS_KEY_grave, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_OMEGA, 0x1F6B, -+IBUS_KEY_grave, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_alpha, 0x1F03, -+IBUS_KEY_grave, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_epsilon, 0x1F13, -+IBUS_KEY_grave, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_eta, 0x1F23, -+IBUS_KEY_grave, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_iota, 0x1F33, -+IBUS_KEY_grave, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_omicron, 0x1F43, -+IBUS_KEY_grave, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_upsilon, 0x1F53, -+IBUS_KEY_grave, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_omega, 0x1F63, -+IBUS_KEY_b, IBUS_KEY_exclam, IBUS_KEY_A, 0x1EB6, -+IBUS_KEY_b, IBUS_KEY_exclam, IBUS_KEY_a, 0x1EB7, -+IBUS_KEY_b, IBUS_KEY_comma, IBUS_KEY_E, 0x1E1C, -+IBUS_KEY_b, IBUS_KEY_comma, IBUS_KEY_e, 0x1E1D, -+IBUS_KEY_b, IBUS_KEY_cedilla, IBUS_KEY_E, 0x1E1C, -+IBUS_KEY_b, IBUS_KEY_cedilla, IBUS_KEY_e, 0x1E1D, -+IBUS_KEY_b, IBUS_KEY_dead_cedilla, IBUS_KEY_E, 0x1E1C, -+IBUS_KEY_b, IBUS_KEY_dead_cedilla, IBUS_KEY_e, 0x1E1D, -+IBUS_KEY_b, IBUS_KEY_dead_belowdot, IBUS_KEY_A, 0x1EB6, -+IBUS_KEY_b, IBUS_KEY_dead_belowdot, IBUS_KEY_a, 0x1EB7, -+IBUS_KEY_c, IBUS_KEY_quotedbl, IBUS_KEY_U, 0x01D9, -+IBUS_KEY_c, IBUS_KEY_quotedbl, IBUS_KEY_u, 0x01DA, -+IBUS_KEY_c, IBUS_KEY_dead_diaeresis, IBUS_KEY_U, 0x01D9, -+IBUS_KEY_c, IBUS_KEY_dead_diaeresis, IBUS_KEY_u, 0x01DA, -+IBUS_KEY_asciitilde, IBUS_KEY_quotedbl, IBUS_KEY_Greek_iota, 0x1FD7, -+IBUS_KEY_asciitilde, IBUS_KEY_quotedbl, IBUS_KEY_Greek_upsilon, 0x1FE7, -+IBUS_KEY_asciitilde, IBUS_KEY_parenleft, IBUS_KEY_Greek_ALPHA, 0x1F0F, -+IBUS_KEY_asciitilde, IBUS_KEY_parenleft, IBUS_KEY_Greek_ETA, 0x1F2F, -+IBUS_KEY_asciitilde, IBUS_KEY_parenleft, IBUS_KEY_Greek_IOTA, 0x1F3F, -+IBUS_KEY_asciitilde, IBUS_KEY_parenleft, IBUS_KEY_Greek_UPSILON, 0x1F5F, -+IBUS_KEY_asciitilde, IBUS_KEY_parenleft, IBUS_KEY_Greek_OMEGA, 0x1F6F, -+IBUS_KEY_asciitilde, IBUS_KEY_parenleft, IBUS_KEY_Greek_alpha, 0x1F07, -+IBUS_KEY_asciitilde, IBUS_KEY_parenleft, IBUS_KEY_Greek_eta, 0x1F27, -+IBUS_KEY_asciitilde, IBUS_KEY_parenleft, IBUS_KEY_Greek_iota, 0x1F37, -+IBUS_KEY_asciitilde, IBUS_KEY_parenleft, IBUS_KEY_Greek_upsilon, 0x1F57, -+IBUS_KEY_asciitilde, IBUS_KEY_parenleft, IBUS_KEY_Greek_omega, 0x1F67, -+IBUS_KEY_asciitilde, IBUS_KEY_parenright, IBUS_KEY_Greek_ALPHA, 0x1F0E, -+IBUS_KEY_asciitilde, IBUS_KEY_parenright, IBUS_KEY_Greek_ETA, 0x1F2E, -+IBUS_KEY_asciitilde, IBUS_KEY_parenright, IBUS_KEY_Greek_IOTA, 0x1F3E, -+IBUS_KEY_asciitilde, IBUS_KEY_parenright, IBUS_KEY_Greek_OMEGA, 0x1F6E, -+IBUS_KEY_asciitilde, IBUS_KEY_parenright, IBUS_KEY_Greek_alpha, 0x1F06, -+IBUS_KEY_asciitilde, IBUS_KEY_parenright, IBUS_KEY_Greek_eta, 0x1F26, -+IBUS_KEY_asciitilde, IBUS_KEY_parenright, IBUS_KEY_Greek_iota, 0x1F36, -+IBUS_KEY_asciitilde, IBUS_KEY_parenright, IBUS_KEY_Greek_upsilon, 0x1F56, -+IBUS_KEY_asciitilde, IBUS_KEY_parenright, IBUS_KEY_Greek_omega, 0x1F66, -+IBUS_KEY_asciitilde, IBUS_KEY_plus, IBUS_KEY_O, 0x1EE0, -+IBUS_KEY_asciitilde, IBUS_KEY_plus, IBUS_KEY_U, 0x1EEE, -+IBUS_KEY_asciitilde, IBUS_KEY_plus, IBUS_KEY_o, 0x1EE1, -+IBUS_KEY_asciitilde, IBUS_KEY_plus, IBUS_KEY_u, 0x1EEF, -+IBUS_KEY_asciitilde, IBUS_KEY_asciicircum, IBUS_KEY_A, 0x1EAA, -+IBUS_KEY_asciitilde, IBUS_KEY_asciicircum, IBUS_KEY_E, 0x1EC4, -+IBUS_KEY_asciitilde, IBUS_KEY_asciicircum, IBUS_KEY_O, 0x1ED6, -+IBUS_KEY_asciitilde, IBUS_KEY_asciicircum, IBUS_KEY_a, 0x1EAB, -+IBUS_KEY_asciitilde, IBUS_KEY_asciicircum, IBUS_KEY_e, 0x1EC5, -+IBUS_KEY_asciitilde, IBUS_KEY_asciicircum, IBUS_KEY_o, 0x1ED7, -+IBUS_KEY_asciitilde, IBUS_KEY_b, IBUS_KEY_A, 0x1EB4, -+IBUS_KEY_asciitilde, IBUS_KEY_b, IBUS_KEY_a, 0x1EB5, -+IBUS_KEY_asciitilde, IBUS_KEY_dead_circumflex, IBUS_KEY_A, 0x1EAA, -+IBUS_KEY_asciitilde, IBUS_KEY_dead_circumflex, IBUS_KEY_E, 0x1EC4, -+IBUS_KEY_asciitilde, IBUS_KEY_dead_circumflex, IBUS_KEY_O, 0x1ED6, -+IBUS_KEY_asciitilde, IBUS_KEY_dead_circumflex, IBUS_KEY_a, 0x1EAB, -+IBUS_KEY_asciitilde, IBUS_KEY_dead_circumflex, IBUS_KEY_e, 0x1EC5, -+IBUS_KEY_asciitilde, IBUS_KEY_dead_circumflex, IBUS_KEY_o, 0x1ED7, -+IBUS_KEY_asciitilde, IBUS_KEY_dead_breve, IBUS_KEY_A, 0x1EB4, -+IBUS_KEY_asciitilde, IBUS_KEY_dead_breve, IBUS_KEY_a, 0x1EB5, -+IBUS_KEY_asciitilde, IBUS_KEY_dead_diaeresis, IBUS_KEY_Greek_iota, 0x1FD7, -+IBUS_KEY_asciitilde, IBUS_KEY_dead_diaeresis, IBUS_KEY_Greek_upsilon, 0x1FE7, -+IBUS_KEY_asciitilde, IBUS_KEY_dead_horn, IBUS_KEY_O, 0x1EE0, -+IBUS_KEY_asciitilde, IBUS_KEY_dead_horn, IBUS_KEY_U, 0x1EEE, -+IBUS_KEY_asciitilde, IBUS_KEY_dead_horn, IBUS_KEY_o, 0x1EE1, -+IBUS_KEY_asciitilde, IBUS_KEY_dead_horn, IBUS_KEY_u, 0x1EEF, -+IBUS_KEY_asciitilde, IBUS_KEY_dead_psili, IBUS_KEY_Greek_ALPHA, 0x1F0E, -+IBUS_KEY_asciitilde, IBUS_KEY_dead_psili, IBUS_KEY_Greek_ETA, 0x1F2E, -+IBUS_KEY_asciitilde, IBUS_KEY_dead_psili, IBUS_KEY_Greek_IOTA, 0x1F3E, -+IBUS_KEY_asciitilde, IBUS_KEY_dead_psili, IBUS_KEY_Greek_OMEGA, 0x1F6E, -+IBUS_KEY_asciitilde, IBUS_KEY_dead_psili, IBUS_KEY_Greek_alpha, 0x1F06, -+IBUS_KEY_asciitilde, IBUS_KEY_dead_psili, IBUS_KEY_Greek_eta, 0x1F26, -+IBUS_KEY_asciitilde, IBUS_KEY_dead_psili, IBUS_KEY_Greek_iota, 0x1F36, -+IBUS_KEY_asciitilde, IBUS_KEY_dead_psili, IBUS_KEY_Greek_upsilon, 0x1F56, -+IBUS_KEY_asciitilde, IBUS_KEY_dead_psili, IBUS_KEY_Greek_omega, 0x1F66, -+IBUS_KEY_asciitilde, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_ALPHA, 0x1F0F, -+IBUS_KEY_asciitilde, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_ETA, 0x1F2F, -+IBUS_KEY_asciitilde, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_IOTA, 0x1F3F, -+IBUS_KEY_asciitilde, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_UPSILON, 0x1F5F, -+IBUS_KEY_asciitilde, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_OMEGA, 0x1F6F, -+IBUS_KEY_asciitilde, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_alpha, 0x1F07, -+IBUS_KEY_asciitilde, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_eta, 0x1F27, -+IBUS_KEY_asciitilde, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_iota, 0x1F37, -+IBUS_KEY_asciitilde, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_upsilon, 0x1F57, -+IBUS_KEY_asciitilde, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_omega, 0x1F67, -+IBUS_KEY_macron, IBUS_KEY_exclam, IBUS_KEY_L, 0x1E38, -+IBUS_KEY_macron, IBUS_KEY_exclam, IBUS_KEY_R, 0x1E5C, -+IBUS_KEY_macron, IBUS_KEY_exclam, IBUS_KEY_l, 0x1E39, -+IBUS_KEY_macron, IBUS_KEY_exclam, IBUS_KEY_r, 0x1E5D, -+IBUS_KEY_macron, IBUS_KEY_quotedbl, IBUS_KEY_A, 0x01DE, -+IBUS_KEY_macron, IBUS_KEY_quotedbl, IBUS_KEY_O, 0x022A, -+IBUS_KEY_macron, IBUS_KEY_quotedbl, IBUS_KEY_U, 0x01D5, -+IBUS_KEY_macron, IBUS_KEY_quotedbl, IBUS_KEY_a, 0x01DF, -+IBUS_KEY_macron, IBUS_KEY_quotedbl, IBUS_KEY_o, 0x022B, -+IBUS_KEY_macron, IBUS_KEY_quotedbl, IBUS_KEY_u, 0x01D6, -+IBUS_KEY_macron, IBUS_KEY_period, IBUS_KEY_A, 0x01E0, -+IBUS_KEY_macron, IBUS_KEY_period, IBUS_KEY_O, 0x0230, -+IBUS_KEY_macron, IBUS_KEY_period, IBUS_KEY_a, 0x01E1, -+IBUS_KEY_macron, IBUS_KEY_period, IBUS_KEY_o, 0x0231, -+IBUS_KEY_macron, IBUS_KEY_semicolon, IBUS_KEY_O, 0x01EC, -+IBUS_KEY_macron, IBUS_KEY_semicolon, IBUS_KEY_o, 0x01ED, -+IBUS_KEY_macron, IBUS_KEY_asciitilde, IBUS_KEY_O, 0x022C, -+IBUS_KEY_macron, IBUS_KEY_asciitilde, IBUS_KEY_o, 0x022D, -+IBUS_KEY_macron, IBUS_KEY_dead_tilde, IBUS_KEY_O, 0x022C, -+IBUS_KEY_macron, IBUS_KEY_dead_tilde, IBUS_KEY_o, 0x022D, -+IBUS_KEY_macron, IBUS_KEY_dead_abovedot, IBUS_KEY_A, 0x01E0, -+IBUS_KEY_macron, IBUS_KEY_dead_abovedot, IBUS_KEY_O, 0x0230, -+IBUS_KEY_macron, IBUS_KEY_dead_abovedot, IBUS_KEY_a, 0x01E1, -+IBUS_KEY_macron, IBUS_KEY_dead_abovedot, IBUS_KEY_o, 0x0231, -+IBUS_KEY_macron, IBUS_KEY_dead_diaeresis, IBUS_KEY_A, 0x01DE, -+IBUS_KEY_macron, IBUS_KEY_dead_diaeresis, IBUS_KEY_O, 0x022A, -+IBUS_KEY_macron, IBUS_KEY_dead_diaeresis, IBUS_KEY_U, 0x01D5, -+IBUS_KEY_macron, IBUS_KEY_dead_diaeresis, IBUS_KEY_a, 0x01DF, -+IBUS_KEY_macron, IBUS_KEY_dead_diaeresis, IBUS_KEY_o, 0x022B, -+IBUS_KEY_macron, IBUS_KEY_dead_diaeresis, IBUS_KEY_u, 0x01D6, -+IBUS_KEY_macron, IBUS_KEY_dead_ogonek, IBUS_KEY_O, 0x01EC, -+IBUS_KEY_macron, IBUS_KEY_dead_ogonek, IBUS_KEY_o, 0x01ED, -+IBUS_KEY_macron, IBUS_KEY_dead_belowdot, IBUS_KEY_L, 0x1E38, -+IBUS_KEY_macron, IBUS_KEY_dead_belowdot, IBUS_KEY_R, 0x1E5C, -+IBUS_KEY_macron, IBUS_KEY_dead_belowdot, IBUS_KEY_l, 0x1E39, -+IBUS_KEY_macron, IBUS_KEY_dead_belowdot, IBUS_KEY_r, 0x1E5D, -+IBUS_KEY_acute, IBUS_KEY_quotedbl, IBUS_KEY_I, 0x1E2E, -+IBUS_KEY_acute, IBUS_KEY_quotedbl, IBUS_KEY_U, 0x01D7, -+IBUS_KEY_acute, IBUS_KEY_quotedbl, IBUS_KEY_i, 0x1E2F, -+IBUS_KEY_acute, IBUS_KEY_quotedbl, IBUS_KEY_u, 0x01D8, -+IBUS_KEY_acute, IBUS_KEY_quotedbl, IBUS_KEY_Greek_iota, 0x0390, -+IBUS_KEY_acute, IBUS_KEY_quotedbl, IBUS_KEY_Greek_upsilon, 0x03B0, -+IBUS_KEY_acute, IBUS_KEY_parenleft, IBUS_KEY_Greek_ALPHA, 0x1F0D, -+IBUS_KEY_acute, IBUS_KEY_parenleft, IBUS_KEY_Greek_EPSILON, 0x1F1D, -+IBUS_KEY_acute, IBUS_KEY_parenleft, IBUS_KEY_Greek_ETA, 0x1F2D, -+IBUS_KEY_acute, IBUS_KEY_parenleft, IBUS_KEY_Greek_IOTA, 0x1F3D, -+IBUS_KEY_acute, IBUS_KEY_parenleft, IBUS_KEY_Greek_OMICRON, 0x1F4D, -+IBUS_KEY_acute, IBUS_KEY_parenleft, IBUS_KEY_Greek_UPSILON, 0x1F5D, -+IBUS_KEY_acute, IBUS_KEY_parenleft, IBUS_KEY_Greek_OMEGA, 0x1F6D, -+IBUS_KEY_acute, IBUS_KEY_parenleft, IBUS_KEY_Greek_alpha, 0x1F05, -+IBUS_KEY_acute, IBUS_KEY_parenleft, IBUS_KEY_Greek_epsilon, 0x1F15, -+IBUS_KEY_acute, IBUS_KEY_parenleft, IBUS_KEY_Greek_eta, 0x1F25, -+IBUS_KEY_acute, IBUS_KEY_parenleft, IBUS_KEY_Greek_iota, 0x1F35, -+IBUS_KEY_acute, IBUS_KEY_parenleft, IBUS_KEY_Greek_omicron, 0x1F45, -+IBUS_KEY_acute, IBUS_KEY_parenleft, IBUS_KEY_Greek_upsilon, 0x1F55, -+IBUS_KEY_acute, IBUS_KEY_parenleft, IBUS_KEY_Greek_omega, 0x1F65, -+IBUS_KEY_acute, IBUS_KEY_parenright, IBUS_KEY_Greek_ALPHA, 0x1F0C, -+IBUS_KEY_acute, IBUS_KEY_parenright, IBUS_KEY_Greek_EPSILON, 0x1F1C, -+IBUS_KEY_acute, IBUS_KEY_parenright, IBUS_KEY_Greek_ETA, 0x1F2C, -+IBUS_KEY_acute, IBUS_KEY_parenright, IBUS_KEY_Greek_IOTA, 0x1F3C, -+IBUS_KEY_acute, IBUS_KEY_parenright, IBUS_KEY_Greek_OMICRON, 0x1F4C, -+IBUS_KEY_acute, IBUS_KEY_parenright, IBUS_KEY_Greek_OMEGA, 0x1F6C, -+IBUS_KEY_acute, IBUS_KEY_parenright, IBUS_KEY_Greek_alpha, 0x1F04, -+IBUS_KEY_acute, IBUS_KEY_parenright, IBUS_KEY_Greek_epsilon, 0x1F14, -+IBUS_KEY_acute, IBUS_KEY_parenright, IBUS_KEY_Greek_eta, 0x1F24, -+IBUS_KEY_acute, IBUS_KEY_parenright, IBUS_KEY_Greek_iota, 0x1F34, -+IBUS_KEY_acute, IBUS_KEY_parenright, IBUS_KEY_Greek_omicron, 0x1F44, -+IBUS_KEY_acute, IBUS_KEY_parenright, IBUS_KEY_Greek_upsilon, 0x1F54, -+IBUS_KEY_acute, IBUS_KEY_parenright, IBUS_KEY_Greek_omega, 0x1F64, -+IBUS_KEY_acute, IBUS_KEY_plus, IBUS_KEY_O, 0x1EDA, -+IBUS_KEY_acute, IBUS_KEY_plus, IBUS_KEY_U, 0x1EE8, -+IBUS_KEY_acute, IBUS_KEY_plus, IBUS_KEY_o, 0x1EDB, -+IBUS_KEY_acute, IBUS_KEY_plus, IBUS_KEY_u, 0x1EE9, -+IBUS_KEY_acute, IBUS_KEY_comma, IBUS_KEY_C, 0x1E08, -+IBUS_KEY_acute, IBUS_KEY_comma, IBUS_KEY_c, 0x1E09, -+IBUS_KEY_acute, IBUS_KEY_slash, IBUS_KEY_O, 0x01FE, -+IBUS_KEY_acute, IBUS_KEY_slash, IBUS_KEY_o, 0x01FF, -+IBUS_KEY_acute, IBUS_KEY_asciicircum, IBUS_KEY_A, 0x1EA4, -+IBUS_KEY_acute, IBUS_KEY_asciicircum, IBUS_KEY_E, 0x1EBE, -+IBUS_KEY_acute, IBUS_KEY_asciicircum, IBUS_KEY_O, 0x1ED0, -+IBUS_KEY_acute, IBUS_KEY_asciicircum, IBUS_KEY_a, 0x1EA5, -+IBUS_KEY_acute, IBUS_KEY_asciicircum, IBUS_KEY_e, 0x1EBF, -+IBUS_KEY_acute, IBUS_KEY_asciicircum, IBUS_KEY_o, 0x1ED1, -+IBUS_KEY_acute, IBUS_KEY_underscore, IBUS_KEY_E, 0x1E16, -+IBUS_KEY_acute, IBUS_KEY_underscore, IBUS_KEY_O, 0x1E52, -+IBUS_KEY_acute, IBUS_KEY_underscore, IBUS_KEY_e, 0x1E17, -+IBUS_KEY_acute, IBUS_KEY_underscore, IBUS_KEY_o, 0x1E53, -+IBUS_KEY_acute, IBUS_KEY_b, IBUS_KEY_A, 0x1EAE, -+IBUS_KEY_acute, IBUS_KEY_b, IBUS_KEY_a, 0x1EAF, -+IBUS_KEY_acute, IBUS_KEY_asciitilde, IBUS_KEY_O, 0x1E4C, -+IBUS_KEY_acute, IBUS_KEY_asciitilde, IBUS_KEY_U, 0x1E78, -+IBUS_KEY_acute, IBUS_KEY_asciitilde, IBUS_KEY_o, 0x1E4D, -+IBUS_KEY_acute, IBUS_KEY_asciitilde, IBUS_KEY_u, 0x1E79, -+IBUS_KEY_acute, IBUS_KEY_macron, IBUS_KEY_E, 0x1E16, -+IBUS_KEY_acute, IBUS_KEY_macron, IBUS_KEY_O, 0x1E52, -+IBUS_KEY_acute, IBUS_KEY_macron, IBUS_KEY_e, 0x1E17, -+IBUS_KEY_acute, IBUS_KEY_macron, IBUS_KEY_o, 0x1E53, -+IBUS_KEY_acute, IBUS_KEY_cedilla, IBUS_KEY_C, 0x1E08, -+IBUS_KEY_acute, IBUS_KEY_cedilla, IBUS_KEY_c, 0x1E09, -+IBUS_KEY_acute, IBUS_KEY_dead_circumflex, IBUS_KEY_A, 0x1EA4, -+IBUS_KEY_acute, IBUS_KEY_dead_circumflex, IBUS_KEY_E, 0x1EBE, -+IBUS_KEY_acute, IBUS_KEY_dead_circumflex, IBUS_KEY_O, 0x1ED0, -+IBUS_KEY_acute, IBUS_KEY_dead_circumflex, IBUS_KEY_a, 0x1EA5, -+IBUS_KEY_acute, IBUS_KEY_dead_circumflex, IBUS_KEY_e, 0x1EBF, -+IBUS_KEY_acute, IBUS_KEY_dead_circumflex, IBUS_KEY_o, 0x1ED1, -+IBUS_KEY_acute, IBUS_KEY_dead_tilde, IBUS_KEY_O, 0x1E4C, -+IBUS_KEY_acute, IBUS_KEY_dead_tilde, IBUS_KEY_U, 0x1E78, -+IBUS_KEY_acute, IBUS_KEY_dead_tilde, IBUS_KEY_o, 0x1E4D, -+IBUS_KEY_acute, IBUS_KEY_dead_tilde, IBUS_KEY_u, 0x1E79, -+IBUS_KEY_acute, IBUS_KEY_dead_macron, IBUS_KEY_E, 0x1E16, -+IBUS_KEY_acute, IBUS_KEY_dead_macron, IBUS_KEY_O, 0x1E52, -+IBUS_KEY_acute, IBUS_KEY_dead_macron, IBUS_KEY_e, 0x1E17, -+IBUS_KEY_acute, IBUS_KEY_dead_macron, IBUS_KEY_o, 0x1E53, -+IBUS_KEY_acute, IBUS_KEY_dead_breve, IBUS_KEY_A, 0x1EAE, -+IBUS_KEY_acute, IBUS_KEY_dead_breve, IBUS_KEY_a, 0x1EAF, -+IBUS_KEY_acute, IBUS_KEY_dead_diaeresis, IBUS_KEY_I, 0x1E2E, -+IBUS_KEY_acute, IBUS_KEY_dead_diaeresis, IBUS_KEY_U, 0x01D7, -+IBUS_KEY_acute, IBUS_KEY_dead_diaeresis, IBUS_KEY_i, 0x1E2F, -+IBUS_KEY_acute, IBUS_KEY_dead_diaeresis, IBUS_KEY_u, 0x01D8, -+IBUS_KEY_acute, IBUS_KEY_dead_diaeresis, IBUS_KEY_Greek_iota, 0x0390, -+IBUS_KEY_acute, IBUS_KEY_dead_diaeresis, IBUS_KEY_Greek_upsilon, 0x03B0, -+IBUS_KEY_acute, IBUS_KEY_dead_abovering, IBUS_KEY_A, 0x01FA, -+IBUS_KEY_acute, IBUS_KEY_dead_abovering, IBUS_KEY_a, 0x01FB, -+IBUS_KEY_acute, IBUS_KEY_dead_cedilla, IBUS_KEY_C, 0x1E08, -+IBUS_KEY_acute, IBUS_KEY_dead_cedilla, IBUS_KEY_c, 0x1E09, -+IBUS_KEY_acute, IBUS_KEY_dead_horn, IBUS_KEY_O, 0x1EDA, -+IBUS_KEY_acute, IBUS_KEY_dead_horn, IBUS_KEY_U, 0x1EE8, -+IBUS_KEY_acute, IBUS_KEY_dead_horn, IBUS_KEY_o, 0x1EDB, -+IBUS_KEY_acute, IBUS_KEY_dead_horn, IBUS_KEY_u, 0x1EE9, -+IBUS_KEY_acute, IBUS_KEY_dead_psili, IBUS_KEY_Greek_ALPHA, 0x1F0C, -+IBUS_KEY_acute, IBUS_KEY_dead_psili, IBUS_KEY_Greek_EPSILON, 0x1F1C, -+IBUS_KEY_acute, IBUS_KEY_dead_psili, IBUS_KEY_Greek_ETA, 0x1F2C, -+IBUS_KEY_acute, IBUS_KEY_dead_psili, IBUS_KEY_Greek_IOTA, 0x1F3C, -+IBUS_KEY_acute, IBUS_KEY_dead_psili, IBUS_KEY_Greek_OMICRON, 0x1F4C, -+IBUS_KEY_acute, IBUS_KEY_dead_psili, IBUS_KEY_Greek_OMEGA, 0x1F6C, -+IBUS_KEY_acute, IBUS_KEY_dead_psili, IBUS_KEY_Greek_alpha, 0x1F04, -+IBUS_KEY_acute, IBUS_KEY_dead_psili, IBUS_KEY_Greek_epsilon, 0x1F14, -+IBUS_KEY_acute, IBUS_KEY_dead_psili, IBUS_KEY_Greek_eta, 0x1F24, -+IBUS_KEY_acute, IBUS_KEY_dead_psili, IBUS_KEY_Greek_iota, 0x1F34, -+IBUS_KEY_acute, IBUS_KEY_dead_psili, IBUS_KEY_Greek_omicron, 0x1F44, -+IBUS_KEY_acute, IBUS_KEY_dead_psili, IBUS_KEY_Greek_upsilon, 0x1F54, -+IBUS_KEY_acute, IBUS_KEY_dead_psili, IBUS_KEY_Greek_omega, 0x1F64, -+IBUS_KEY_acute, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_ALPHA, 0x1F0D, -+IBUS_KEY_acute, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_EPSILON, 0x1F1D, -+IBUS_KEY_acute, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_ETA, 0x1F2D, -+IBUS_KEY_acute, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_IOTA, 0x1F3D, -+IBUS_KEY_acute, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_OMICRON, 0x1F4D, -+IBUS_KEY_acute, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_UPSILON, 0x1F5D, -+IBUS_KEY_acute, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_OMEGA, 0x1F6D, -+IBUS_KEY_acute, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_alpha, 0x1F05, -+IBUS_KEY_acute, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_epsilon, 0x1F15, -+IBUS_KEY_acute, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_eta, 0x1F25, -+IBUS_KEY_acute, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_iota, 0x1F35, -+IBUS_KEY_acute, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_omicron, 0x1F45, -+IBUS_KEY_acute, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_upsilon, 0x1F55, -+IBUS_KEY_acute, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_omega, 0x1F65, -+IBUS_KEY_acute, IBUS_KEY_KP_Divide, IBUS_KEY_O, 0x01FE, -+IBUS_KEY_acute, IBUS_KEY_KP_Divide, IBUS_KEY_o, 0x01FF, -+0x05C1, 0x05BC, IBUS_KEY_hebrew_shin, 0xFB2C, -+0x05C2, 0x05BC, IBUS_KEY_hebrew_shin, 0xFB2D, -+IBUS_KEY_Greek_iota, IBUS_KEY_apostrophe, IBUS_KEY_Greek_alpha, 0x1FB4, -+IBUS_KEY_Greek_iota, IBUS_KEY_apostrophe, IBUS_KEY_Greek_eta, 0x1FC4, -+IBUS_KEY_Greek_iota, IBUS_KEY_apostrophe, IBUS_KEY_Greek_omega, 0x1FF4, -+IBUS_KEY_Greek_iota, IBUS_KEY_apostrophe, 0x1F00, 0x1F84, -+IBUS_KEY_Greek_iota, IBUS_KEY_apostrophe, 0x1F01, 0x1F85, -+IBUS_KEY_Greek_iota, IBUS_KEY_apostrophe, 0x1F08, 0x1F8C, -+IBUS_KEY_Greek_iota, IBUS_KEY_apostrophe, 0x1F09, 0x1F8D, -+IBUS_KEY_Greek_iota, IBUS_KEY_apostrophe, 0x1F20, 0x1F94, -+IBUS_KEY_Greek_iota, IBUS_KEY_apostrophe, 0x1F21, 0x1F95, -+IBUS_KEY_Greek_iota, IBUS_KEY_apostrophe, 0x1F28, 0x1F9C, -+IBUS_KEY_Greek_iota, IBUS_KEY_apostrophe, 0x1F29, 0x1F9D, -+IBUS_KEY_Greek_iota, IBUS_KEY_apostrophe, 0x1F60, 0x1FA4, -+IBUS_KEY_Greek_iota, IBUS_KEY_apostrophe, 0x1F61, 0x1FA5, -+IBUS_KEY_Greek_iota, IBUS_KEY_apostrophe, 0x1F68, 0x1FAC, -+IBUS_KEY_Greek_iota, IBUS_KEY_apostrophe, 0x1F69, 0x1FAD, -+IBUS_KEY_Greek_iota, IBUS_KEY_parenleft, IBUS_KEY_Greek_ALPHA, 0x1F89, -+IBUS_KEY_Greek_iota, IBUS_KEY_parenleft, IBUS_KEY_Greek_ETA, 0x1F99, -+IBUS_KEY_Greek_iota, IBUS_KEY_parenleft, IBUS_KEY_Greek_OMEGA, 0x1FA9, -+IBUS_KEY_Greek_iota, IBUS_KEY_parenleft, IBUS_KEY_Greek_alpha, 0x1F81, -+IBUS_KEY_Greek_iota, IBUS_KEY_parenleft, IBUS_KEY_Greek_eta, 0x1F91, -+IBUS_KEY_Greek_iota, IBUS_KEY_parenleft, IBUS_KEY_Greek_omega, 0x1FA1, -+IBUS_KEY_Greek_iota, IBUS_KEY_parenright, IBUS_KEY_Greek_ALPHA, 0x1F88, -+IBUS_KEY_Greek_iota, IBUS_KEY_parenright, IBUS_KEY_Greek_ETA, 0x1F98, -+IBUS_KEY_Greek_iota, IBUS_KEY_parenright, IBUS_KEY_Greek_OMEGA, 0x1FA8, -+IBUS_KEY_Greek_iota, IBUS_KEY_parenright, IBUS_KEY_Greek_alpha, 0x1F80, -+IBUS_KEY_Greek_iota, IBUS_KEY_parenright, IBUS_KEY_Greek_eta, 0x1F90, -+IBUS_KEY_Greek_iota, IBUS_KEY_parenright, IBUS_KEY_Greek_omega, 0x1FA0, -+IBUS_KEY_Greek_iota, IBUS_KEY_grave, IBUS_KEY_Greek_alpha, 0x1FB2, -+IBUS_KEY_Greek_iota, IBUS_KEY_grave, IBUS_KEY_Greek_eta, 0x1FC2, -+IBUS_KEY_Greek_iota, IBUS_KEY_grave, IBUS_KEY_Greek_omega, 0x1FF2, -+IBUS_KEY_Greek_iota, IBUS_KEY_grave, 0x1F00, 0x1F82, -+IBUS_KEY_Greek_iota, IBUS_KEY_grave, 0x1F01, 0x1F83, -+IBUS_KEY_Greek_iota, IBUS_KEY_grave, 0x1F08, 0x1F8A, -+IBUS_KEY_Greek_iota, IBUS_KEY_grave, 0x1F09, 0x1F8B, -+IBUS_KEY_Greek_iota, IBUS_KEY_grave, 0x1F20, 0x1F92, -+IBUS_KEY_Greek_iota, IBUS_KEY_grave, 0x1F21, 0x1F93, -+IBUS_KEY_Greek_iota, IBUS_KEY_grave, 0x1F28, 0x1F9A, -+IBUS_KEY_Greek_iota, IBUS_KEY_grave, 0x1F29, 0x1F9B, -+IBUS_KEY_Greek_iota, IBUS_KEY_grave, 0x1F60, 0x1FA2, -+IBUS_KEY_Greek_iota, IBUS_KEY_grave, 0x1F61, 0x1FA3, -+IBUS_KEY_Greek_iota, IBUS_KEY_grave, 0x1F68, 0x1FAA, -+IBUS_KEY_Greek_iota, IBUS_KEY_grave, 0x1F69, 0x1FAB, -+IBUS_KEY_Greek_iota, IBUS_KEY_asciitilde, IBUS_KEY_Greek_alpha, 0x1FB7, -+IBUS_KEY_Greek_iota, IBUS_KEY_asciitilde, IBUS_KEY_Greek_eta, 0x1FC7, -+IBUS_KEY_Greek_iota, IBUS_KEY_asciitilde, IBUS_KEY_Greek_omega, 0x1FF7, -+IBUS_KEY_Greek_iota, IBUS_KEY_asciitilde, 0x1F00, 0x1F86, -+IBUS_KEY_Greek_iota, IBUS_KEY_asciitilde, 0x1F01, 0x1F87, -+IBUS_KEY_Greek_iota, IBUS_KEY_asciitilde, 0x1F08, 0x1F8E, -+IBUS_KEY_Greek_iota, IBUS_KEY_asciitilde, 0x1F09, 0x1F8F, -+IBUS_KEY_Greek_iota, IBUS_KEY_asciitilde, 0x1F20, 0x1F96, -+IBUS_KEY_Greek_iota, IBUS_KEY_asciitilde, 0x1F21, 0x1F97, -+IBUS_KEY_Greek_iota, IBUS_KEY_asciitilde, 0x1F28, 0x1F9E, -+IBUS_KEY_Greek_iota, IBUS_KEY_asciitilde, 0x1F29, 0x1F9F, -+IBUS_KEY_Greek_iota, IBUS_KEY_asciitilde, 0x1F60, 0x1FA6, -+IBUS_KEY_Greek_iota, IBUS_KEY_asciitilde, 0x1F61, 0x1FA7, -+IBUS_KEY_Greek_iota, IBUS_KEY_asciitilde, 0x1F68, 0x1FAE, -+IBUS_KEY_Greek_iota, IBUS_KEY_asciitilde, 0x1F69, 0x1FAF, -+IBUS_KEY_Greek_iota, IBUS_KEY_acute, IBUS_KEY_Greek_alpha, 0x1FB4, -+IBUS_KEY_Greek_iota, IBUS_KEY_acute, IBUS_KEY_Greek_eta, 0x1FC4, -+IBUS_KEY_Greek_iota, IBUS_KEY_acute, IBUS_KEY_Greek_omega, 0x1FF4, -+IBUS_KEY_Greek_iota, IBUS_KEY_acute, 0x1F00, 0x1F84, -+IBUS_KEY_Greek_iota, IBUS_KEY_acute, 0x1F01, 0x1F85, -+IBUS_KEY_Greek_iota, IBUS_KEY_acute, 0x1F08, 0x1F8C, -+IBUS_KEY_Greek_iota, IBUS_KEY_acute, 0x1F09, 0x1F8D, -+IBUS_KEY_Greek_iota, IBUS_KEY_acute, 0x1F20, 0x1F94, -+IBUS_KEY_Greek_iota, IBUS_KEY_acute, 0x1F21, 0x1F95, -+IBUS_KEY_Greek_iota, IBUS_KEY_acute, 0x1F28, 0x1F9C, -+IBUS_KEY_Greek_iota, IBUS_KEY_acute, 0x1F29, 0x1F9D, -+IBUS_KEY_Greek_iota, IBUS_KEY_acute, 0x1F60, 0x1FA4, -+IBUS_KEY_Greek_iota, IBUS_KEY_acute, 0x1F61, 0x1FA5, -+IBUS_KEY_Greek_iota, IBUS_KEY_acute, 0x1F68, 0x1FAC, -+IBUS_KEY_Greek_iota, IBUS_KEY_acute, 0x1F69, 0x1FAD, -+IBUS_KEY_Greek_iota, IBUS_KEY_dead_grave, IBUS_KEY_Greek_alpha, 0x1FB2, -+IBUS_KEY_Greek_iota, IBUS_KEY_dead_grave, IBUS_KEY_Greek_eta, 0x1FC2, -+IBUS_KEY_Greek_iota, IBUS_KEY_dead_grave, IBUS_KEY_Greek_omega, 0x1FF2, -+IBUS_KEY_Greek_iota, IBUS_KEY_dead_grave, 0x1F00, 0x1F82, -+IBUS_KEY_Greek_iota, IBUS_KEY_dead_grave, 0x1F01, 0x1F83, -+IBUS_KEY_Greek_iota, IBUS_KEY_dead_grave, 0x1F08, 0x1F8A, -+IBUS_KEY_Greek_iota, IBUS_KEY_dead_grave, 0x1F09, 0x1F8B, -+IBUS_KEY_Greek_iota, IBUS_KEY_dead_grave, 0x1F20, 0x1F92, -+IBUS_KEY_Greek_iota, IBUS_KEY_dead_grave, 0x1F21, 0x1F93, -+IBUS_KEY_Greek_iota, IBUS_KEY_dead_grave, 0x1F28, 0x1F9A, -+IBUS_KEY_Greek_iota, IBUS_KEY_dead_grave, 0x1F29, 0x1F9B, -+IBUS_KEY_Greek_iota, IBUS_KEY_dead_grave, 0x1F60, 0x1FA2, -+IBUS_KEY_Greek_iota, IBUS_KEY_dead_grave, 0x1F61, 0x1FA3, -+IBUS_KEY_Greek_iota, IBUS_KEY_dead_grave, 0x1F68, 0x1FAA, -+IBUS_KEY_Greek_iota, IBUS_KEY_dead_grave, 0x1F69, 0x1FAB, -+IBUS_KEY_Greek_iota, IBUS_KEY_dead_acute, IBUS_KEY_Greek_alpha, 0x1FB4, -+IBUS_KEY_Greek_iota, IBUS_KEY_dead_acute, IBUS_KEY_Greek_eta, 0x1FC4, -+IBUS_KEY_Greek_iota, IBUS_KEY_dead_acute, IBUS_KEY_Greek_omega, 0x1FF4, -+IBUS_KEY_Greek_iota, IBUS_KEY_dead_acute, 0x1F00, 0x1F84, -+IBUS_KEY_Greek_iota, IBUS_KEY_dead_acute, 0x1F01, 0x1F85, -+IBUS_KEY_Greek_iota, IBUS_KEY_dead_acute, 0x1F08, 0x1F8C, -+IBUS_KEY_Greek_iota, IBUS_KEY_dead_acute, 0x1F09, 0x1F8D, -+IBUS_KEY_Greek_iota, IBUS_KEY_dead_acute, 0x1F20, 0x1F94, -+IBUS_KEY_Greek_iota, IBUS_KEY_dead_acute, 0x1F21, 0x1F95, -+IBUS_KEY_Greek_iota, IBUS_KEY_dead_acute, 0x1F28, 0x1F9C, -+IBUS_KEY_Greek_iota, IBUS_KEY_dead_acute, 0x1F29, 0x1F9D, -+IBUS_KEY_Greek_iota, IBUS_KEY_dead_acute, 0x1F60, 0x1FA4, -+IBUS_KEY_Greek_iota, IBUS_KEY_dead_acute, 0x1F61, 0x1FA5, -+IBUS_KEY_Greek_iota, IBUS_KEY_dead_acute, 0x1F68, 0x1FAC, -+IBUS_KEY_Greek_iota, IBUS_KEY_dead_acute, 0x1F69, 0x1FAD, -+IBUS_KEY_Greek_iota, IBUS_KEY_dead_tilde, IBUS_KEY_Greek_alpha, 0x1FB7, -+IBUS_KEY_Greek_iota, IBUS_KEY_dead_tilde, IBUS_KEY_Greek_eta, 0x1FC7, -+IBUS_KEY_Greek_iota, IBUS_KEY_dead_tilde, IBUS_KEY_Greek_omega, 0x1FF7, -+IBUS_KEY_Greek_iota, IBUS_KEY_dead_tilde, 0x1F00, 0x1F86, -+IBUS_KEY_Greek_iota, IBUS_KEY_dead_tilde, 0x1F01, 0x1F87, -+IBUS_KEY_Greek_iota, IBUS_KEY_dead_tilde, 0x1F08, 0x1F8E, -+IBUS_KEY_Greek_iota, IBUS_KEY_dead_tilde, 0x1F09, 0x1F8F, -+IBUS_KEY_Greek_iota, IBUS_KEY_dead_tilde, 0x1F20, 0x1F96, -+IBUS_KEY_Greek_iota, IBUS_KEY_dead_tilde, 0x1F21, 0x1F97, -+IBUS_KEY_Greek_iota, IBUS_KEY_dead_tilde, 0x1F28, 0x1F9E, -+IBUS_KEY_Greek_iota, IBUS_KEY_dead_tilde, 0x1F29, 0x1F9F, -+IBUS_KEY_Greek_iota, IBUS_KEY_dead_tilde, 0x1F60, 0x1FA6, -+IBUS_KEY_Greek_iota, IBUS_KEY_dead_tilde, 0x1F61, 0x1FA7, -+IBUS_KEY_Greek_iota, IBUS_KEY_dead_tilde, 0x1F68, 0x1FAE, -+IBUS_KEY_Greek_iota, IBUS_KEY_dead_tilde, 0x1F69, 0x1FAF, -+IBUS_KEY_Greek_iota, IBUS_KEY_dead_psili, IBUS_KEY_Greek_ALPHA, 0x1F88, -+IBUS_KEY_Greek_iota, IBUS_KEY_dead_psili, IBUS_KEY_Greek_ETA, 0x1F98, -+IBUS_KEY_Greek_iota, IBUS_KEY_dead_psili, IBUS_KEY_Greek_OMEGA, 0x1FA8, -+IBUS_KEY_Greek_iota, IBUS_KEY_dead_psili, IBUS_KEY_Greek_alpha, 0x1F80, -+IBUS_KEY_Greek_iota, IBUS_KEY_dead_psili, IBUS_KEY_Greek_eta, 0x1F90, -+IBUS_KEY_Greek_iota, IBUS_KEY_dead_psili, IBUS_KEY_Greek_omega, 0x1FA0, -+IBUS_KEY_Greek_iota, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_ALPHA, 0x1F89, -+IBUS_KEY_Greek_iota, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_ETA, 0x1F99, -+IBUS_KEY_Greek_iota, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_OMEGA, 0x1FA9, -+IBUS_KEY_Greek_iota, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_alpha, 0x1F81, -+IBUS_KEY_Greek_iota, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_eta, 0x1F91, -+IBUS_KEY_Greek_iota, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_omega, 0x1FA1, -+IBUS_KEY_dead_abovedot, IBUS_KEY_f, IBUS_KEY_s, 0x1E9B, -+IBUS_KEY_parenleft, IBUS_KEY_1, IBUS_KEY_0, IBUS_KEY_parenright, 0x2469, -+IBUS_KEY_parenleft, IBUS_KEY_1, IBUS_KEY_1, IBUS_KEY_parenright, 0x246A, -+IBUS_KEY_parenleft, IBUS_KEY_1, IBUS_KEY_2, IBUS_KEY_parenright, 0x246B, -+IBUS_KEY_parenleft, IBUS_KEY_1, IBUS_KEY_3, IBUS_KEY_parenright, 0x246C, -+IBUS_KEY_parenleft, IBUS_KEY_1, IBUS_KEY_4, IBUS_KEY_parenright, 0x246D, -+IBUS_KEY_parenleft, IBUS_KEY_1, IBUS_KEY_5, IBUS_KEY_parenright, 0x246E, -+IBUS_KEY_parenleft, IBUS_KEY_1, IBUS_KEY_6, IBUS_KEY_parenright, 0x246F, -+IBUS_KEY_parenleft, IBUS_KEY_1, IBUS_KEY_7, IBUS_KEY_parenright, 0x2470, -+IBUS_KEY_parenleft, IBUS_KEY_1, IBUS_KEY_8, IBUS_KEY_parenright, 0x2471, -+IBUS_KEY_parenleft, IBUS_KEY_1, IBUS_KEY_9, IBUS_KEY_parenright, 0x2472, -+IBUS_KEY_parenleft, IBUS_KEY_1, IBUS_KEY_KP_Space, IBUS_KEY_parenright, 0x246B, -+IBUS_KEY_parenleft, IBUS_KEY_1, IBUS_KEY_KP_0, IBUS_KEY_parenright, 0x2469, -+IBUS_KEY_parenleft, IBUS_KEY_1, IBUS_KEY_KP_1, IBUS_KEY_parenright, 0x246A, -+IBUS_KEY_parenleft, IBUS_KEY_1, IBUS_KEY_KP_2, IBUS_KEY_parenright, 0x246B, -+IBUS_KEY_parenleft, IBUS_KEY_1, IBUS_KEY_KP_3, IBUS_KEY_parenright, 0x246C, -+IBUS_KEY_parenleft, IBUS_KEY_1, IBUS_KEY_KP_4, IBUS_KEY_parenright, 0x246D, -+IBUS_KEY_parenleft, IBUS_KEY_1, IBUS_KEY_KP_5, IBUS_KEY_parenright, 0x246E, -+IBUS_KEY_parenleft, IBUS_KEY_1, IBUS_KEY_KP_6, IBUS_KEY_parenright, 0x246F, -+IBUS_KEY_parenleft, IBUS_KEY_1, IBUS_KEY_KP_7, IBUS_KEY_parenright, 0x2470, -+IBUS_KEY_parenleft, IBUS_KEY_1, IBUS_KEY_KP_8, IBUS_KEY_parenright, 0x2471, -+IBUS_KEY_parenleft, IBUS_KEY_1, IBUS_KEY_KP_9, IBUS_KEY_parenright, 0x2472, -+IBUS_KEY_parenleft, IBUS_KEY_2, IBUS_KEY_0, IBUS_KEY_parenright, 0x2473, -+IBUS_KEY_parenleft, IBUS_KEY_2, IBUS_KEY_1, IBUS_KEY_parenright, 0x3251, -+IBUS_KEY_parenleft, IBUS_KEY_2, IBUS_KEY_2, IBUS_KEY_parenright, 0x3252, -+IBUS_KEY_parenleft, IBUS_KEY_2, IBUS_KEY_3, IBUS_KEY_parenright, 0x3253, -+IBUS_KEY_parenleft, IBUS_KEY_2, IBUS_KEY_4, IBUS_KEY_parenright, 0x3254, -+IBUS_KEY_parenleft, IBUS_KEY_2, IBUS_KEY_5, IBUS_KEY_parenright, 0x3255, -+IBUS_KEY_parenleft, IBUS_KEY_2, IBUS_KEY_6, IBUS_KEY_parenright, 0x3256, -+IBUS_KEY_parenleft, IBUS_KEY_2, IBUS_KEY_7, IBUS_KEY_parenright, 0x3257, -+IBUS_KEY_parenleft, IBUS_KEY_2, IBUS_KEY_8, IBUS_KEY_parenright, 0x3258, -+IBUS_KEY_parenleft, IBUS_KEY_2, IBUS_KEY_9, IBUS_KEY_parenright, 0x3259, -+IBUS_KEY_parenleft, IBUS_KEY_2, IBUS_KEY_KP_Space, IBUS_KEY_parenright, 0x3252, -+IBUS_KEY_parenleft, IBUS_KEY_2, IBUS_KEY_KP_0, IBUS_KEY_parenright, 0x2473, -+IBUS_KEY_parenleft, IBUS_KEY_2, IBUS_KEY_KP_1, IBUS_KEY_parenright, 0x3251, -+IBUS_KEY_parenleft, IBUS_KEY_2, IBUS_KEY_KP_2, IBUS_KEY_parenright, 0x3252, -+IBUS_KEY_parenleft, IBUS_KEY_2, IBUS_KEY_KP_3, IBUS_KEY_parenright, 0x3253, -+IBUS_KEY_parenleft, IBUS_KEY_2, IBUS_KEY_KP_4, IBUS_KEY_parenright, 0x3254, -+IBUS_KEY_parenleft, IBUS_KEY_2, IBUS_KEY_KP_5, IBUS_KEY_parenright, 0x3255, -+IBUS_KEY_parenleft, IBUS_KEY_2, IBUS_KEY_KP_6, IBUS_KEY_parenright, 0x3256, -+IBUS_KEY_parenleft, IBUS_KEY_2, IBUS_KEY_KP_7, IBUS_KEY_parenright, 0x3257, -+IBUS_KEY_parenleft, IBUS_KEY_2, IBUS_KEY_KP_8, IBUS_KEY_parenright, 0x3258, -+IBUS_KEY_parenleft, IBUS_KEY_2, IBUS_KEY_KP_9, IBUS_KEY_parenright, 0x3259, -+IBUS_KEY_parenleft, IBUS_KEY_3, IBUS_KEY_0, IBUS_KEY_parenright, 0x325A, -+IBUS_KEY_parenleft, IBUS_KEY_3, IBUS_KEY_1, IBUS_KEY_parenright, 0x325B, -+IBUS_KEY_parenleft, IBUS_KEY_3, IBUS_KEY_2, IBUS_KEY_parenright, 0x325C, -+IBUS_KEY_parenleft, IBUS_KEY_3, IBUS_KEY_3, IBUS_KEY_parenright, 0x325D, -+IBUS_KEY_parenleft, IBUS_KEY_3, IBUS_KEY_4, IBUS_KEY_parenright, 0x325E, -+IBUS_KEY_parenleft, IBUS_KEY_3, IBUS_KEY_5, IBUS_KEY_parenright, 0x325F, -+IBUS_KEY_parenleft, IBUS_KEY_3, IBUS_KEY_6, IBUS_KEY_parenright, 0x32B1, -+IBUS_KEY_parenleft, IBUS_KEY_3, IBUS_KEY_7, IBUS_KEY_parenright, 0x32B2, -+IBUS_KEY_parenleft, IBUS_KEY_3, IBUS_KEY_8, IBUS_KEY_parenright, 0x32B3, -+IBUS_KEY_parenleft, IBUS_KEY_3, IBUS_KEY_9, IBUS_KEY_parenright, 0x32B4, -+IBUS_KEY_parenleft, IBUS_KEY_3, IBUS_KEY_KP_Space, IBUS_KEY_parenright, 0x325C, -+IBUS_KEY_parenleft, IBUS_KEY_3, IBUS_KEY_KP_0, IBUS_KEY_parenright, 0x325A, -+IBUS_KEY_parenleft, IBUS_KEY_3, IBUS_KEY_KP_1, IBUS_KEY_parenright, 0x325B, -+IBUS_KEY_parenleft, IBUS_KEY_3, IBUS_KEY_KP_2, IBUS_KEY_parenright, 0x325C, -+IBUS_KEY_parenleft, IBUS_KEY_3, IBUS_KEY_KP_3, IBUS_KEY_parenright, 0x325D, -+IBUS_KEY_parenleft, IBUS_KEY_3, IBUS_KEY_KP_4, IBUS_KEY_parenright, 0x325E, -+IBUS_KEY_parenleft, IBUS_KEY_3, IBUS_KEY_KP_5, IBUS_KEY_parenright, 0x325F, -+IBUS_KEY_parenleft, IBUS_KEY_3, IBUS_KEY_KP_6, IBUS_KEY_parenright, 0x32B1, -+IBUS_KEY_parenleft, IBUS_KEY_3, IBUS_KEY_KP_7, IBUS_KEY_parenright, 0x32B2, -+IBUS_KEY_parenleft, IBUS_KEY_3, IBUS_KEY_KP_8, IBUS_KEY_parenright, 0x32B3, -+IBUS_KEY_parenleft, IBUS_KEY_3, IBUS_KEY_KP_9, IBUS_KEY_parenright, 0x32B4, -+IBUS_KEY_parenleft, IBUS_KEY_4, IBUS_KEY_0, IBUS_KEY_parenright, 0x32B5, -+IBUS_KEY_parenleft, IBUS_KEY_4, IBUS_KEY_1, IBUS_KEY_parenright, 0x32B6, -+IBUS_KEY_parenleft, IBUS_KEY_4, IBUS_KEY_2, IBUS_KEY_parenright, 0x32B7, -+IBUS_KEY_parenleft, IBUS_KEY_4, IBUS_KEY_3, IBUS_KEY_parenright, 0x32B8, -+IBUS_KEY_parenleft, IBUS_KEY_4, IBUS_KEY_4, IBUS_KEY_parenright, 0x32B9, -+IBUS_KEY_parenleft, IBUS_KEY_4, IBUS_KEY_5, IBUS_KEY_parenright, 0x32BA, -+IBUS_KEY_parenleft, IBUS_KEY_4, IBUS_KEY_6, IBUS_KEY_parenright, 0x32BB, -+IBUS_KEY_parenleft, IBUS_KEY_4, IBUS_KEY_7, IBUS_KEY_parenright, 0x32BC, -+IBUS_KEY_parenleft, IBUS_KEY_4, IBUS_KEY_8, IBUS_KEY_parenright, 0x32BD, -+IBUS_KEY_parenleft, IBUS_KEY_4, IBUS_KEY_9, IBUS_KEY_parenright, 0x32BE, -+IBUS_KEY_parenleft, IBUS_KEY_4, IBUS_KEY_KP_Space, IBUS_KEY_parenright, 0x32B7, -+IBUS_KEY_parenleft, IBUS_KEY_4, IBUS_KEY_KP_0, IBUS_KEY_parenright, 0x32B5, -+IBUS_KEY_parenleft, IBUS_KEY_4, IBUS_KEY_KP_1, IBUS_KEY_parenright, 0x32B6, -+IBUS_KEY_parenleft, IBUS_KEY_4, IBUS_KEY_KP_2, IBUS_KEY_parenright, 0x32B7, -+IBUS_KEY_parenleft, IBUS_KEY_4, IBUS_KEY_KP_3, IBUS_KEY_parenright, 0x32B8, -+IBUS_KEY_parenleft, IBUS_KEY_4, IBUS_KEY_KP_4, IBUS_KEY_parenright, 0x32B9, -+IBUS_KEY_parenleft, IBUS_KEY_4, IBUS_KEY_KP_5, IBUS_KEY_parenright, 0x32BA, -+IBUS_KEY_parenleft, IBUS_KEY_4, IBUS_KEY_KP_6, IBUS_KEY_parenright, 0x32BB, -+IBUS_KEY_parenleft, IBUS_KEY_4, IBUS_KEY_KP_7, IBUS_KEY_parenright, 0x32BC, -+IBUS_KEY_parenleft, IBUS_KEY_4, IBUS_KEY_KP_8, IBUS_KEY_parenright, 0x32BD, -+IBUS_KEY_parenleft, IBUS_KEY_4, IBUS_KEY_KP_9, IBUS_KEY_parenright, 0x32BE, -+IBUS_KEY_parenleft, IBUS_KEY_5, IBUS_KEY_0, IBUS_KEY_parenright, 0x32BF, -+IBUS_KEY_parenleft, 0x1100, 0x1161, IBUS_KEY_parenright, 0x326E, -+IBUS_KEY_parenleft, 0x1102, 0x1161, IBUS_KEY_parenright, 0x326F, -+IBUS_KEY_parenleft, 0x1103, 0x1161, IBUS_KEY_parenright, 0x3270, -+IBUS_KEY_parenleft, 0x1105, 0x1161, IBUS_KEY_parenright, 0x3271, -+IBUS_KEY_parenleft, 0x1106, 0x1161, IBUS_KEY_parenright, 0x3272, -+IBUS_KEY_parenleft, 0x1107, 0x1161, IBUS_KEY_parenright, 0x3273, -+IBUS_KEY_parenleft, 0x1109, 0x1161, IBUS_KEY_parenright, 0x3274, -+IBUS_KEY_parenleft, 0x110B, 0x1161, IBUS_KEY_parenright, 0x3275, -+IBUS_KEY_parenleft, 0x110C, 0x1161, IBUS_KEY_parenright, 0x3276, -+IBUS_KEY_parenleft, 0x110E, 0x1161, IBUS_KEY_parenright, 0x3277, -+IBUS_KEY_parenleft, 0x110F, 0x1161, IBUS_KEY_parenright, 0x3278, -+IBUS_KEY_parenleft, 0x1110, 0x1161, IBUS_KEY_parenright, 0x3279, -+IBUS_KEY_parenleft, 0x1111, 0x1161, IBUS_KEY_parenright, 0x327A, -+IBUS_KEY_parenleft, 0x1112, 0x1161, IBUS_KEY_parenright, 0x327B, -+IBUS_KEY_parenleft, IBUS_KEY_KP_Space, IBUS_KEY_0, IBUS_KEY_parenright, 0x2473, -+IBUS_KEY_parenleft, IBUS_KEY_KP_Space, IBUS_KEY_1, IBUS_KEY_parenright, 0x3251, -+IBUS_KEY_parenleft, IBUS_KEY_KP_Space, IBUS_KEY_2, IBUS_KEY_parenright, 0x3252, -+IBUS_KEY_parenleft, IBUS_KEY_KP_Space, IBUS_KEY_3, IBUS_KEY_parenright, 0x3253, -+IBUS_KEY_parenleft, IBUS_KEY_KP_Space, IBUS_KEY_4, IBUS_KEY_parenright, 0x3254, -+IBUS_KEY_parenleft, IBUS_KEY_KP_Space, IBUS_KEY_5, IBUS_KEY_parenright, 0x3255, -+IBUS_KEY_parenleft, IBUS_KEY_KP_Space, IBUS_KEY_6, IBUS_KEY_parenright, 0x3256, -+IBUS_KEY_parenleft, IBUS_KEY_KP_Space, IBUS_KEY_7, IBUS_KEY_parenright, 0x3257, -+IBUS_KEY_parenleft, IBUS_KEY_KP_Space, IBUS_KEY_8, IBUS_KEY_parenright, 0x3258, -+IBUS_KEY_parenleft, IBUS_KEY_KP_Space, IBUS_KEY_9, IBUS_KEY_parenright, 0x3259, -+IBUS_KEY_parenleft, IBUS_KEY_KP_Space, IBUS_KEY_KP_Space, IBUS_KEY_parenright, 0x3252, -+IBUS_KEY_parenleft, IBUS_KEY_KP_Space, IBUS_KEY_KP_0, IBUS_KEY_parenright, 0x2473, -+IBUS_KEY_parenleft, IBUS_KEY_KP_Space, IBUS_KEY_KP_1, IBUS_KEY_parenright, 0x3251, -+IBUS_KEY_parenleft, IBUS_KEY_KP_Space, IBUS_KEY_KP_2, IBUS_KEY_parenright, 0x3252, -+IBUS_KEY_parenleft, IBUS_KEY_KP_Space, IBUS_KEY_KP_3, IBUS_KEY_parenright, 0x3253, -+IBUS_KEY_parenleft, IBUS_KEY_KP_Space, IBUS_KEY_KP_4, IBUS_KEY_parenright, 0x3254, -+IBUS_KEY_parenleft, IBUS_KEY_KP_Space, IBUS_KEY_KP_5, IBUS_KEY_parenright, 0x3255, -+IBUS_KEY_parenleft, IBUS_KEY_KP_Space, IBUS_KEY_KP_6, IBUS_KEY_parenright, 0x3256, -+IBUS_KEY_parenleft, IBUS_KEY_KP_Space, IBUS_KEY_KP_7, IBUS_KEY_parenright, 0x3257, -+IBUS_KEY_parenleft, IBUS_KEY_KP_Space, IBUS_KEY_KP_8, IBUS_KEY_parenright, 0x3258, -+IBUS_KEY_parenleft, IBUS_KEY_KP_Space, IBUS_KEY_KP_9, IBUS_KEY_parenright, 0x3259, -+IBUS_KEY_parenleft, IBUS_KEY_KP_1, IBUS_KEY_0, IBUS_KEY_parenright, 0x2469, -+IBUS_KEY_parenleft, IBUS_KEY_KP_1, IBUS_KEY_1, IBUS_KEY_parenright, 0x246A, -+IBUS_KEY_parenleft, IBUS_KEY_KP_1, IBUS_KEY_2, IBUS_KEY_parenright, 0x246B, -+IBUS_KEY_parenleft, IBUS_KEY_KP_1, IBUS_KEY_3, IBUS_KEY_parenright, 0x246C, -+IBUS_KEY_parenleft, IBUS_KEY_KP_1, IBUS_KEY_4, IBUS_KEY_parenright, 0x246D, -+IBUS_KEY_parenleft, IBUS_KEY_KP_1, IBUS_KEY_5, IBUS_KEY_parenright, 0x246E, -+IBUS_KEY_parenleft, IBUS_KEY_KP_1, IBUS_KEY_6, IBUS_KEY_parenright, 0x246F, -+IBUS_KEY_parenleft, IBUS_KEY_KP_1, IBUS_KEY_7, IBUS_KEY_parenright, 0x2470, -+IBUS_KEY_parenleft, IBUS_KEY_KP_1, IBUS_KEY_8, IBUS_KEY_parenright, 0x2471, -+IBUS_KEY_parenleft, IBUS_KEY_KP_1, IBUS_KEY_9, IBUS_KEY_parenright, 0x2472, -+IBUS_KEY_parenleft, IBUS_KEY_KP_1, IBUS_KEY_KP_Space, IBUS_KEY_parenright, 0x246B, -+IBUS_KEY_parenleft, IBUS_KEY_KP_1, IBUS_KEY_KP_0, IBUS_KEY_parenright, 0x2469, -+IBUS_KEY_parenleft, IBUS_KEY_KP_1, IBUS_KEY_KP_1, IBUS_KEY_parenright, 0x246A, -+IBUS_KEY_parenleft, IBUS_KEY_KP_1, IBUS_KEY_KP_2, IBUS_KEY_parenright, 0x246B, -+IBUS_KEY_parenleft, IBUS_KEY_KP_1, IBUS_KEY_KP_3, IBUS_KEY_parenright, 0x246C, -+IBUS_KEY_parenleft, IBUS_KEY_KP_1, IBUS_KEY_KP_4, IBUS_KEY_parenright, 0x246D, -+IBUS_KEY_parenleft, IBUS_KEY_KP_1, IBUS_KEY_KP_5, IBUS_KEY_parenright, 0x246E, -+IBUS_KEY_parenleft, IBUS_KEY_KP_1, IBUS_KEY_KP_6, IBUS_KEY_parenright, 0x246F, -+IBUS_KEY_parenleft, IBUS_KEY_KP_1, IBUS_KEY_KP_7, IBUS_KEY_parenright, 0x2470, -+IBUS_KEY_parenleft, IBUS_KEY_KP_1, IBUS_KEY_KP_8, IBUS_KEY_parenright, 0x2471, -+IBUS_KEY_parenleft, IBUS_KEY_KP_1, IBUS_KEY_KP_9, IBUS_KEY_parenright, 0x2472, -+IBUS_KEY_parenleft, IBUS_KEY_KP_2, IBUS_KEY_0, IBUS_KEY_parenright, 0x2473, -+IBUS_KEY_parenleft, IBUS_KEY_KP_2, IBUS_KEY_1, IBUS_KEY_parenright, 0x3251, -+IBUS_KEY_parenleft, IBUS_KEY_KP_2, IBUS_KEY_2, IBUS_KEY_parenright, 0x3252, -+IBUS_KEY_parenleft, IBUS_KEY_KP_2, IBUS_KEY_3, IBUS_KEY_parenright, 0x3253, -+IBUS_KEY_parenleft, IBUS_KEY_KP_2, IBUS_KEY_4, IBUS_KEY_parenright, 0x3254, -+IBUS_KEY_parenleft, IBUS_KEY_KP_2, IBUS_KEY_5, IBUS_KEY_parenright, 0x3255, -+IBUS_KEY_parenleft, IBUS_KEY_KP_2, IBUS_KEY_6, IBUS_KEY_parenright, 0x3256, -+IBUS_KEY_parenleft, IBUS_KEY_KP_2, IBUS_KEY_7, IBUS_KEY_parenright, 0x3257, -+IBUS_KEY_parenleft, IBUS_KEY_KP_2, IBUS_KEY_8, IBUS_KEY_parenright, 0x3258, -+IBUS_KEY_parenleft, IBUS_KEY_KP_2, IBUS_KEY_9, IBUS_KEY_parenright, 0x3259, -+IBUS_KEY_parenleft, IBUS_KEY_KP_2, IBUS_KEY_KP_Space, IBUS_KEY_parenright, 0x3252, -+IBUS_KEY_parenleft, IBUS_KEY_KP_2, IBUS_KEY_KP_0, IBUS_KEY_parenright, 0x2473, -+IBUS_KEY_parenleft, IBUS_KEY_KP_2, IBUS_KEY_KP_1, IBUS_KEY_parenright, 0x3251, -+IBUS_KEY_parenleft, IBUS_KEY_KP_2, IBUS_KEY_KP_2, IBUS_KEY_parenright, 0x3252, -+IBUS_KEY_parenleft, IBUS_KEY_KP_2, IBUS_KEY_KP_3, IBUS_KEY_parenright, 0x3253, -+IBUS_KEY_parenleft, IBUS_KEY_KP_2, IBUS_KEY_KP_4, IBUS_KEY_parenright, 0x3254, -+IBUS_KEY_parenleft, IBUS_KEY_KP_2, IBUS_KEY_KP_5, IBUS_KEY_parenright, 0x3255, -+IBUS_KEY_parenleft, IBUS_KEY_KP_2, IBUS_KEY_KP_6, IBUS_KEY_parenright, 0x3256, -+IBUS_KEY_parenleft, IBUS_KEY_KP_2, IBUS_KEY_KP_7, IBUS_KEY_parenright, 0x3257, -+IBUS_KEY_parenleft, IBUS_KEY_KP_2, IBUS_KEY_KP_8, IBUS_KEY_parenright, 0x3258, -+IBUS_KEY_parenleft, IBUS_KEY_KP_2, IBUS_KEY_KP_9, IBUS_KEY_parenright, 0x3259, -+IBUS_KEY_parenleft, IBUS_KEY_KP_3, IBUS_KEY_0, IBUS_KEY_parenright, 0x325A, -+IBUS_KEY_parenleft, IBUS_KEY_KP_3, IBUS_KEY_1, IBUS_KEY_parenright, 0x325B, -+IBUS_KEY_parenleft, IBUS_KEY_KP_3, IBUS_KEY_2, IBUS_KEY_parenright, 0x325C, -+IBUS_KEY_parenleft, IBUS_KEY_KP_3, IBUS_KEY_3, IBUS_KEY_parenright, 0x325D, -+IBUS_KEY_parenleft, IBUS_KEY_KP_3, IBUS_KEY_4, IBUS_KEY_parenright, 0x325E, -+IBUS_KEY_parenleft, IBUS_KEY_KP_3, IBUS_KEY_5, IBUS_KEY_parenright, 0x325F, -+IBUS_KEY_parenleft, IBUS_KEY_KP_3, IBUS_KEY_6, IBUS_KEY_parenright, 0x32B1, -+IBUS_KEY_parenleft, IBUS_KEY_KP_3, IBUS_KEY_7, IBUS_KEY_parenright, 0x32B2, -+IBUS_KEY_parenleft, IBUS_KEY_KP_3, IBUS_KEY_8, IBUS_KEY_parenright, 0x32B3, -+IBUS_KEY_parenleft, IBUS_KEY_KP_3, IBUS_KEY_9, IBUS_KEY_parenright, 0x32B4, -+IBUS_KEY_parenleft, IBUS_KEY_KP_3, IBUS_KEY_KP_Space, IBUS_KEY_parenright, 0x325C, -+IBUS_KEY_parenleft, IBUS_KEY_KP_3, IBUS_KEY_KP_0, IBUS_KEY_parenright, 0x325A, -+IBUS_KEY_parenleft, IBUS_KEY_KP_3, IBUS_KEY_KP_1, IBUS_KEY_parenright, 0x325B, -+IBUS_KEY_parenleft, IBUS_KEY_KP_3, IBUS_KEY_KP_2, IBUS_KEY_parenright, 0x325C, -+IBUS_KEY_parenleft, IBUS_KEY_KP_3, IBUS_KEY_KP_3, IBUS_KEY_parenright, 0x325D, -+IBUS_KEY_parenleft, IBUS_KEY_KP_3, IBUS_KEY_KP_4, IBUS_KEY_parenright, 0x325E, -+IBUS_KEY_parenleft, IBUS_KEY_KP_3, IBUS_KEY_KP_5, IBUS_KEY_parenright, 0x325F, -+IBUS_KEY_parenleft, IBUS_KEY_KP_3, IBUS_KEY_KP_6, IBUS_KEY_parenright, 0x32B1, -+IBUS_KEY_parenleft, IBUS_KEY_KP_3, IBUS_KEY_KP_7, IBUS_KEY_parenright, 0x32B2, -+IBUS_KEY_parenleft, IBUS_KEY_KP_3, IBUS_KEY_KP_8, IBUS_KEY_parenright, 0x32B3, -+IBUS_KEY_parenleft, IBUS_KEY_KP_3, IBUS_KEY_KP_9, IBUS_KEY_parenright, 0x32B4, -+IBUS_KEY_parenleft, IBUS_KEY_KP_4, IBUS_KEY_0, IBUS_KEY_parenright, 0x32B5, -+IBUS_KEY_parenleft, IBUS_KEY_KP_4, IBUS_KEY_1, IBUS_KEY_parenright, 0x32B6, -+IBUS_KEY_parenleft, IBUS_KEY_KP_4, IBUS_KEY_2, IBUS_KEY_parenright, 0x32B7, -+IBUS_KEY_parenleft, IBUS_KEY_KP_4, IBUS_KEY_3, IBUS_KEY_parenright, 0x32B8, -+IBUS_KEY_parenleft, IBUS_KEY_KP_4, IBUS_KEY_4, IBUS_KEY_parenright, 0x32B9, -+IBUS_KEY_parenleft, IBUS_KEY_KP_4, IBUS_KEY_5, IBUS_KEY_parenright, 0x32BA, -+IBUS_KEY_parenleft, IBUS_KEY_KP_4, IBUS_KEY_6, IBUS_KEY_parenright, 0x32BB, -+IBUS_KEY_parenleft, IBUS_KEY_KP_4, IBUS_KEY_7, IBUS_KEY_parenright, 0x32BC, -+IBUS_KEY_parenleft, IBUS_KEY_KP_4, IBUS_KEY_8, IBUS_KEY_parenright, 0x32BD, -+IBUS_KEY_parenleft, IBUS_KEY_KP_4, IBUS_KEY_9, IBUS_KEY_parenright, 0x32BE, -+IBUS_KEY_parenleft, IBUS_KEY_KP_4, IBUS_KEY_KP_Space, IBUS_KEY_parenright, 0x32B7, -+IBUS_KEY_parenleft, IBUS_KEY_KP_4, IBUS_KEY_KP_0, IBUS_KEY_parenright, 0x32B5, -+IBUS_KEY_parenleft, IBUS_KEY_KP_4, IBUS_KEY_KP_1, IBUS_KEY_parenright, 0x32B6, -+IBUS_KEY_parenleft, IBUS_KEY_KP_4, IBUS_KEY_KP_2, IBUS_KEY_parenright, 0x32B7, -+IBUS_KEY_parenleft, IBUS_KEY_KP_4, IBUS_KEY_KP_3, IBUS_KEY_parenright, 0x32B8, -+IBUS_KEY_parenleft, IBUS_KEY_KP_4, IBUS_KEY_KP_4, IBUS_KEY_parenright, 0x32B9, -+IBUS_KEY_parenleft, IBUS_KEY_KP_4, IBUS_KEY_KP_5, IBUS_KEY_parenright, 0x32BA, -+IBUS_KEY_parenleft, IBUS_KEY_KP_4, IBUS_KEY_KP_6, IBUS_KEY_parenright, 0x32BB, -+IBUS_KEY_parenleft, IBUS_KEY_KP_4, IBUS_KEY_KP_7, IBUS_KEY_parenright, 0x32BC, -+IBUS_KEY_parenleft, IBUS_KEY_KP_4, IBUS_KEY_KP_8, IBUS_KEY_parenright, 0x32BD, -+IBUS_KEY_parenleft, IBUS_KEY_KP_4, IBUS_KEY_KP_9, IBUS_KEY_parenright, 0x32BE, -+IBUS_KEY_parenleft, IBUS_KEY_KP_5, IBUS_KEY_0, IBUS_KEY_parenright, 0x32BF, -+IBUS_KEY_C, IBUS_KEY_C, IBUS_KEY_C, IBUS_KEY_P, 0x262D, -+IBUS_KEY_U, IBUS_KEY_space, IBUS_KEY_comma, IBUS_KEY_E, 0x1E1C, -+IBUS_KEY_U, IBUS_KEY_space, IBUS_KEY_comma, IBUS_KEY_e, 0x1E1D, -+IBUS_KEY_Greek_iota, IBUS_KEY_apostrophe, IBUS_KEY_parenleft, IBUS_KEY_Greek_ALPHA, 0x1F8D, -+IBUS_KEY_Greek_iota, IBUS_KEY_apostrophe, IBUS_KEY_parenleft, IBUS_KEY_Greek_ETA, 0x1F9D, -+IBUS_KEY_Greek_iota, IBUS_KEY_apostrophe, IBUS_KEY_parenleft, IBUS_KEY_Greek_OMEGA, 0x1FAD, -+IBUS_KEY_Greek_iota, IBUS_KEY_apostrophe, IBUS_KEY_parenleft, IBUS_KEY_Greek_alpha, 0x1F85, -+IBUS_KEY_Greek_iota, IBUS_KEY_apostrophe, IBUS_KEY_parenleft, IBUS_KEY_Greek_eta, 0x1F95, -+IBUS_KEY_Greek_iota, IBUS_KEY_apostrophe, IBUS_KEY_parenleft, IBUS_KEY_Greek_omega, 0x1FA5, -+IBUS_KEY_Greek_iota, IBUS_KEY_apostrophe, IBUS_KEY_parenright, IBUS_KEY_Greek_ALPHA, 0x1F8C, -+IBUS_KEY_Greek_iota, IBUS_KEY_apostrophe, IBUS_KEY_parenright, IBUS_KEY_Greek_ETA, 0x1F9C, -+IBUS_KEY_Greek_iota, IBUS_KEY_apostrophe, IBUS_KEY_parenright, IBUS_KEY_Greek_OMEGA, 0x1FAC, -+IBUS_KEY_Greek_iota, IBUS_KEY_apostrophe, IBUS_KEY_parenright, IBUS_KEY_Greek_alpha, 0x1F84, -+IBUS_KEY_Greek_iota, IBUS_KEY_apostrophe, IBUS_KEY_parenright, IBUS_KEY_Greek_eta, 0x1F94, -+IBUS_KEY_Greek_iota, IBUS_KEY_apostrophe, IBUS_KEY_parenright, IBUS_KEY_Greek_omega, 0x1FA4, -+IBUS_KEY_Greek_iota, IBUS_KEY_apostrophe, IBUS_KEY_dead_psili, IBUS_KEY_Greek_ALPHA, 0x1F8C, -+IBUS_KEY_Greek_iota, IBUS_KEY_apostrophe, IBUS_KEY_dead_psili, IBUS_KEY_Greek_ETA, 0x1F9C, -+IBUS_KEY_Greek_iota, IBUS_KEY_apostrophe, IBUS_KEY_dead_psili, IBUS_KEY_Greek_OMEGA, 0x1FAC, -+IBUS_KEY_Greek_iota, IBUS_KEY_apostrophe, IBUS_KEY_dead_psili, IBUS_KEY_Greek_alpha, 0x1F84, -+IBUS_KEY_Greek_iota, IBUS_KEY_apostrophe, IBUS_KEY_dead_psili, IBUS_KEY_Greek_eta, 0x1F94, -+IBUS_KEY_Greek_iota, IBUS_KEY_apostrophe, IBUS_KEY_dead_psili, IBUS_KEY_Greek_omega, 0x1FA4, -+IBUS_KEY_Greek_iota, IBUS_KEY_apostrophe, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_ALPHA, 0x1F8D, -+IBUS_KEY_Greek_iota, IBUS_KEY_apostrophe, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_ETA, 0x1F9D, -+IBUS_KEY_Greek_iota, IBUS_KEY_apostrophe, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_OMEGA, 0x1FAD, -+IBUS_KEY_Greek_iota, IBUS_KEY_apostrophe, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_alpha, 0x1F85, -+IBUS_KEY_Greek_iota, IBUS_KEY_apostrophe, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_eta, 0x1F95, -+IBUS_KEY_Greek_iota, IBUS_KEY_apostrophe, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_omega, 0x1FA5, -+IBUS_KEY_Greek_iota, IBUS_KEY_grave, IBUS_KEY_parenleft, IBUS_KEY_Greek_ALPHA, 0x1F8B, -+IBUS_KEY_Greek_iota, IBUS_KEY_grave, IBUS_KEY_parenleft, IBUS_KEY_Greek_ETA, 0x1F9B, -+IBUS_KEY_Greek_iota, IBUS_KEY_grave, IBUS_KEY_parenleft, IBUS_KEY_Greek_OMEGA, 0x1FAB, -+IBUS_KEY_Greek_iota, IBUS_KEY_grave, IBUS_KEY_parenleft, IBUS_KEY_Greek_alpha, 0x1F83, -+IBUS_KEY_Greek_iota, IBUS_KEY_grave, IBUS_KEY_parenleft, IBUS_KEY_Greek_eta, 0x1F93, -+IBUS_KEY_Greek_iota, IBUS_KEY_grave, IBUS_KEY_parenleft, IBUS_KEY_Greek_omega, 0x1FA3, -+IBUS_KEY_Greek_iota, IBUS_KEY_grave, IBUS_KEY_parenright, IBUS_KEY_Greek_ALPHA, 0x1F8A, -+IBUS_KEY_Greek_iota, IBUS_KEY_grave, IBUS_KEY_parenright, IBUS_KEY_Greek_ETA, 0x1F9A, -+IBUS_KEY_Greek_iota, IBUS_KEY_grave, IBUS_KEY_parenright, IBUS_KEY_Greek_OMEGA, 0x1FAA, -+IBUS_KEY_Greek_iota, IBUS_KEY_grave, IBUS_KEY_parenright, IBUS_KEY_Greek_alpha, 0x1F82, -+IBUS_KEY_Greek_iota, IBUS_KEY_grave, IBUS_KEY_parenright, IBUS_KEY_Greek_eta, 0x1F92, -+IBUS_KEY_Greek_iota, IBUS_KEY_grave, IBUS_KEY_parenright, IBUS_KEY_Greek_omega, 0x1FA2, -+IBUS_KEY_Greek_iota, IBUS_KEY_grave, IBUS_KEY_dead_psili, IBUS_KEY_Greek_ALPHA, 0x1F8A, -+IBUS_KEY_Greek_iota, IBUS_KEY_grave, IBUS_KEY_dead_psili, IBUS_KEY_Greek_ETA, 0x1F9A, -+IBUS_KEY_Greek_iota, IBUS_KEY_grave, IBUS_KEY_dead_psili, IBUS_KEY_Greek_OMEGA, 0x1FAA, -+IBUS_KEY_Greek_iota, IBUS_KEY_grave, IBUS_KEY_dead_psili, IBUS_KEY_Greek_alpha, 0x1F82, -+IBUS_KEY_Greek_iota, IBUS_KEY_grave, IBUS_KEY_dead_psili, IBUS_KEY_Greek_eta, 0x1F92, -+IBUS_KEY_Greek_iota, IBUS_KEY_grave, IBUS_KEY_dead_psili, IBUS_KEY_Greek_omega, 0x1FA2, -+IBUS_KEY_Greek_iota, IBUS_KEY_grave, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_ALPHA, 0x1F8B, -+IBUS_KEY_Greek_iota, IBUS_KEY_grave, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_ETA, 0x1F9B, -+IBUS_KEY_Greek_iota, IBUS_KEY_grave, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_OMEGA, 0x1FAB, -+IBUS_KEY_Greek_iota, IBUS_KEY_grave, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_alpha, 0x1F83, -+IBUS_KEY_Greek_iota, IBUS_KEY_grave, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_eta, 0x1F93, -+IBUS_KEY_Greek_iota, IBUS_KEY_grave, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_omega, 0x1FA3, -+IBUS_KEY_Greek_iota, IBUS_KEY_asciitilde, IBUS_KEY_parenleft, IBUS_KEY_Greek_ALPHA, 0x1F8F, -+IBUS_KEY_Greek_iota, IBUS_KEY_asciitilde, IBUS_KEY_parenleft, IBUS_KEY_Greek_ETA, 0x1F9F, -+IBUS_KEY_Greek_iota, IBUS_KEY_asciitilde, IBUS_KEY_parenleft, IBUS_KEY_Greek_OMEGA, 0x1FAF, -+IBUS_KEY_Greek_iota, IBUS_KEY_asciitilde, IBUS_KEY_parenleft, IBUS_KEY_Greek_alpha, 0x1F87, -+IBUS_KEY_Greek_iota, IBUS_KEY_asciitilde, IBUS_KEY_parenleft, IBUS_KEY_Greek_eta, 0x1F97, -+IBUS_KEY_Greek_iota, IBUS_KEY_asciitilde, IBUS_KEY_parenleft, IBUS_KEY_Greek_omega, 0x1FA7, -+IBUS_KEY_Greek_iota, IBUS_KEY_asciitilde, IBUS_KEY_parenright, IBUS_KEY_Greek_ALPHA, 0x1F8E, -+IBUS_KEY_Greek_iota, IBUS_KEY_asciitilde, IBUS_KEY_parenright, IBUS_KEY_Greek_ETA, 0x1F9E, -+IBUS_KEY_Greek_iota, IBUS_KEY_asciitilde, IBUS_KEY_parenright, IBUS_KEY_Greek_OMEGA, 0x1FAE, -+IBUS_KEY_Greek_iota, IBUS_KEY_asciitilde, IBUS_KEY_parenright, IBUS_KEY_Greek_alpha, 0x1F86, -+IBUS_KEY_Greek_iota, IBUS_KEY_asciitilde, IBUS_KEY_parenright, IBUS_KEY_Greek_eta, 0x1F96, -+IBUS_KEY_Greek_iota, IBUS_KEY_asciitilde, IBUS_KEY_parenright, IBUS_KEY_Greek_omega, 0x1FA6, -+IBUS_KEY_Greek_iota, IBUS_KEY_asciitilde, IBUS_KEY_dead_psili, IBUS_KEY_Greek_ALPHA, 0x1F8E, -+IBUS_KEY_Greek_iota, IBUS_KEY_asciitilde, IBUS_KEY_dead_psili, IBUS_KEY_Greek_ETA, 0x1F9E, -+IBUS_KEY_Greek_iota, IBUS_KEY_asciitilde, IBUS_KEY_dead_psili, IBUS_KEY_Greek_OMEGA, 0x1FAE, -+IBUS_KEY_Greek_iota, IBUS_KEY_asciitilde, IBUS_KEY_dead_psili, IBUS_KEY_Greek_alpha, 0x1F86, -+IBUS_KEY_Greek_iota, IBUS_KEY_asciitilde, IBUS_KEY_dead_psili, IBUS_KEY_Greek_eta, 0x1F96, -+IBUS_KEY_Greek_iota, IBUS_KEY_asciitilde, IBUS_KEY_dead_psili, IBUS_KEY_Greek_omega, 0x1FA6, -+IBUS_KEY_Greek_iota, IBUS_KEY_asciitilde, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_ALPHA, 0x1F8F, -+IBUS_KEY_Greek_iota, IBUS_KEY_asciitilde, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_ETA, 0x1F9F, -+IBUS_KEY_Greek_iota, IBUS_KEY_asciitilde, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_OMEGA, 0x1FAF, -+IBUS_KEY_Greek_iota, IBUS_KEY_asciitilde, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_alpha, 0x1F87, -+IBUS_KEY_Greek_iota, IBUS_KEY_asciitilde, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_eta, 0x1F97, -+IBUS_KEY_Greek_iota, IBUS_KEY_asciitilde, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_omega, 0x1FA7, -+IBUS_KEY_Greek_iota, IBUS_KEY_acute, IBUS_KEY_parenleft, IBUS_KEY_Greek_ALPHA, 0x1F8D, -+IBUS_KEY_Greek_iota, IBUS_KEY_acute, IBUS_KEY_parenleft, IBUS_KEY_Greek_ETA, 0x1F9D, -+IBUS_KEY_Greek_iota, IBUS_KEY_acute, IBUS_KEY_parenleft, IBUS_KEY_Greek_OMEGA, 0x1FAD, -+IBUS_KEY_Greek_iota, IBUS_KEY_acute, IBUS_KEY_parenleft, IBUS_KEY_Greek_alpha, 0x1F85, -+IBUS_KEY_Greek_iota, IBUS_KEY_acute, IBUS_KEY_parenleft, IBUS_KEY_Greek_eta, 0x1F95, -+IBUS_KEY_Greek_iota, IBUS_KEY_acute, IBUS_KEY_parenleft, IBUS_KEY_Greek_omega, 0x1FA5, -+IBUS_KEY_Greek_iota, IBUS_KEY_acute, IBUS_KEY_parenright, IBUS_KEY_Greek_ALPHA, 0x1F8C, -+IBUS_KEY_Greek_iota, IBUS_KEY_acute, IBUS_KEY_parenright, IBUS_KEY_Greek_ETA, 0x1F9C, -+IBUS_KEY_Greek_iota, IBUS_KEY_acute, IBUS_KEY_parenright, IBUS_KEY_Greek_OMEGA, 0x1FAC, -+IBUS_KEY_Greek_iota, IBUS_KEY_acute, IBUS_KEY_parenright, IBUS_KEY_Greek_alpha, 0x1F84, -+IBUS_KEY_Greek_iota, IBUS_KEY_acute, IBUS_KEY_parenright, IBUS_KEY_Greek_eta, 0x1F94, -+IBUS_KEY_Greek_iota, IBUS_KEY_acute, IBUS_KEY_parenright, IBUS_KEY_Greek_omega, 0x1FA4, -+IBUS_KEY_Greek_iota, IBUS_KEY_acute, IBUS_KEY_dead_psili, IBUS_KEY_Greek_ALPHA, 0x1F8C, -+IBUS_KEY_Greek_iota, IBUS_KEY_acute, IBUS_KEY_dead_psili, IBUS_KEY_Greek_ETA, 0x1F9C, -+IBUS_KEY_Greek_iota, IBUS_KEY_acute, IBUS_KEY_dead_psili, IBUS_KEY_Greek_OMEGA, 0x1FAC, -+IBUS_KEY_Greek_iota, IBUS_KEY_acute, IBUS_KEY_dead_psili, IBUS_KEY_Greek_alpha, 0x1F84, -+IBUS_KEY_Greek_iota, IBUS_KEY_acute, IBUS_KEY_dead_psili, IBUS_KEY_Greek_eta, 0x1F94, -+IBUS_KEY_Greek_iota, IBUS_KEY_acute, IBUS_KEY_dead_psili, IBUS_KEY_Greek_omega, 0x1FA4, -+IBUS_KEY_Greek_iota, IBUS_KEY_acute, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_ALPHA, 0x1F8D, -+IBUS_KEY_Greek_iota, IBUS_KEY_acute, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_ETA, 0x1F9D, -+IBUS_KEY_Greek_iota, IBUS_KEY_acute, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_OMEGA, 0x1FAD, -+IBUS_KEY_Greek_iota, IBUS_KEY_acute, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_alpha, 0x1F85, -+IBUS_KEY_Greek_iota, IBUS_KEY_acute, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_eta, 0x1F95, -+IBUS_KEY_Greek_iota, IBUS_KEY_acute, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_omega, 0x1FA5, -+IBUS_KEY_Greek_iota, IBUS_KEY_dead_grave, IBUS_KEY_parenleft, IBUS_KEY_Greek_ALPHA, 0x1F8B, -+IBUS_KEY_Greek_iota, IBUS_KEY_dead_grave, IBUS_KEY_parenleft, IBUS_KEY_Greek_ETA, 0x1F9B, -+IBUS_KEY_Greek_iota, IBUS_KEY_dead_grave, IBUS_KEY_parenleft, IBUS_KEY_Greek_OMEGA, 0x1FAB, -+IBUS_KEY_Greek_iota, IBUS_KEY_dead_grave, IBUS_KEY_parenleft, IBUS_KEY_Greek_alpha, 0x1F83, -+IBUS_KEY_Greek_iota, IBUS_KEY_dead_grave, IBUS_KEY_parenleft, IBUS_KEY_Greek_eta, 0x1F93, -+IBUS_KEY_Greek_iota, IBUS_KEY_dead_grave, IBUS_KEY_parenleft, IBUS_KEY_Greek_omega, 0x1FA3, -+IBUS_KEY_Greek_iota, IBUS_KEY_dead_grave, IBUS_KEY_parenright, IBUS_KEY_Greek_ALPHA, 0x1F8A, -+IBUS_KEY_Greek_iota, IBUS_KEY_dead_grave, IBUS_KEY_parenright, IBUS_KEY_Greek_ETA, 0x1F9A, -+IBUS_KEY_Greek_iota, IBUS_KEY_dead_grave, IBUS_KEY_parenright, IBUS_KEY_Greek_OMEGA, 0x1FAA, -+IBUS_KEY_Greek_iota, IBUS_KEY_dead_grave, IBUS_KEY_parenright, IBUS_KEY_Greek_alpha, 0x1F82, -+IBUS_KEY_Greek_iota, IBUS_KEY_dead_grave, IBUS_KEY_parenright, IBUS_KEY_Greek_eta, 0x1F92, -+IBUS_KEY_Greek_iota, IBUS_KEY_dead_grave, IBUS_KEY_parenright, IBUS_KEY_Greek_omega, 0x1FA2, -+IBUS_KEY_Greek_iota, IBUS_KEY_dead_grave, IBUS_KEY_dead_psili, IBUS_KEY_Greek_ALPHA, 0x1F8A, -+IBUS_KEY_Greek_iota, IBUS_KEY_dead_grave, IBUS_KEY_dead_psili, IBUS_KEY_Greek_ETA, 0x1F9A, -+IBUS_KEY_Greek_iota, IBUS_KEY_dead_grave, IBUS_KEY_dead_psili, IBUS_KEY_Greek_OMEGA, 0x1FAA, -+IBUS_KEY_Greek_iota, IBUS_KEY_dead_grave, IBUS_KEY_dead_psili, IBUS_KEY_Greek_alpha, 0x1F82, -+IBUS_KEY_Greek_iota, IBUS_KEY_dead_grave, IBUS_KEY_dead_psili, IBUS_KEY_Greek_eta, 0x1F92, -+IBUS_KEY_Greek_iota, IBUS_KEY_dead_grave, IBUS_KEY_dead_psili, IBUS_KEY_Greek_omega, 0x1FA2, -+IBUS_KEY_Greek_iota, IBUS_KEY_dead_grave, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_ALPHA, 0x1F8B, -+IBUS_KEY_Greek_iota, IBUS_KEY_dead_grave, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_ETA, 0x1F9B, -+IBUS_KEY_Greek_iota, IBUS_KEY_dead_grave, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_OMEGA, 0x1FAB, -+IBUS_KEY_Greek_iota, IBUS_KEY_dead_grave, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_alpha, 0x1F83, -+IBUS_KEY_Greek_iota, IBUS_KEY_dead_grave, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_eta, 0x1F93, -+IBUS_KEY_Greek_iota, IBUS_KEY_dead_grave, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_omega, 0x1FA3, -+IBUS_KEY_Greek_iota, IBUS_KEY_dead_acute, IBUS_KEY_parenleft, IBUS_KEY_Greek_ALPHA, 0x1F8D, -+IBUS_KEY_Greek_iota, IBUS_KEY_dead_acute, IBUS_KEY_parenleft, IBUS_KEY_Greek_ETA, 0x1F9D, -+IBUS_KEY_Greek_iota, IBUS_KEY_dead_acute, IBUS_KEY_parenleft, IBUS_KEY_Greek_OMEGA, 0x1FAD, -+IBUS_KEY_Greek_iota, IBUS_KEY_dead_acute, IBUS_KEY_parenleft, IBUS_KEY_Greek_alpha, 0x1F85, -+IBUS_KEY_Greek_iota, IBUS_KEY_dead_acute, IBUS_KEY_parenleft, IBUS_KEY_Greek_eta, 0x1F95, -+IBUS_KEY_Greek_iota, IBUS_KEY_dead_acute, IBUS_KEY_parenleft, IBUS_KEY_Greek_omega, 0x1FA5, -+IBUS_KEY_Greek_iota, IBUS_KEY_dead_acute, IBUS_KEY_parenright, IBUS_KEY_Greek_ALPHA, 0x1F8C, -+IBUS_KEY_Greek_iota, IBUS_KEY_dead_acute, IBUS_KEY_parenright, IBUS_KEY_Greek_ETA, 0x1F9C, -+IBUS_KEY_Greek_iota, IBUS_KEY_dead_acute, IBUS_KEY_parenright, IBUS_KEY_Greek_OMEGA, 0x1FAC, -+IBUS_KEY_Greek_iota, IBUS_KEY_dead_acute, IBUS_KEY_parenright, IBUS_KEY_Greek_alpha, 0x1F84, -+IBUS_KEY_Greek_iota, IBUS_KEY_dead_acute, IBUS_KEY_parenright, IBUS_KEY_Greek_eta, 0x1F94, -+IBUS_KEY_Greek_iota, IBUS_KEY_dead_acute, IBUS_KEY_parenright, IBUS_KEY_Greek_omega, 0x1FA4, -+IBUS_KEY_Greek_iota, IBUS_KEY_dead_acute, IBUS_KEY_dead_psili, IBUS_KEY_Greek_ALPHA, 0x1F8C, -+IBUS_KEY_Greek_iota, IBUS_KEY_dead_acute, IBUS_KEY_dead_psili, IBUS_KEY_Greek_ETA, 0x1F9C, -+IBUS_KEY_Greek_iota, IBUS_KEY_dead_acute, IBUS_KEY_dead_psili, IBUS_KEY_Greek_OMEGA, 0x1FAC, -+IBUS_KEY_Greek_iota, IBUS_KEY_dead_acute, IBUS_KEY_dead_psili, IBUS_KEY_Greek_alpha, 0x1F84, -+IBUS_KEY_Greek_iota, IBUS_KEY_dead_acute, IBUS_KEY_dead_psili, IBUS_KEY_Greek_eta, 0x1F94, -+IBUS_KEY_Greek_iota, IBUS_KEY_dead_acute, IBUS_KEY_dead_psili, IBUS_KEY_Greek_omega, 0x1FA4, -+IBUS_KEY_Greek_iota, IBUS_KEY_dead_acute, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_ALPHA, 0x1F8D, -+IBUS_KEY_Greek_iota, IBUS_KEY_dead_acute, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_ETA, 0x1F9D, -+IBUS_KEY_Greek_iota, IBUS_KEY_dead_acute, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_OMEGA, 0x1FAD, -+IBUS_KEY_Greek_iota, IBUS_KEY_dead_acute, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_alpha, 0x1F85, -+IBUS_KEY_Greek_iota, IBUS_KEY_dead_acute, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_eta, 0x1F95, -+IBUS_KEY_Greek_iota, IBUS_KEY_dead_acute, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_omega, 0x1FA5, -+IBUS_KEY_Greek_iota, IBUS_KEY_dead_tilde, IBUS_KEY_parenleft, IBUS_KEY_Greek_ALPHA, 0x1F8F, -+IBUS_KEY_Greek_iota, IBUS_KEY_dead_tilde, IBUS_KEY_parenleft, IBUS_KEY_Greek_ETA, 0x1F9F, -+IBUS_KEY_Greek_iota, IBUS_KEY_dead_tilde, IBUS_KEY_parenleft, IBUS_KEY_Greek_OMEGA, 0x1FAF, -+IBUS_KEY_Greek_iota, IBUS_KEY_dead_tilde, IBUS_KEY_parenleft, IBUS_KEY_Greek_alpha, 0x1F87, -+IBUS_KEY_Greek_iota, IBUS_KEY_dead_tilde, IBUS_KEY_parenleft, IBUS_KEY_Greek_eta, 0x1F97, -+IBUS_KEY_Greek_iota, IBUS_KEY_dead_tilde, IBUS_KEY_parenleft, IBUS_KEY_Greek_omega, 0x1FA7, -+IBUS_KEY_Greek_iota, IBUS_KEY_dead_tilde, IBUS_KEY_parenright, IBUS_KEY_Greek_ALPHA, 0x1F8E, -+IBUS_KEY_Greek_iota, IBUS_KEY_dead_tilde, IBUS_KEY_parenright, IBUS_KEY_Greek_ETA, 0x1F9E, -+IBUS_KEY_Greek_iota, IBUS_KEY_dead_tilde, IBUS_KEY_parenright, IBUS_KEY_Greek_OMEGA, 0x1FAE, -+IBUS_KEY_Greek_iota, IBUS_KEY_dead_tilde, IBUS_KEY_parenright, IBUS_KEY_Greek_alpha, 0x1F86, -+IBUS_KEY_Greek_iota, IBUS_KEY_dead_tilde, IBUS_KEY_parenright, IBUS_KEY_Greek_eta, 0x1F96, -+IBUS_KEY_Greek_iota, IBUS_KEY_dead_tilde, IBUS_KEY_parenright, IBUS_KEY_Greek_omega, 0x1FA6, -+IBUS_KEY_Greek_iota, IBUS_KEY_dead_tilde, IBUS_KEY_dead_psili, IBUS_KEY_Greek_ALPHA, 0x1F8E, -+IBUS_KEY_Greek_iota, IBUS_KEY_dead_tilde, IBUS_KEY_dead_psili, IBUS_KEY_Greek_ETA, 0x1F9E, -+IBUS_KEY_Greek_iota, IBUS_KEY_dead_tilde, IBUS_KEY_dead_psili, IBUS_KEY_Greek_OMEGA, 0x1FAE, -+IBUS_KEY_Greek_iota, IBUS_KEY_dead_tilde, IBUS_KEY_dead_psili, IBUS_KEY_Greek_alpha, 0x1F86, -+IBUS_KEY_Greek_iota, IBUS_KEY_dead_tilde, IBUS_KEY_dead_psili, IBUS_KEY_Greek_eta, 0x1F96, -+IBUS_KEY_Greek_iota, IBUS_KEY_dead_tilde, IBUS_KEY_dead_psili, IBUS_KEY_Greek_omega, 0x1FA6, -+IBUS_KEY_Greek_iota, IBUS_KEY_dead_tilde, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_ALPHA, 0x1F8F, -+IBUS_KEY_Greek_iota, IBUS_KEY_dead_tilde, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_ETA, 0x1F9F, -+IBUS_KEY_Greek_iota, IBUS_KEY_dead_tilde, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_OMEGA, 0x1FAF, -+IBUS_KEY_Greek_iota, IBUS_KEY_dead_tilde, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_alpha, 0x1F87, -+IBUS_KEY_Greek_iota, IBUS_KEY_dead_tilde, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_eta, 0x1F97, -+IBUS_KEY_Greek_iota, IBUS_KEY_dead_tilde, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_omega, 0x1FA7, -+}; -+ -+static const guint16 gtk_compose_seqs_compact_32bit_first[] = { -+IBUS_KEY_dead_grave, 54, 123, 187, 187, 187, -+IBUS_KEY_dead_acute, 187, 268, 316, 316, 316, -+IBUS_KEY_dead_circumflex, 316, 388, 388, 388, 388, -+IBUS_KEY_dead_tilde, 388, 406, 406, 406, 406, -+IBUS_KEY_dead_macron, 406, 466, 466, 466, 466, -+IBUS_KEY_dead_caron, 466, 502, 502, 502, 502, -+IBUS_KEY_dead_doublegrave, 502, 538, 538, 538, 538, -+IBUS_KEY_dead_invertedbreve, 538, 574, 574, 574, 574, -+IBUS_KEY_Multi_key, 574, 574, 850, 920, 926, -+IBUS_KEY_M, 0, 2, -+IBUS_KEY_m, 2, 2, -+0x0186, 4, 2, -+0x018E, 6, 2, -+0x0190, 8, 2, -+0x0196, 10, 2, -+0x01B1, 12, 2, -+0x01B2, 14, 2, -+0x01DD, 16, 2, -+0x0254, 18, 2, -+0x025B, 20, 2, -+0x0269, 22, 2, -+0x028A, 24, 2, -+0x028B, 26, 2, -+IBUS_KEY_ENG, 28, 2, -+IBUS_KEY_Cyrillic_a, 30, 2, -+IBUS_KEY_Cyrillic_o, 32, 2, -+IBUS_KEY_Cyrillic_er, 34, 2, -+IBUS_KEY_Cyrillic_u, 36, 2, -+IBUS_KEY_Cyrillic_A, 38, 2, -+IBUS_KEY_Cyrillic_O, 40, 2, -+IBUS_KEY_Cyrillic_ER, 42, 2, -+IBUS_KEY_Cyrillic_U, 44, 2, -+IBUS_KEY_dead_tilde, IBUS_KEY_A, 46, 3, -+IBUS_KEY_dead_tilde, IBUS_KEY_E, 49, 3, -+IBUS_KEY_dead_tilde, IBUS_KEY_I, 52, 3, -+IBUS_KEY_dead_tilde, IBUS_KEY_O, 55, 3, -+IBUS_KEY_dead_tilde, IBUS_KEY_U, 58, 3, -+IBUS_KEY_dead_tilde, IBUS_KEY_a, 61, 3, -+IBUS_KEY_dead_tilde, IBUS_KEY_e, 64, 3, -+IBUS_KEY_dead_tilde, IBUS_KEY_i, 67, 3, -+IBUS_KEY_dead_tilde, IBUS_KEY_o, 70, 3, -+IBUS_KEY_dead_tilde, IBUS_KEY_u, 73, 3, -+IBUS_KEY_dead_tilde, 0x0186, 76, 3, -+IBUS_KEY_dead_tilde, 0x018E, 79, 3, -+IBUS_KEY_dead_tilde, 0x0190, 82, 3, -+IBUS_KEY_dead_tilde, 0x01DD, 85, 3, -+IBUS_KEY_dead_tilde, 0x0254, 88, 3, -+IBUS_KEY_dead_tilde, 0x025B, 91, 3, -+IBUS_KEY_J, 94, 2, -+IBUS_KEY_j, 96, 2, -+0x0186, 98, 2, -+0x018E, 100, 2, -+0x0190, 102, 2, -+0x0196, 104, 2, -+0x01B1, 106, 2, -+0x01B2, 108, 2, -+0x01DD, 110, 2, -+0x0254, 112, 2, -+0x025B, 114, 2, -+0x0269, 116, 2, -+0x028A, 118, 2, -+0x028B, 120, 2, -+IBUS_KEY_ENG, 122, 2, -+IBUS_KEY_Cyrillic_a, 124, 2, -+IBUS_KEY_Cyrillic_ie, 126, 2, -+IBUS_KEY_Cyrillic_i, 128, 2, -+IBUS_KEY_Cyrillic_o, 130, 2, -+IBUS_KEY_Cyrillic_er, 132, 2, -+IBUS_KEY_Cyrillic_u, 134, 2, -+IBUS_KEY_Cyrillic_A, 136, 2, -+IBUS_KEY_Cyrillic_IE, 138, 2, -+IBUS_KEY_Cyrillic_I, 140, 2, -+IBUS_KEY_Cyrillic_O, 142, 2, -+IBUS_KEY_Cyrillic_ER, 144, 2, -+IBUS_KEY_Cyrillic_U, 146, 2, -+IBUS_KEY_dead_tilde, IBUS_KEY_A, 148, 3, -+IBUS_KEY_dead_tilde, IBUS_KEY_E, 151, 3, -+IBUS_KEY_dead_tilde, IBUS_KEY_I, 154, 3, -+IBUS_KEY_dead_tilde, IBUS_KEY_a, 157, 3, -+IBUS_KEY_dead_tilde, IBUS_KEY_e, 160, 3, -+IBUS_KEY_dead_tilde, IBUS_KEY_i, 163, 3, -+IBUS_KEY_dead_tilde, 0x0186, 166, 3, -+IBUS_KEY_dead_tilde, 0x018E, 169, 3, -+IBUS_KEY_dead_tilde, 0x0190, 172, 3, -+IBUS_KEY_dead_tilde, 0x01DD, 175, 3, -+IBUS_KEY_dead_tilde, 0x0254, 178, 3, -+IBUS_KEY_dead_tilde, 0x025B, 181, 3, -+0x0186, 184, 2, -+0x018E, 186, 2, -+0x0190, 188, 2, -+0x0196, 190, 2, -+0x01B1, 192, 2, -+0x01B2, 194, 2, -+0x01DD, 196, 2, -+0x0254, 198, 2, -+0x025B, 200, 2, -+0x0269, 202, 2, -+0x028A, 204, 2, -+0x028B, 206, 2, -+IBUS_KEY_Cyrillic_a, 208, 2, -+IBUS_KEY_Cyrillic_ie, 210, 2, -+IBUS_KEY_Cyrillic_i, 212, 2, -+IBUS_KEY_Cyrillic_o, 214, 2, -+IBUS_KEY_Cyrillic_er, 216, 2, -+IBUS_KEY_Cyrillic_u, 218, 2, -+IBUS_KEY_Cyrillic_A, 220, 2, -+IBUS_KEY_Cyrillic_IE, 222, 2, -+IBUS_KEY_Cyrillic_I, 224, 2, -+IBUS_KEY_Cyrillic_O, 226, 2, -+IBUS_KEY_Cyrillic_ER, 228, 2, -+IBUS_KEY_Cyrillic_U, 230, 2, -+0x0186, 232, 2, -+0x018E, 234, 2, -+0x0190, 236, 2, -+0x01DD, 238, 2, -+0x0254, 240, 2, -+0x025B, 242, 2, -+0x0186, 244, 2, -+0x018E, 246, 2, -+0x0190, 248, 2, -+0x0196, 250, 2, -+0x01B1, 252, 2, -+0x01B2, 254, 2, -+0x01DD, 256, 2, -+0x0254, 258, 2, -+0x025B, 260, 2, -+0x0269, 262, 2, -+0x028A, 264, 2, -+0x028B, 266, 2, -+IBUS_KEY_Cyrillic_a, 268, 2, -+IBUS_KEY_Cyrillic_ie, 270, 2, -+IBUS_KEY_Cyrillic_o, 272, 2, -+IBUS_KEY_Cyrillic_er, 274, 2, -+IBUS_KEY_Cyrillic_A, 276, 2, -+IBUS_KEY_Cyrillic_IE, 278, 2, -+IBUS_KEY_Cyrillic_O, 280, 2, -+IBUS_KEY_Cyrillic_ER, 282, 2, -+0x0186, 284, 2, -+0x018E, 286, 2, -+0x0190, 288, 2, -+0x0196, 290, 2, -+0x01B1, 292, 2, -+0x01B2, 294, 2, -+0x01DD, 296, 2, -+0x0254, 298, 2, -+0x025B, 300, 2, -+0x0269, 302, 2, -+0x028A, 304, 2, -+0x028B, 306, 2, -+IBUS_KEY_Cyrillic_a, 308, 2, -+IBUS_KEY_Cyrillic_ie, 310, 2, -+IBUS_KEY_Cyrillic_i, 312, 2, -+IBUS_KEY_Cyrillic_o, 314, 2, -+IBUS_KEY_Cyrillic_er, 316, 2, -+IBUS_KEY_Cyrillic_u, 318, 2, -+IBUS_KEY_Cyrillic_A, 320, 2, -+IBUS_KEY_Cyrillic_IE, 322, 2, -+IBUS_KEY_Cyrillic_I, 324, 2, -+IBUS_KEY_Cyrillic_O, 326, 2, -+IBUS_KEY_Cyrillic_ER, 328, 2, -+IBUS_KEY_Cyrillic_U, 330, 2, -+IBUS_KEY_Cyrillic_a, 332, 2, -+IBUS_KEY_Cyrillic_ie, 334, 2, -+IBUS_KEY_Cyrillic_i, 336, 2, -+IBUS_KEY_Cyrillic_o, 338, 2, -+IBUS_KEY_Cyrillic_er, 340, 2, -+IBUS_KEY_Cyrillic_u, 342, 2, -+IBUS_KEY_Cyrillic_A, 344, 2, -+IBUS_KEY_Cyrillic_IE, 346, 2, -+IBUS_KEY_Cyrillic_I, 348, 2, -+IBUS_KEY_Cyrillic_O, 350, 2, -+IBUS_KEY_Cyrillic_ER, 352, 2, -+IBUS_KEY_Cyrillic_U, 354, 2, -+IBUS_KEY_apostrophe, IBUS_KEY_J, 356, 2, -+IBUS_KEY_apostrophe, IBUS_KEY_j, 358, 2, -+IBUS_KEY_apostrophe, IBUS_KEY_Cyrillic_a, 360, 2, -+IBUS_KEY_apostrophe, IBUS_KEY_Cyrillic_ie, 362, 2, -+IBUS_KEY_apostrophe, IBUS_KEY_Cyrillic_i, 364, 2, -+IBUS_KEY_apostrophe, IBUS_KEY_Cyrillic_o, 366, 2, -+IBUS_KEY_apostrophe, IBUS_KEY_Cyrillic_er, 368, 2, -+IBUS_KEY_apostrophe, IBUS_KEY_Cyrillic_u, 370, 2, -+IBUS_KEY_apostrophe, IBUS_KEY_Cyrillic_A, 372, 2, -+IBUS_KEY_apostrophe, IBUS_KEY_Cyrillic_IE, 374, 2, -+IBUS_KEY_apostrophe, IBUS_KEY_Cyrillic_I, 376, 2, -+IBUS_KEY_apostrophe, IBUS_KEY_Cyrillic_O, 378, 2, -+IBUS_KEY_apostrophe, IBUS_KEY_Cyrillic_ER, 380, 2, -+IBUS_KEY_apostrophe, IBUS_KEY_Cyrillic_U, 382, 2, -+IBUS_KEY_F, IBUS_KEY_U, 384, 1, -+IBUS_KEY_J, IBUS_KEY_apostrophe, 385, 2, -+IBUS_KEY_J, IBUS_KEY_acute, 387, 2, -+IBUS_KEY_asciicircum, IBUS_KEY_Cyrillic_a, 389, 2, -+IBUS_KEY_asciicircum, IBUS_KEY_Cyrillic_ie, 391, 2, -+IBUS_KEY_asciicircum, IBUS_KEY_Cyrillic_i, 393, 2, -+IBUS_KEY_asciicircum, IBUS_KEY_Cyrillic_o, 395, 2, -+IBUS_KEY_asciicircum, IBUS_KEY_Cyrillic_er, 397, 2, -+IBUS_KEY_asciicircum, IBUS_KEY_Cyrillic_u, 399, 2, -+IBUS_KEY_asciicircum, IBUS_KEY_Cyrillic_A, 401, 2, -+IBUS_KEY_asciicircum, IBUS_KEY_Cyrillic_IE, 403, 2, -+IBUS_KEY_asciicircum, IBUS_KEY_Cyrillic_I, 405, 2, -+IBUS_KEY_asciicircum, IBUS_KEY_Cyrillic_O, 407, 2, -+IBUS_KEY_asciicircum, IBUS_KEY_Cyrillic_ER, 409, 2, -+IBUS_KEY_asciicircum, IBUS_KEY_Cyrillic_U, 411, 2, -+IBUS_KEY_underscore, IBUS_KEY_Cyrillic_a, 413, 2, -+IBUS_KEY_underscore, IBUS_KEY_Cyrillic_ie, 415, 2, -+IBUS_KEY_underscore, IBUS_KEY_Cyrillic_o, 417, 2, -+IBUS_KEY_underscore, IBUS_KEY_Cyrillic_er, 419, 2, -+IBUS_KEY_underscore, IBUS_KEY_Cyrillic_A, 421, 2, -+IBUS_KEY_underscore, IBUS_KEY_Cyrillic_IE, 423, 2, -+IBUS_KEY_underscore, IBUS_KEY_Cyrillic_O, 425, 2, -+IBUS_KEY_underscore, IBUS_KEY_Cyrillic_ER, 427, 2, -+IBUS_KEY_grave, IBUS_KEY_Cyrillic_a, 429, 2, -+IBUS_KEY_grave, IBUS_KEY_Cyrillic_o, 431, 2, -+IBUS_KEY_grave, IBUS_KEY_Cyrillic_er, 433, 2, -+IBUS_KEY_grave, IBUS_KEY_Cyrillic_u, 435, 2, -+IBUS_KEY_grave, IBUS_KEY_Cyrillic_A, 437, 2, -+IBUS_KEY_grave, IBUS_KEY_Cyrillic_O, 439, 2, -+IBUS_KEY_grave, IBUS_KEY_Cyrillic_ER, 441, 2, -+IBUS_KEY_grave, IBUS_KEY_Cyrillic_U, 443, 2, -+IBUS_KEY_j, IBUS_KEY_apostrophe, 445, 2, -+IBUS_KEY_j, IBUS_KEY_acute, 447, 2, -+IBUS_KEY_macron, IBUS_KEY_Cyrillic_a, 449, 2, -+IBUS_KEY_macron, IBUS_KEY_Cyrillic_ie, 451, 2, -+IBUS_KEY_macron, IBUS_KEY_Cyrillic_o, 453, 2, -+IBUS_KEY_macron, IBUS_KEY_Cyrillic_er, 455, 2, -+IBUS_KEY_macron, IBUS_KEY_Cyrillic_A, 457, 2, -+IBUS_KEY_macron, IBUS_KEY_Cyrillic_IE, 459, 2, -+IBUS_KEY_macron, IBUS_KEY_Cyrillic_O, 461, 2, -+IBUS_KEY_macron, IBUS_KEY_Cyrillic_ER, 463, 2, -+IBUS_KEY_acute, IBUS_KEY_J, 465, 2, -+IBUS_KEY_acute, IBUS_KEY_j, 467, 2, -+IBUS_KEY_acute, IBUS_KEY_Cyrillic_a, 469, 2, -+IBUS_KEY_acute, IBUS_KEY_Cyrillic_ie, 471, 2, -+IBUS_KEY_acute, IBUS_KEY_Cyrillic_i, 473, 2, -+IBUS_KEY_acute, IBUS_KEY_Cyrillic_o, 475, 2, -+IBUS_KEY_acute, IBUS_KEY_Cyrillic_er, 477, 2, -+IBUS_KEY_acute, IBUS_KEY_Cyrillic_u, 479, 2, -+IBUS_KEY_acute, IBUS_KEY_Cyrillic_A, 481, 2, -+IBUS_KEY_acute, IBUS_KEY_Cyrillic_IE, 483, 2, -+IBUS_KEY_acute, IBUS_KEY_Cyrillic_I, 485, 2, -+IBUS_KEY_acute, IBUS_KEY_Cyrillic_O, 487, 2, -+IBUS_KEY_acute, IBUS_KEY_Cyrillic_ER, 489, 2, -+IBUS_KEY_acute, IBUS_KEY_Cyrillic_U, 491, 2, -+IBUS_KEY_backslash, IBUS_KEY_o, IBUS_KEY_slash, 493, 1, -+IBUS_KEY_grave, IBUS_KEY_grave, IBUS_KEY_Cyrillic_a, 494, 2, -+IBUS_KEY_grave, IBUS_KEY_grave, IBUS_KEY_Cyrillic_ie, 496, 2, -+IBUS_KEY_grave, IBUS_KEY_grave, IBUS_KEY_Cyrillic_i, 498, 2, -+IBUS_KEY_grave, IBUS_KEY_grave, IBUS_KEY_Cyrillic_o, 500, 2, -+IBUS_KEY_grave, IBUS_KEY_grave, IBUS_KEY_Cyrillic_er, 502, 2, -+IBUS_KEY_grave, IBUS_KEY_grave, IBUS_KEY_Cyrillic_u, 504, 2, -+IBUS_KEY_grave, IBUS_KEY_grave, IBUS_KEY_Cyrillic_A, 506, 2, -+IBUS_KEY_grave, IBUS_KEY_grave, IBUS_KEY_Cyrillic_IE, 508, 2, -+IBUS_KEY_grave, IBUS_KEY_grave, IBUS_KEY_Cyrillic_I, 510, 2, -+IBUS_KEY_grave, IBUS_KEY_grave, IBUS_KEY_Cyrillic_O, 512, 2, -+IBUS_KEY_grave, IBUS_KEY_grave, IBUS_KEY_Cyrillic_ER, 514, 2, -+IBUS_KEY_grave, IBUS_KEY_grave, IBUS_KEY_Cyrillic_U, 516, 2, -+IBUS_KEY_p, IBUS_KEY_o, IBUS_KEY_o, 518, 1, -+IBUS_KEY_L, IBUS_KEY_L, IBUS_KEY_A, IBUS_KEY_P, 519, 1, -+}; -+ -+static const guint32 gtk_compose_seqs_compact_32bit_second[] = { -+0x004D, 0x0300, -+0x006D, 0x0300, -+0x0186, 0x0300, -+0x018E, 0x0300, -+0x0190, 0x0300, -+0x0196, 0x0300, -+0x01B1, 0x0300, -+0x01B2, 0x0300, -+0x01DD, 0x0300, -+0x0254, 0x0300, -+0x025B, 0x0300, -+0x0269, 0x0300, -+0x028A, 0x0300, -+0x028B, 0x0300, -+0x014A, 0x0300, -+0x0430, 0x0300, -+0x043E, 0x0300, -+0x0440, 0x0300, -+0x0443, 0x0300, -+0x0410, 0x0300, -+0x041E, 0x0300, -+0x0420, 0x0300, -+0x0423, 0x0300, -+0x0041, 0x0303, 0x0300, -+0x0045, 0x0303, 0x0300, -+0x0049, 0x0303, 0x0300, -+0x004F, 0x0303, 0x0300, -+0x0055, 0x0303, 0x0300, -+0x0061, 0x0303, 0x0300, -+0x0065, 0x0303, 0x0300, -+0x0069, 0x0303, 0x0300, -+0x006F, 0x0303, 0x0300, -+0x0075, 0x0303, 0x0300, -+0x0186, 0x0303, 0x0300, -+0x018E, 0x0303, 0x0300, -+0x0190, 0x0303, 0x0300, -+0x01DD, 0x0303, 0x0300, -+0x0254, 0x0303, 0x0300, -+0x025B, 0x0303, 0x0300, -+0x004A, 0x0301, -+0x006A, 0x0301, -+0x0186, 0x0301, -+0x018E, 0x0301, -+0x0190, 0x0301, -+0x0196, 0x0301, -+0x01B1, 0x0301, -+0x01B2, 0x0301, -+0x01DD, 0x0301, -+0x0254, 0x0301, -+0x025B, 0x0301, -+0x0269, 0x0301, -+0x028A, 0x0301, -+0x028B, 0x0301, -+0x014A, 0x0301, -+0x0430, 0x0301, -+0x0435, 0x0301, -+0x0438, 0x0301, -+0x043E, 0x0301, -+0x0440, 0x0301, -+0x0443, 0x0301, -+0x0410, 0x0301, -+0x0415, 0x0301, -+0x0418, 0x0301, -+0x041E, 0x0301, -+0x0420, 0x0301, -+0x0423, 0x0301, -+0x0041, 0x0303, 0x0301, -+0x0045, 0x0303, 0x0301, -+0x0049, 0x0303, 0x0301, -+0x0061, 0x0303, 0x0301, -+0x0065, 0x0303, 0x0301, -+0x0069, 0x0303, 0x0301, -+0x0186, 0x0303, 0x0301, -+0x018E, 0x0303, 0x0301, -+0x0190, 0x0303, 0x0301, -+0x01DD, 0x0303, 0x0301, -+0x0254, 0x0303, 0x0301, -+0x025B, 0x0303, 0x0301, -+0x0186, 0x0302, -+0x018E, 0x0302, -+0x0190, 0x0302, -+0x0196, 0x0302, -+0x01B1, 0x0302, -+0x01B2, 0x0302, -+0x01DD, 0x0302, -+0x0254, 0x0302, -+0x025B, 0x0302, -+0x0269, 0x0302, -+0x028A, 0x0302, -+0x028B, 0x0302, -+0x0430, 0x0302, -+0x0435, 0x0302, -+0x0438, 0x0302, -+0x043E, 0x0302, -+0x0440, 0x0302, -+0x0443, 0x0302, -+0x0410, 0x0302, -+0x0415, 0x0302, -+0x0418, 0x0302, -+0x041E, 0x0302, -+0x0420, 0x0302, -+0x0423, 0x0302, -+0x0186, 0x0303, -+0x018E, 0x0303, -+0x0190, 0x0303, -+0x01DD, 0x0303, -+0x0254, 0x0303, -+0x025B, 0x0303, -+0x0186, 0x0304, -+0x018E, 0x0304, -+0x0190, 0x0304, -+0x0196, 0x0304, -+0x01B1, 0x0304, -+0x01B2, 0x0304, -+0x01DD, 0x0304, -+0x0254, 0x0304, -+0x025B, 0x0304, -+0x0269, 0x0304, -+0x028A, 0x0304, -+0x028B, 0x0304, -+0x0430, 0x0304, -+0x0435, 0x0304, -+0x043E, 0x0304, -+0x0440, 0x0304, -+0x0410, 0x0304, -+0x0415, 0x0304, -+0x041E, 0x0304, -+0x0420, 0x0304, -+0x0186, 0x030C, -+0x018E, 0x030C, -+0x0190, 0x030C, -+0x0196, 0x030C, -+0x01B1, 0x030C, -+0x01B2, 0x030C, -+0x01DD, 0x030C, -+0x0254, 0x030C, -+0x025B, 0x030C, -+0x0269, 0x030C, -+0x028A, 0x030C, -+0x028B, 0x030C, -+0x0430, 0x030F, -+0x0435, 0x030F, -+0x0438, 0x030F, -+0x043E, 0x030F, -+0x0440, 0x030F, -+0x0443, 0x030F, -+0x0410, 0x030F, -+0x0415, 0x030F, -+0x0418, 0x030F, -+0x041E, 0x030F, -+0x0420, 0x030F, -+0x0423, 0x030F, -+0x0430, 0x0311, -+0x0435, 0x0311, -+0x0438, 0x0311, -+0x043E, 0x0311, -+0x0440, 0x0311, -+0x0443, 0x0311, -+0x0410, 0x0311, -+0x0415, 0x0311, -+0x0418, 0x0311, -+0x041E, 0x0311, -+0x0420, 0x0311, -+0x0423, 0x0311, -+0x004A, 0x0301, -+0x006A, 0x0301, -+0x0430, 0x0301, -+0x0435, 0x0301, -+0x0438, 0x0301, -+0x043E, 0x0301, -+0x0440, 0x0301, -+0x0443, 0x0301, -+0x0410, 0x0301, -+0x0415, 0x0301, -+0x0418, 0x0301, -+0x041E, 0x0301, -+0x0420, 0x0301, -+0x0423, 0x0301, -+0x1F595, -+0x004A, 0x0301, -+0x004A, 0x0301, -+0x0430, 0x0302, -+0x0435, 0x0302, -+0x0438, 0x0302, -+0x043E, 0x0302, -+0x0440, 0x0302, -+0x0443, 0x0302, -+0x0410, 0x0302, -+0x0415, 0x0302, -+0x0418, 0x0302, -+0x041E, 0x0302, -+0x0420, 0x0302, -+0x0423, 0x0302, -+0x0430, 0x0304, -+0x0435, 0x0304, -+0x043E, 0x0304, -+0x0440, 0x0304, -+0x0410, 0x0304, -+0x0415, 0x0304, -+0x041E, 0x0304, -+0x0420, 0x0304, -+0x0430, 0x0300, -+0x043E, 0x0300, -+0x0440, 0x0300, -+0x0443, 0x0300, -+0x0410, 0x0300, -+0x041E, 0x0300, -+0x0420, 0x0300, -+0x0423, 0x0300, -+0x006A, 0x0301, -+0x006A, 0x0301, -+0x0430, 0x0304, -+0x0435, 0x0304, -+0x043E, 0x0304, -+0x0440, 0x0304, -+0x0410, 0x0304, -+0x0415, 0x0304, -+0x041E, 0x0304, -+0x0420, 0x0304, -+0x004A, 0x0301, -+0x006A, 0x0301, -+0x0430, 0x0301, -+0x0435, 0x0301, -+0x0438, 0x0301, -+0x043E, 0x0301, -+0x0440, 0x0301, -+0x0443, 0x0301, -+0x0410, 0x0301, -+0x0415, 0x0301, -+0x0418, 0x0301, -+0x041E, 0x0301, -+0x0420, 0x0301, -+0x0423, 0x0301, -+0x1F64C, -+0x0430, 0x030F, -+0x0435, 0x030F, -+0x0438, 0x030F, -+0x043E, 0x030F, -+0x0440, 0x030F, -+0x0443, 0x030F, -+0x0410, 0x030F, -+0x0415, 0x030F, -+0x0418, 0x030F, -+0x041E, 0x030F, -+0x0420, 0x030F, -+0x0423, 0x030F, -+0x1F4A9, -+0x1F596, - }; - - #endif /* __GTK_IM_CONTEXT_SIMPLE_SEQS_H__ */ -diff --git a/src/ibuscomposetable.h b/src/ibuscomposetable.h -index 8346df6d..4bf89211 100644 ---- a/src/ibuscomposetable.h -+++ b/src/ibuscomposetable.h -@@ -2,7 +2,7 @@ - /* vim:set et sts=4: */ - /* ibus - The Input Bus - * Copyright (C) 2013-2014 Peng Huang -- * Copyright (C) 2013-2016 Takao Fujiwara -+ * Copyright (C) 2013-2019 Takao Fujiwara - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public -@@ -30,6 +30,8 @@ G_BEGIN_DECLS - - typedef struct _IBusComposeTable IBusComposeTable; - typedef struct _IBusComposeTableCompact IBusComposeTableCompact; -+typedef struct _IBusComposeTableCompactEx IBusComposeTableCompactEx; -+typedef struct _IBusComposeTableCompactPrivate IBusComposeTableCompactPrivate; - - struct _IBusComposeTable - { -@@ -47,6 +49,15 @@ struct _IBusComposeTableCompact - gint n_index_stride; - }; - -+struct _IBusComposeTableCompactEx -+{ -+ const guint16 *data; -+ gint max_seq_len; -+ gint n_index_size; -+ gint n_index_stride; -+ IBusComposeTableCompactPrivate *priv; -+}; -+ - IBusComposeTable *ibus_compose_table_new_with_file (const gchar *compose_file); - GSList *ibus_compose_table_list_add_array - (GSList -diff --git a/src/ibusenginesimple.c b/src/ibusenginesimple.c -index 7615f121..fa4ddf5f 100644 ---- a/src/ibusenginesimple.c -+++ b/src/ibusenginesimple.c -@@ -2,7 +2,7 @@ - /* vim:set et sts=4: */ - /* ibus - The Input Bus - * Copyright (C) 2014 Peng Huang -- * Copyright (C) 2015-2018 Takao Fujiwara -+ * Copyright (C) 2015-2019 Takao Fujiwara - * Copyright (C) 2014-2017 Red Hat, Inc. - * - * This library is free software; you can redistribute it and/or -@@ -89,16 +89,36 @@ struct _IBusEngineSimplePrivate { - gboolean lookup_table_visible; - }; - -+struct _IBusComposeTableCompactPrivate -+{ -+ const guint32 *data2; -+}; -+ - /* From the values below, the value 30 means the number of different first keysyms - * that exist in the Compose file (from Xorg). When running compose-parse.py without - * parameters, you get the count that you can put here. Needed when updating the - * gtkimcontextsimpleseqs.h header file (contains the compose sequences). -+ * Assign the value of "Number of different first items" of compose-parse.py -+ * to n_seqs in IBusComposeTableCompact - */ --const IBusComposeTableCompact ibus_compose_table_compact = { -+const IBusComposeTableCompactPrivate ibus_compose_table_compact_32bit_priv = { -+ gtk_compose_seqs_compact_32bit_second -+}; -+ -+const IBusComposeTableCompactEx ibus_compose_table_compact = { - gtk_compose_seqs_compact, - 5, - 30, -- 6 -+ 6, -+ NULL -+}; -+ -+const IBusComposeTableCompactEx ibus_compose_table_compact_32bit = { -+ gtk_compose_seqs_compact_32bit_first, -+ 5, -+ 9, -+ 6, -+ &ibus_compose_table_compact_32bit_priv - }; - - static GSList *global_tables; -@@ -320,12 +340,10 @@ ibus_engine_simple_commit_str (IBusEngineSimple *simple, - priv->in_hex_sequence = FALSE; - priv->tentative_match = 0; - priv->tentative_match_len = 0; -- ibus_engine_simple_update_preedit_text (simple); - } - if (priv->tentative_emoji || priv->in_emoji_sequence) { - priv->in_emoji_sequence = FALSE; - g_clear_pointer (&priv->tentative_emoji, g_free); -- ibus_engine_simple_update_preedit_text (simple); - } - - ibus_engine_commit_text ((IBusEngine *)simple, -@@ -680,11 +698,11 @@ check_table (IBusEngineSimple *simple, - } - - gboolean --ibus_check_compact_table (const IBusComposeTableCompact *table, -- guint16 *compose_buffer, -- gint n_compose, -- gboolean *compose_finish, -- gunichar *output_char) -+ibus_check_compact_table (const IBusComposeTableCompactEx *table, -+ guint16 *compose_buffer, -+ gint n_compose, -+ gboolean *compose_finish, -+ gunichar **output_chars) - { - gint row_stride; - guint16 *seq_index; -@@ -693,8 +711,8 @@ ibus_check_compact_table (const IBusComposeTableCompact *table, - - if (compose_finish) - *compose_finish = FALSE; -- if (output_char) -- *output_char = 0; -+ if (output_chars) -+ *output_chars = NULL; - - CHECK_COMPOSE_BUFFER_LENGTH (n_compose); - -@@ -730,41 +748,81 @@ ibus_check_compact_table (const IBusComposeTableCompact *table, - // g_debug ("compact: %04x ", *seq_index); - seq = NULL; - -- for (i = n_compose - 1; i < table->max_seq_len; i++) { -- row_stride = i + 1; -+ if (table->priv) { -+ for (i = n_compose - 1; i < table->max_seq_len; i++) { -+ row_stride = i + 2; - -- if (seq_index[i + 1] - seq_index[i] > 0) { -- seq = bsearch (compose_buffer + 1, -+ if (seq_index[i + 1] - seq_index[i] > 0) { -+ seq = bsearch (compose_buffer + 1, - table->data + seq_index[i], - (seq_index[i + 1] - seq_index[i]) / row_stride, - sizeof (guint16) * row_stride, - compare_seq); -- // g_debug ("seq = %p", seq); -+ if (seq) { -+ if (i == n_compose - 1) -+ break; -+ else -+ return TRUE; -+ } -+ } -+ } -+ if (!seq) { -+ return FALSE; -+ } else { -+ int index = seq[row_stride - 2]; -+ int length = seq[row_stride - 1]; -+ int j; -+ if (compose_finish) -+ *compose_finish = TRUE; -+ if (output_chars) { -+ *output_chars = g_new (gunichar, length + 1); -+ for (j = 0; j < length; j++) -+ (*output_chars)[j] = table->priv->data2[index + j]; -+ (*output_chars)[length] = 0; -+ } - -- if (seq) { -- if (i == n_compose - 1) -- break; -- else -- return TRUE; -+ // g_debug ("U+%04X\n", value); -+ return TRUE; -+ } -+ } else { -+ for (i = n_compose - 1; i < table->max_seq_len; i++) { -+ row_stride = i + 1; -+ -+ if (seq_index[i + 1] - seq_index[i] > 0) { -+ seq = bsearch (compose_buffer + 1, -+ table->data + seq_index[i], -+ (seq_index[i + 1] - seq_index[i]) / row_stride, -+ sizeof (guint16) * row_stride, -+ compare_seq); -+ -+ if (seq) { -+ if (i == n_compose - 1) -+ break; -+ else -+ return TRUE; -+ } - } - } -- } -+ if (!seq) { -+ return FALSE; -+ } else { -+ if (compose_finish) -+ *compose_finish = TRUE; -+ if (output_chars) { -+ *output_chars = g_new (gunichar, 2); -+ (*output_chars)[0] = seq[row_stride - 1]; -+ (*output_chars)[1] = 0; -+ } - -- if (!seq) { -- // g_debug ("no\n"); -- return FALSE; -+ // g_debug ("U+%04X\n", value); -+ return TRUE; -+ } - } -- else { -- if (compose_finish) -- *compose_finish = TRUE; -- if (output_char) -- *output_char = seq[row_stride - 1]; - -- // g_debug ("U+%04X\n", value); -- return TRUE; -- } -+ g_assert_not_reached (); - } - -+ - /* Checks if a keysym is a dead key. Dead key keysym values are defined in - * ../gdk/gdkkeysyms.h and the first is GDK_KEY_dead_grave. As X.Org is updated, - * more dead keys are added and we need to update the upper limit. -@@ -949,8 +1007,8 @@ no_sequence_matches (IBusEngineSimple *simple, - (IBusEngine *)simple, keyval, keycode, modifiers); - } else if (priv->tentative_emoji && *priv->tentative_emoji) { - ibus_engine_simple_commit_str (simple, priv->tentative_emoji); -- g_clear_pointer (&priv->tentative_emoji, g_free); - priv->compose_buffer[0] = 0; -+ ibus_engine_simple_update_preedit_text (simple); - } else { - priv->compose_buffer[0] = 0; - if (n_compose > 1) { -@@ -1083,6 +1141,9 @@ ibus_engine_simple_check_all_compose_table (IBusEngineSimple *simple, - IBusEngineSimplePrivate *priv = simple->priv; - gboolean compose_finish; - gunichar output_char; -+ gunichar *output_chars = NULL; -+ gchar *output_str = NULL; -+ GError *error = NULL; - GSList *list = global_tables; - - while (list) { -@@ -1098,15 +1159,37 @@ ibus_engine_simple_check_all_compose_table (IBusEngineSimple *simple, - priv->compose_buffer, - n_compose, - &compose_finish, -- &output_char)) { -+ &output_chars)) { - if (compose_finish) { -- ibus_engine_simple_commit_char (simple, output_char); -+ ibus_engine_simple_commit_char (simple, *output_chars); -+ g_free (output_chars); - priv->compose_buffer[0] = 0; - } - ibus_engine_simple_update_preedit_text (simple); - return TRUE; - } -- -+ if (ibus_check_compact_table (&ibus_compose_table_compact_32bit, -+ priv->compose_buffer, -+ n_compose, -+ &compose_finish, -+ &output_chars)) { -+ if (compose_finish) { -+ output_str = g_ucs4_to_utf8 (output_chars, -1, NULL, NULL, &error); -+ if (output_str) { -+ ibus_engine_simple_commit_str (simple, output_str); -+ g_free (output_str); -+ g_free (output_chars); -+ } else { -+ g_warning ("Failed to output multiple characters: %s", -+ error->message); -+ g_error_free (error); -+ } -+ priv->compose_buffer[0] = 0; -+ } -+ -+ ibus_engine_simple_update_preedit_text (simple); -+ return TRUE; -+ } - if (ibus_check_algorithmically (priv->compose_buffer, - n_compose, - &output_char)) { -@@ -1177,7 +1260,8 @@ ibus_engine_simple_process_key_event (IBusEngine *engine, - (keyval == IBUS_KEY_Control_L || keyval == IBUS_KEY_Control_R)) { - if (priv->tentative_emoji && *priv->tentative_emoji) { - ibus_engine_simple_commit_str (simple, priv->tentative_emoji); -- g_clear_pointer (&priv->tentative_emoji, g_free); -+ priv->compose_buffer[0] = 0; -+ ibus_engine_simple_update_preedit_text (simple); - } else if (n_compose == 0) { - priv->modifiers_dropped = TRUE; - } else { -@@ -1335,7 +1419,8 @@ ibus_engine_simple_process_key_event (IBusEngine *engine, - if (priv->in_emoji_sequence && have_hex_mods && is_emoji_start) { - if (priv->tentative_emoji && *priv->tentative_emoji) { - ibus_engine_simple_commit_str (simple, priv->tentative_emoji); -- g_clear_pointer (&priv->tentative_emoji, g_free); -+ priv->compose_buffer[0] = 0; -+ ibus_engine_simple_update_preedit_text (simple); - } - else { - if (n_compose > 0) { -@@ -1531,6 +1616,7 @@ ibus_engine_simple_process_key_event (IBusEngine *engine, - ibus_engine_simple_commit_str (simple, - priv->tentative_emoji); - priv->compose_buffer[0] = 0; -+ ibus_engine_simple_update_preedit_text (simple); - } else { - g_clear_pointer (&priv->tentative_emoji, g_free); - priv->in_emoji_sequence = FALSE; -diff --git a/src/ibusenginesimpleprivate.h b/src/ibusenginesimpleprivate.h -index cac404b1..c86c5324 100644 ---- a/src/ibusenginesimpleprivate.h -+++ b/src/ibusenginesimpleprivate.h -@@ -1,7 +1,7 @@ - /* -*- mode: C; c-basic-offset: 4; indent-tabs-mode: nil; -*- */ - /* vim:set et sts=4: */ - /* ibus - The Input Bus -- * Copyright (C) 2016 Takao Fujiwara -+ * Copyright (C) 2016-2019 Takao Fujiwara - * Copyright (C) 2016 Red Hat, Inc. - * - * This library is free software; you can redistribute it and/or -@@ -26,17 +26,17 @@ - - G_BEGIN_DECLS - --extern const IBusComposeTableCompact ibus_compose_table_compact; -+extern const IBusComposeTableCompactEx ibus_compose_table_compact; - - gboolean ibus_check_algorithmically (const guint16 *compose_buffer, - gint n_compose, - gunichar *output); --gboolean ibus_check_compact_table (const IBusComposeTableCompact -+gboolean ibus_check_compact_table (const IBusComposeTableCompactEx - *table, - guint16 *compose_buffer, - gint n_compose, - gboolean *compose_finish, -- gunichar *output_char); -+ gunichar **output_chars); - - G_END_DECLS - --- -2.21.0 - -From 5b6ad433f79c2e4781688d4985a15836d81f0a72 Mon Sep 17 00:00:00 2001 -From: fujiwarat -Date: Fri, 24 May 2019 14:34:05 +0900 -Subject: [PATCH 15/27] src: Enable multiple compose output and long key - sequences in user comopse - -Curently the max key sequences of user compose keys depends on the -max key sequences of system compose keys, IBUS_MAX_COMPOSE_LEN. -This change will have the max key sequences by user compose table -and also will separate the user compose table with 16bit compose table -and 32bit one to follow another change of system compose table to be able -to output multiple compose outputs and 32bit compose ones likes emoji -charaters. - -BUG=https://github.com/ibus/ibus/issues/1990 ---- - src/ibuscomposetable.c | 639 ++++++++++++++++++++++------------ - src/ibuscomposetable.h | 20 +- - src/ibusenginesimple.c | 87 +++-- - src/ibusenginesimple.h | 4 +- - src/ibusenginesimpleprivate.h | 9 + - 5 files changed, 512 insertions(+), 247 deletions(-) - -diff --git a/src/ibuscomposetable.c b/src/ibuscomposetable.c -index 1c0ece41..4ac54e25 100644 ---- a/src/ibuscomposetable.c -+++ b/src/ibuscomposetable.c -@@ -35,22 +35,25 @@ - #include "ibusenginesimpleprivate.h" - - #define IBUS_COMPOSE_TABLE_MAGIC "IBusComposeTable" --#define IBUS_COMPOSE_TABLE_VERSION (2) -+#define IBUS_COMPOSE_TABLE_VERSION (3) - - typedef struct { - gunichar *sequence; -- gunichar value[2]; -+ gunichar *values; - gchar *comment; - } IBusComposeData; - -+ - static void - ibus_compose_data_free (IBusComposeData *compose_data) - { - g_free (compose_data->sequence); -+ g_free (compose_data->values); - g_free (compose_data->comment); - g_slice_free (IBusComposeData, compose_data); - } - -+ - static void - ibus_compose_list_element_free (IBusComposeData *compose_data, - gpointer data) -@@ -58,6 +61,18 @@ ibus_compose_list_element_free (IBusComposeData *compose_data, - ibus_compose_data_free (compose_data); - } - -+ -+static guint -+unichar_length (gunichar *uni_array) -+{ -+ guint i = 0; -+ g_return_val_if_fail (uni_array, 0); -+ while (uni_array[i]) -+ ++i; -+ return i; -+} -+ -+ - static gboolean - is_codepoint (const gchar *str) - { -@@ -75,63 +90,85 @@ is_codepoint (const gchar *str) - return TRUE; - } - -+ - static gboolean - parse_compose_value (IBusComposeData *compose_data, - const gchar *val, - const gchar *line) - { -- gchar **words = g_strsplit (val, "\"", 3); -- gunichar uch; -+ gchar *head, *end, *p; -+ gchar *ustr = NULL; -+ gunichar *uchars = NULL, *up; -+ GError *error = NULL; -+ int n_uchars = 0; - -- if (g_strv_length (words) < 3) { -+ if (!(head = strchr (val, '\"'))) { - g_warning ("Need to double-quote the value: %s: %s", val, line); - goto fail; - } -- -- uch = g_utf8_get_char (words[1]); -- -- if (uch == 0) { -- g_warning ("Invalid value: %s: %s", val, line); -+ ++head; -+ p = head; -+ while ((*p != '\0') && (end = strchr (p, '\"'))) { -+ if (*(end - 1) == '\\' && *(end - 2) == '\\') -+ break; -+ if (*(end - 1) != '\\') -+ break; -+ p = end + 1; -+ } -+ if (end == NULL || *p == '\0') { -+ g_warning ("Need to double-quote the value: %s: %s", val, line); - goto fail; - } -- else if (uch == '\\') { -- uch = words[1][1]; -- -- /* The escaped string "\"" is separated with '\\' and '"'. */ -- if (uch == '\0' && words[2][0] == '"') { -- uch = '"'; -- /* The escaped octal */ -- } else if (uch >= '0' && uch <= '8') { -- uch = g_ascii_strtoll(words[1] + 1, NULL, 8); -- /* If we need to handle other escape sequences. */ -- } else if (uch != '\\') { -- g_warning ("Invalid backslash: %s: %s", val, line); -+ ustr = g_strndup (head, end - head); -+ p = ustr + 1; -+ /* The escaped octal */ -+ if (*ustr == '\\' && *p >= '0' && *p <= '8') { -+ compose_data->values = g_new (gunichar, 2); -+ compose_data->values[0] = g_ascii_strtoll(p, NULL, 8); -+ compose_data->values[1] = 0; -+ } else { -+ if (!(uchars = g_utf8_to_ucs4 (ustr, -1, NULL, NULL, &error)) || -+ !uchars[0]) { -+ g_warning ("Invalid Unicode: %s: %s in %s:", -+ error->message, ustr, line); -+ g_error_free (error); - goto fail; - } -- } - -- if (g_utf8_get_char (g_utf8_next_char (words[1])) > 0) { -- g_warning ("GTK+ supports to output one char only: %s: %s", val, line); -- goto fail; -+ for (up = uchars; *up; up++) { -+ if (*up == '\\') { -+ ++up; -+ if (*up != '"' && *up != '\\') { -+ g_warning ("Invalid backslash: %s: %s", val, line); -+ goto fail; -+ } -+ } -+ if (!compose_data->values) { -+ compose_data->values = g_new (gunichar, 2); -+ } else { -+ compose_data->values = g_renew (gunichar, -+ compose_data->values, -+ n_uchars + 1); -+ } -+ compose_data->values[n_uchars++] = *up; -+ } -+ compose_data->values[n_uchars] = 0; - } - -- compose_data->value[1] = uch; -- -- if (uch == '"') -- compose_data->comment = g_strdup (g_strstrip (words[2] + 1)); -- else -- compose_data->comment = g_strdup (g_strstrip (words[2])); -- -- g_strfreev (words); -+ g_free (ustr); -+ g_free (uchars); -+ compose_data->comment = g_strdup (g_strstrip (end + 1)); - - return TRUE; - - fail: -- g_strfreev (words); -+ g_free (ustr); -+ g_free (uchars); - return FALSE; - } - --static gboolean -+ -+static int - parse_compose_sequence (IBusComposeData *compose_data, - const gchar *seq, - const gchar *line) -@@ -161,20 +198,20 @@ parse_compose_sequence (IBusComposeData *compose_data, - - match = g_strndup (start, end - start); - -- if (compose_data->sequence == NULL) -- compose_data->sequence = g_malloc (sizeof (gunichar) * 2); -- else -- compose_data->sequence = g_realloc (compose_data->sequence, -- sizeof (gunichar) * (n + 2)); -+ if (compose_data->sequence == NULL) { -+ compose_data->sequence = g_new (gunichar, 2); -+ } else { -+ compose_data->sequence = g_renew (gunichar, -+ compose_data->sequence, -+ n + 2); -+ } - - if (is_codepoint (match)) { - codepoint = (gunichar) g_ascii_strtoll (match + 1, NULL, 16); - compose_data->sequence[n] = codepoint; -- compose_data->sequence[n + 1] = 0; - } else { - codepoint = (gunichar) ibus_keyval_from_name (match); - compose_data->sequence[n] = codepoint; -- compose_data->sequence[n + 1] = 0; - } - - if (codepoint == IBUS_KEY_VoidSymbol) -@@ -182,27 +219,35 @@ parse_compose_sequence (IBusComposeData *compose_data, - g_free (match); - n++; - } -+ if (compose_data->sequence) -+ compose_data->sequence[n] = 0; - - g_strfreev (words); - if (0 == n || n >= IBUS_MAX_COMPOSE_LEN) { - g_warning ("The max number of sequences is %d: %s", - IBUS_MAX_COMPOSE_LEN, line); -- return FALSE; -+ return -1; - } - -- return TRUE; -+ return n; - - fail: - g_strfreev (words); -- return FALSE; -+ return -1; - } - -+ - static void - parse_compose_line (GList **compose_list, -- const gchar *line) -+ const gchar *line, -+ int *compose_len) - { - gchar **components = NULL; - IBusComposeData *compose_data = NULL; -+ int l; -+ -+ g_assert (compose_len); -+ *compose_len = 0; - - if (line[0] == '\0' || line[0] == '#') - return; -@@ -219,11 +264,12 @@ parse_compose_line (GList **compose_list, - - compose_data = g_slice_new0 (IBusComposeData); - -- if (!parse_compose_sequence (compose_data, -- g_strstrip (components[0]), -- line)) { -+ if ((l = parse_compose_sequence (compose_data, -+ g_strstrip (components[0]), -+ line)) < 1) { - goto fail; - } -+ *compose_len = l; - - if (!parse_compose_value (compose_data, g_strstrip (components[1]), line)) - goto fail; -@@ -240,16 +286,21 @@ fail: - ibus_compose_data_free (compose_data); - } - -+ - static GList * --ibus_compose_list_parse_file (const gchar *compose_file) -+ibus_compose_list_parse_file (const gchar *compose_file, -+ int *max_compose_len) - { - gchar *contents = NULL; - gchar **lines = NULL; - gsize length = 0; - GError *error = NULL; - GList *compose_list = NULL; -+ int compose_len = 0; - int i; - -+ g_assert (max_compose_len); -+ - if (!g_file_get_contents (compose_file, &contents, &length, &error)) { - g_error ("%s", error->message); - g_error_free (error); -@@ -258,33 +309,43 @@ ibus_compose_list_parse_file (const gchar *compose_file) - - lines = g_strsplit (contents, "\n", -1); - g_free (contents); -- for (i = 0; lines[i] != NULL; i++) -- parse_compose_line (&compose_list, lines[i]); -+ for (i = 0; lines[i] != NULL; i++) { -+ parse_compose_line (&compose_list, lines[i], &compose_len); -+ if (*max_compose_len < compose_len) -+ *max_compose_len = compose_len; -+ } - g_strfreev (lines); - - return compose_list; - } - -+ - static GList * --ibus_compose_list_check_duplicated (GList *compose_list) -+ibus_compose_list_check_duplicated (GList *compose_list, -+ int max_compose_len) - { - GList *list; -+ static guint16 *keysyms; - GList *removed_list = NULL; - IBusComposeData *compose_data; -+ gboolean is_32bit; -+ -+ keysyms = g_new (guint16, max_compose_len + 1); - - for (list = compose_list; list != NULL; list = list->next) { -- static guint16 keysyms[IBUS_MAX_COMPOSE_LEN + 1]; - int i; - int n_compose = 0; - gboolean compose_finish; -- gunichar output_char; -+ gunichar *output_chars = NULL; -+ gunichar output_char = 0; -+ guint n_outputs; - - compose_data = list->data; - -- for (i = 0; i < IBUS_MAX_COMPOSE_LEN + 1; i++) -+ for (i = 0; i < max_compose_len + 1; i++) - keysyms[i] = 0; - -- for (i = 0; i < IBUS_MAX_COMPOSE_LEN + 1; i++) { -+ for (i = 0; i < max_compose_len + 1; i++) { - gunichar codepoint = compose_data->sequence[i]; - keysyms[i] = (guint16) codepoint; - -@@ -294,18 +355,41 @@ ibus_compose_list_check_duplicated (GList *compose_list) - n_compose++; - } - -- if (ibus_check_compact_table (&ibus_compose_table_compact, -+ n_outputs = unichar_length (compose_data->values); -+ is_32bit = (n_outputs > 1) ? TRUE : -+ (compose_data->values[0] >= 0xFFFF) ? TRUE : FALSE; -+ if (!is_32bit && -+ ibus_check_compact_table (&ibus_compose_table_compact, - keysyms, - n_compose, - &compose_finish, -- &output_char) && compose_finish) { -- if (compose_data->value[1] == output_char) -+ &output_chars) && compose_finish) { -+ if (compose_data->values[0] == *output_chars) - removed_list = g_list_append (removed_list, compose_data); -+ g_free (output_chars); -+ } else if (is_32bit && -+ ibus_check_compact_table (&ibus_compose_table_compact_32bit, -+ keysyms, -+ n_compose, -+ &compose_finish, -+ &output_chars) && compose_finish) { -+ -+ if (n_outputs == unichar_length (output_chars)) { -+ int j = 0; -+ while (compose_data->values[j] && j < n_outputs) { -+ if (compose_data->values[j] != output_chars[j]) -+ break; -+ ++j; -+ } -+ if (j == n_outputs) -+ removed_list = g_list_append (removed_list, compose_data); -+ } -+ g_free (output_chars); - - } else if (ibus_check_algorithmically (keysyms, - n_compose, - &output_char)) { -- if (compose_data->value[1] == output_char) -+ if (compose_data->values[0] == output_char) - removed_list = g_list_append (removed_list, compose_data); - } - } -@@ -317,85 +401,11 @@ ibus_compose_list_check_duplicated (GList *compose_list) - } - - g_list_free (removed_list); -+ g_free (keysyms); - - return compose_list; - } - --static GList * --ibus_compose_list_check_uint16 (GList *compose_list) --{ -- GList *list; -- GList *removed_list = NULL; -- IBusComposeData *compose_data; -- -- for (list = compose_list; list != NULL; list = list->next) { -- int i; -- -- compose_data = list->data; -- for (i = 0; i < IBUS_MAX_COMPOSE_LEN; i++) { -- gunichar codepoint = compose_data->sequence[i]; -- -- if (codepoint == 0) -- break; -- -- if (codepoint > 0xffff) { -- removed_list = g_list_append (removed_list, compose_data); -- break; -- } -- } -- } -- -- for (list = removed_list; list != NULL; list = list->next) { -- compose_data = list->data; -- compose_list = g_list_remove (compose_list, compose_data); -- ibus_compose_data_free (compose_data); -- } -- -- g_list_free (removed_list); -- -- return compose_list; --} -- --static GList * --ibus_compose_list_format_for_gtk (GList *compose_list, -- int *p_max_compose_len, -- int *p_n_index_stride) --{ -- GList *list; -- IBusComposeData *compose_data; -- int max_compose_len = 0; -- int i; -- gunichar codepoint; -- -- for (list = compose_list; list != NULL; list = list->next) { -- compose_data = list->data; -- -- for (i = 0; i < IBUS_MAX_COMPOSE_LEN + 1; i++) { -- codepoint = compose_data->sequence[i]; -- if (codepoint == 0) { -- if (max_compose_len < i) -- max_compose_len = i; -- break; -- } -- } -- } -- -- if (p_max_compose_len) -- *p_max_compose_len = max_compose_len; -- if (p_n_index_stride) -- *p_n_index_stride = max_compose_len + 2; -- -- for (list = compose_list; list != NULL; list = list->next) { -- compose_data = list->data; -- codepoint = compose_data->value[1]; -- if (codepoint > 0xffff) { -- compose_data->value[0] = codepoint / 0x10000; -- compose_data->value[1] = codepoint - codepoint / 0x10000 * 0x10000; -- } -- } -- -- return compose_list; --} - - static gint - ibus_compose_data_compare (gpointer a, -@@ -416,6 +426,7 @@ ibus_compose_data_compare (gpointer a, - return 0; - } - -+ - static void - ibus_compose_list_print (GList *compose_list, - int max_compose_len, -@@ -425,9 +436,6 @@ ibus_compose_list_print (GList *compose_list, - int i, j; - IBusComposeData *compose_data; - int total_size = 0; -- gunichar upper; -- gunichar lower; -- const gchar *comment; - const gchar *keyval; - - for (list = compose_list; list != NULL; list = list->next) { -@@ -452,14 +460,10 @@ ibus_compose_list_print (GList *compose_list, - else - g_printf ("%s, ", keyval ? keyval : "(null)"); - } -- upper = compose_data->value[0]; -- lower = compose_data->value[1]; -- comment = compose_data->comment; -- -- if (list == g_list_last (compose_list)) -- g_printf (" %#06X, %#06X /* %s */\n", upper, lower, comment); -- else -- g_printf (" %#06X, %#06X, /* %s */\n", upper, lower, comment); -+ g_printf (" "); -+ for (i = 0; compose_data->values[i]; ++i) -+ g_printf ("%#06X, ", compose_data->values[i]); -+ g_printf (" /* %s */,\n", compose_data->comment); - - total_size += n_index_stride; - } -@@ -468,6 +472,7 @@ ibus_compose_list_print (GList *compose_list, - total_size, max_compose_len, n_index_stride); - } - -+ - /* Implemented from g_str_hash() */ - static guint32 - ibus_compose_table_data_hash (gconstpointer v, -@@ -487,6 +492,7 @@ ibus_compose_table_data_hash (gconstpointer v, - return h; - } - -+ - static gchar * - ibus_compose_hash_get_cache_path (guint32 hash) - { -@@ -511,67 +517,151 @@ ibus_compose_hash_get_cache_path (guint32 hash) - return path; - } - -+ - static GVariant * --ibus_compose_table_serialize (IBusComposeTable *compose_table) -+ibus_compose_table_serialize (IBusComposeTableEx *compose_table) - { - const gchar *header = IBUS_COMPOSE_TABLE_MAGIC; - const guint16 version = IBUS_COMPOSE_TABLE_VERSION; - guint16 max_seq_len; - guint16 index_stride; - guint16 n_seqs; -- GVariant *variant_data; -+ guint16 n_seqs_32bit = 0; -+ guint16 second_size = 0; -+ GVariant *variant_data = NULL; -+ GVariant *variant_data_32bit_first = NULL; -+ GVariant *variant_data_32bit_second = NULL; - GVariant *variant_table; - - g_return_val_if_fail (compose_table != NULL, NULL); -- g_return_val_if_fail (compose_table->data != NULL, NULL); - - max_seq_len = compose_table->max_seq_len; - index_stride = max_seq_len + 2; - n_seqs = compose_table->n_seqs; - -- g_return_val_if_fail (max_seq_len > 0, NULL); -- g_return_val_if_fail (n_seqs > 0, NULL); -+ g_return_val_if_fail (max_seq_len, NULL); - -- variant_data = g_variant_new_fixed_array (G_VARIANT_TYPE_UINT16, -- compose_table->data, -- (gsize)index_stride * n_seqs, -- sizeof (guint16)); -- if (variant_data == NULL) { -- g_warning ("Could not change compose data to GVariant."); -- return NULL; -+ if (n_seqs) { -+ g_return_val_if_fail (compose_table->data, NULL); -+ -+ variant_data = g_variant_new_fixed_array (G_VARIANT_TYPE_UINT16, -+ compose_table->data, -+ (gsize)index_stride * n_seqs, -+ sizeof (guint16)); -+ if (!variant_data) { -+ g_warning ("Could not change compose data to GVariant."); -+ return NULL; -+ } -+ } else { -+ variant_data = g_variant_new_fixed_array ( -+ G_VARIANT_TYPE_UINT16, -+ NULL, -+ 0, -+ sizeof (guint16)); -+ g_assert (variant_data); -+ } -+ if (compose_table->priv) { -+ n_seqs_32bit = compose_table->priv->first_n_seqs; -+ second_size = compose_table->priv->second_size; -+ } -+ if (!n_seqs && !n_seqs_32bit) { -+ g_warning ("ComposeTable has not key sequences."); -+ goto out_serialize; -+ } else if (n_seqs_32bit && !second_size) { -+ g_warning ("Compose key sequences are loaded but the values could " \ -+ "not be loaded."); -+ goto out_serialize; -+ } else if (!n_seqs_32bit && second_size) { -+ g_warning ("Compose values are loaded but the key sequences could " \ -+ "not be loaded."); -+ goto out_serialize; -+ } else if (n_seqs_32bit && second_size) { -+ if (!compose_table->priv->data_first) { -+ g_warning ("data_first is NULL"); -+ goto out_serialize; -+ } -+ if (!compose_table->priv->data_second) { -+ g_warning ("data_second is NULL"); -+ goto out_serialize; -+ } -+ variant_data_32bit_first = g_variant_new_fixed_array ( -+ G_VARIANT_TYPE_UINT16, -+ compose_table->priv->data_first, -+ (gsize)index_stride * n_seqs_32bit, -+ sizeof (guint16)); -+ variant_data_32bit_second = g_variant_new_fixed_array ( -+ G_VARIANT_TYPE_UINT32, -+ compose_table->priv->data_second, -+ compose_table->priv->second_size, -+ sizeof (guint32)); -+ if (!variant_data_32bit_first || !variant_data_32bit_second) { -+ g_warning ("Could not change 32bit compose data to GVariant."); -+ goto out_serialize; -+ } -+ } else { -+ variant_data_32bit_first = g_variant_new_fixed_array ( -+ G_VARIANT_TYPE_UINT16, -+ NULL, -+ 0, -+ sizeof (guint16)); -+ variant_data_32bit_second = g_variant_new_fixed_array ( -+ G_VARIANT_TYPE_UINT32, -+ NULL, -+ 0, -+ sizeof (guint32)); -+ g_assert (variant_data_32bit_first && variant_data_32bit_second); - } -- variant_table = g_variant_new ("(sqqqv)", -+ variant_table = g_variant_new ("(sqqqqqvvv)", - header, - version, - max_seq_len, - n_seqs, -- variant_data); -+ n_seqs_32bit, -+ second_size, -+ variant_data, -+ variant_data_32bit_first, -+ variant_data_32bit_second); - return g_variant_ref_sink (variant_table); -+ -+out_serialize: -+ g_clear_pointer (&variant_data, g_variant_unref); -+ g_clear_pointer (&variant_data_32bit_first, g_variant_unref); -+ g_clear_pointer (&variant_data_32bit_second, g_variant_unref); -+ return NULL; - } - -+ - static gint - ibus_compose_table_find (gconstpointer data1, - gconstpointer data2) - { -- const IBusComposeTable *compose_table = (const IBusComposeTable *) data1; -+ const IBusComposeTableEx *compose_table = -+ (const IBusComposeTableEx *) data1; - guint32 hash = (guint32) GPOINTER_TO_INT (data2); - return compose_table->id != hash; - } - --static IBusComposeTable * -+ -+static IBusComposeTableEx * - ibus_compose_table_deserialize (const gchar *contents, - gsize length) - { -- IBusComposeTable *retval = NULL; -+ IBusComposeTableEx *retval = NULL; - GVariantType *type; - GVariant *variant_data = NULL; -+ GVariant *variant_data_32bit_first = NULL; -+ GVariant *variant_data_32bit_second = NULL; - GVariant *variant_table = NULL; - const gchar *header = NULL; - guint16 version = 0; - guint16 max_seq_len = 0; - guint16 n_seqs = 0; -+ guint16 n_seqs_32bit = 0; -+ guint16 second_size = 0; - guint16 index_stride; - gconstpointer data = NULL; -+ gconstpointer data_32bit_first = NULL; -+ gconstpointer data_32bit_second = NULL; - gsize data_length = 0; - - g_return_val_if_fail (contents != NULL, NULL); -@@ -587,7 +677,7 @@ ibus_compose_table_deserialize (const gchar *contents, - NULL); - g_variant_type_free (type); - -- if (variant_table == NULL) { -+ if (!variant_table) { - g_warning ("cache is broken."); - goto out_load_cache; - } -@@ -611,7 +701,7 @@ ibus_compose_table_deserialize (const gchar *contents, - g_variant_unref (variant_table); - variant_table = NULL; - -- type = g_variant_type_new ("(sqqqv)"); -+ type = g_variant_type_new ("(sqqqqqvvv)"); - variant_table = g_variant_new_from_data (type, - contents, - length, -@@ -620,58 +710,117 @@ ibus_compose_table_deserialize (const gchar *contents, - NULL); - g_variant_type_free (type); - -- if (variant_table == NULL) { -+ if (!variant_table) { - g_warning ("cache is broken."); - goto out_load_cache; - } - - g_variant_ref_sink (variant_table); -- g_variant_get (variant_table, "(&sqqqv)", -+ g_variant_get (variant_table, "(&sqqqqqvvv)", - NULL, - NULL, - &max_seq_len, - &n_seqs, -- &variant_data); -- -- if (max_seq_len == 0 || n_seqs == 0) { -- g_warning ("cache size is not correct %d %d", max_seq_len, n_seqs); -+ &n_seqs_32bit, -+ &second_size, -+ &variant_data, -+ &variant_data_32bit_first, -+ &variant_data_32bit_second); -+ -+ if (max_seq_len == 0 || (n_seqs == 0 && n_seqs_32bit == 0)) { -+ g_warning ("cache size is not correct %d %d %d", -+ max_seq_len, n_seqs, n_seqs_32bit); - goto out_load_cache; - } - -- data = g_variant_get_fixed_array (variant_data, -- &data_length, -- sizeof (guint16)); -+ if (n_seqs && variant_data) { -+ data = g_variant_get_fixed_array (variant_data, -+ &data_length, -+ sizeof (guint16)); -+ } - index_stride = max_seq_len + 2; - -- if (data == NULL) { -- g_warning ("cache data is null."); -- goto out_load_cache; -- } -- if (data_length != (gsize) index_stride * n_seqs) { -+ if (data_length != (gsize)index_stride * n_seqs) { - g_warning ("cache size is not correct %d %d %lu", - max_seq_len, n_seqs, data_length); - goto out_load_cache; - } - -- retval = g_new0 (IBusComposeTable, 1); -- retval->data = g_new (guint16, data_length); -- memcpy (retval->data, data, data_length * sizeof (guint16)); -+ retval = g_new0 (IBusComposeTableEx, 1); -+ if (data_length) { -+ retval->data = g_new (guint16, data_length); -+ memcpy (retval->data, data, data_length * sizeof (guint16)); -+ } - retval->max_seq_len = max_seq_len; - retval->n_seqs = n_seqs; - -+ if (n_seqs_32bit && !second_size) { -+ g_warning ("32bit key sequences are loaded but the values " \ -+ "could not be loaded."); -+ goto out_load_cache; -+ } -+ if (!n_seqs_32bit && second_size) { -+ g_warning ("32bit key sequences could not loaded but the values " \ -+ "are loaded."); -+ goto out_load_cache; -+ } -+ -+ data_length = 0; -+ if (n_seqs_32bit && variant_data_32bit_first) { -+ data_32bit_first = g_variant_get_fixed_array (variant_data_32bit_first, -+ &data_length, -+ sizeof (guint16)); -+ if (data_length != (gsize) index_stride * n_seqs_32bit) { -+ g_warning ("32bit cache size is not correct %d %d %lu", -+ max_seq_len, n_seqs_32bit, data_length); -+ goto out_load_cache; -+ } -+ } -+ if (!data && !data_32bit_first) { -+ g_warning ("cache data is null."); -+ goto out_load_cache; -+ } -+ if (data_length) { -+ retval->priv = g_new0 (IBusComposeTablePrivate, 1); -+ retval->priv->data_first = g_new (guint16, data_length); -+ memcpy (retval->priv->data_first, -+ data_32bit_first, data_length * sizeof (guint16)); -+ retval->priv->first_n_seqs = n_seqs_32bit; -+ } -+ -+ data_length = 0; -+ if (second_size && variant_data_32bit_second) { -+ data_32bit_second = g_variant_get_fixed_array ( -+ variant_data_32bit_second, -+ &data_length, -+ sizeof (guint32)); -+ if (data_length != (gsize) second_size) { -+ g_warning ("32bit cache size is not correct %d %d", -+ max_seq_len, second_size); -+ goto out_load_cache; -+ } -+ } -+ if (data_length) { -+ retval->priv->data_second = g_new (guint32, data_length); -+ memcpy (retval->priv->data_second, -+ data_32bit_second, data_length * sizeof (guint32)); -+ retval->priv->second_size = second_size; -+ } -+ - - out_load_cache: -- if (variant_data) -- g_variant_unref (variant_data); -- if (variant_table) -- g_variant_unref (variant_table); -+ g_clear_pointer (&variant_data, g_variant_unref); -+ g_clear_pointer (&variant_data_32bit_first, g_variant_unref); -+ g_clear_pointer (&variant_data_32bit_second, g_variant_unref); -+ g_clear_pointer (&variant_table, g_variant_unref); - return retval; - } - --static IBusComposeTable * -+ -+static IBusComposeTableEx * - ibus_compose_table_load_cache (const gchar *compose_file) - { -- IBusComposeTable *retval = NULL; -+ IBusComposeTableEx *retval = NULL; - guint32 hash; - gchar *path = NULL; - gchar *contents = NULL; -@@ -712,8 +861,9 @@ ibus_compose_table_load_cache (const gchar *compose_file) - return retval; - } - -+ - static void --ibus_compose_table_save_cache (IBusComposeTable *compose_table) -+ibus_compose_table_save_cache (IBusComposeTableEx *compose_table) - { - gchar *path = NULL; - GVariant *variant_table = NULL; -@@ -742,67 +892,119 @@ out_save_cache: - g_free (path); - } - --static IBusComposeTable * -+ -+static IBusComposeTableEx * - ibus_compose_table_new_with_list (GList *compose_list, - int max_compose_len, - int n_index_stride, - guint32 hash) - { -- guint length; -- guint n = 0; -+ gsize s_size_total, s_size_16bit, v_size_32bit, v_index_32bit; -+ guint n = 0, m = 0; - int i, j; - guint16 *ibus_compose_seqs = NULL; -+ guint16 *ibus_compose_seqs_32bit_first = NULL; -+ guint32 *ibus_compose_seqs_32bit_second = NULL; - GList *list; -- IBusComposeData *compose_data; -- IBusComposeTable *retval = NULL; -+ IBusComposeData *compose_data = NULL; -+ IBusComposeTableEx *retval = NULL; - - g_return_val_if_fail (compose_list != NULL, NULL); - -- length = g_list_length (compose_list); -+ s_size_total = g_list_length (compose_list); -+ s_size_16bit = s_size_total; -+ v_size_32bit = 0; -+ -+ for (list = compose_list; list != NULL; list = list->next) { -+ compose_data = list->data; -+ if (unichar_length (compose_data->values) > 1 || -+ compose_data->values[0] >= 0xFFFF) { -+ --s_size_16bit; -+ v_size_32bit += unichar_length (compose_data->values); -+ } -+ } - -- ibus_compose_seqs = g_new0 (guint16, length * n_index_stride); -+ if (s_size_16bit) -+ ibus_compose_seqs = g_new (guint16, s_size_16bit * n_index_stride); -+ if (s_size_total > s_size_16bit) { -+ ibus_compose_seqs_32bit_first = -+ g_new (guint16, -+ (s_size_total - s_size_16bit) * n_index_stride); -+ ibus_compose_seqs_32bit_second = g_new (guint32, v_size_32bit); -+ } - -+ v_index_32bit = 0; - for (list = compose_list; list != NULL; list = list->next) { -+ gboolean is_32bit = FALSE; - compose_data = list->data; -+ -+ is_32bit = unichar_length (compose_data->values) > 1 ? TRUE : -+ compose_data->values[0] >= 0xFFFF ? TRUE : FALSE; - for (i = 0; i < max_compose_len; i++) { - if (compose_data->sequence[i] == 0) { -- for (j = i; j < max_compose_len; j++) -- ibus_compose_seqs[n++] = 0; -+ for (j = i; j < max_compose_len; j++) { -+ if (is_32bit) -+ ibus_compose_seqs_32bit_first[m++] = 0; -+ else -+ ibus_compose_seqs[n++] = 0; -+ } - break; - } -- ibus_compose_seqs[n++] = (guint16) compose_data->sequence[i]; -+ if (is_32bit) { -+ ibus_compose_seqs_32bit_first[m++] = -+ (guint16) compose_data->sequence[i]; -+ } else { -+ ibus_compose_seqs[n++] = (guint16) compose_data->sequence[i]; -+ } -+ } -+ if (is_32bit) { -+ for (j = 0; compose_data->values[j]; j++) { -+ ibus_compose_seqs_32bit_second[v_index_32bit + j] = -+ compose_data->values[j]; -+ } -+ ibus_compose_seqs_32bit_first[m++] = j; -+ ibus_compose_seqs_32bit_first[m++] = v_index_32bit; -+ v_index_32bit += j; -+ } else { -+ ibus_compose_seqs[n++] = (guint16) compose_data->values[0]; -+ ibus_compose_seqs[n++] = 0; - } -- ibus_compose_seqs[n++] = (guint16) compose_data->value[0]; -- ibus_compose_seqs[n++] = (guint16) compose_data->value[1]; - } - -- retval = g_new0 (IBusComposeTable, 1); -+ retval = g_new0 (IBusComposeTableEx, 1); - retval->data = ibus_compose_seqs; - retval->max_seq_len = max_compose_len; -- retval->n_seqs = length; -+ retval->n_seqs = s_size_16bit; - retval->id = hash; -+ if (s_size_total > s_size_16bit) { -+ retval->priv = g_new0 (IBusComposeTablePrivate, 1); -+ retval->priv->data_first = ibus_compose_seqs_32bit_first; -+ retval->priv->data_second = ibus_compose_seqs_32bit_second; -+ retval->priv->first_n_seqs = s_size_total - s_size_16bit; -+ retval->priv->second_size = v_size_32bit; -+ } - - return retval; - } - --IBusComposeTable * -+ -+IBusComposeTableEx * - ibus_compose_table_new_with_file (const gchar *compose_file) - { - GList *compose_list = NULL; -- IBusComposeTable *compose_table; -+ IBusComposeTableEx *compose_table; - int max_compose_len = 0; - int n_index_stride = 0; - - g_assert (compose_file != NULL); - -- compose_list = ibus_compose_list_parse_file (compose_file); -+ compose_list = ibus_compose_list_parse_file (compose_file, -+ &max_compose_len); - if (compose_list == NULL) - return NULL; -- compose_list = ibus_compose_list_check_duplicated (compose_list); -- compose_list = ibus_compose_list_check_uint16 (compose_list); -- compose_list = ibus_compose_list_format_for_gtk (compose_list, -- &max_compose_len, -- &n_index_stride); -+ n_index_stride = max_compose_len + 2; -+ compose_list = ibus_compose_list_check_duplicated (compose_list, -+ max_compose_len); - compose_list = g_list_sort_with_data ( - compose_list, - (GCompareDataFunc) ibus_compose_data_compare, -@@ -814,9 +1016,8 @@ ibus_compose_table_new_with_file (const gchar *compose_file) - return NULL; - } - -- if (g_getenv ("IBUS_COMPOSE_TABLE_PRINT") != NULL) { -+ if (g_getenv ("IBUS_COMPOSE_TABLE_PRINT") != NULL) - ibus_compose_list_print (compose_list, max_compose_len, n_index_stride); -- } - - compose_table = ibus_compose_table_new_with_list ( - compose_list, -@@ -830,6 +1031,7 @@ ibus_compose_table_new_with_file (const gchar *compose_file) - return compose_table; - } - -+ - /* if ibus_compose_seqs[N - 1] is an outputed compose character, - * ibus_compose_seqs[N * 2 - 1] is also an outputed compose character. - * and ibus_compose_seqs[0] to ibus_compose_seqs[0 + N - 3] are the -@@ -845,7 +1047,7 @@ ibus_compose_table_list_add_array (GSList *compose_tables, - gint n_seqs) - { - guint32 hash; -- IBusComposeTable *compose_table; -+ IBusComposeTableEx *compose_table; - int n_index_stride = max_seq_len + 2; - int length = n_index_stride * n_seqs; - int i; -@@ -866,7 +1068,7 @@ ibus_compose_table_list_add_array (GSList *compose_tables, - for (i = 0; i < length; i++) - ibus_compose_seqs[i] = data[i]; - -- compose_table = g_new (IBusComposeTable, 1); -+ compose_table = g_new (IBusComposeTableEx, 1); - compose_table->data = ibus_compose_seqs; - compose_table->max_seq_len = max_seq_len; - compose_table->n_seqs = n_seqs; -@@ -875,12 +1077,13 @@ ibus_compose_table_list_add_array (GSList *compose_tables, - return g_slist_prepend (compose_tables, compose_table); - } - -+ - GSList * - ibus_compose_table_list_add_file (GSList *compose_tables, - const gchar *compose_file) - { - guint32 hash; -- IBusComposeTable *compose_table; -+ IBusComposeTableEx *compose_table; - - g_return_val_if_fail (compose_file != NULL, compose_tables); - -diff --git a/src/ibuscomposetable.h b/src/ibuscomposetable.h -index 4bf89211..777c5f42 100644 ---- a/src/ibuscomposetable.h -+++ b/src/ibuscomposetable.h -@@ -29,6 +29,8 @@ - G_BEGIN_DECLS - - typedef struct _IBusComposeTable IBusComposeTable; -+typedef struct _IBusComposeTableEx IBusComposeTableEx; -+typedef struct _IBusComposeTablePrivate IBusComposeTablePrivate; - typedef struct _IBusComposeTableCompact IBusComposeTableCompact; - typedef struct _IBusComposeTableCompactEx IBusComposeTableCompactEx; - typedef struct _IBusComposeTableCompactPrivate IBusComposeTableCompactPrivate; -@@ -41,6 +43,15 @@ struct _IBusComposeTable - guint32 id; - }; - -+struct _IBusComposeTableEx -+{ -+ IBusComposeTablePrivate *priv; -+ guint16 *data; -+ gint max_seq_len; -+ gint n_seqs; -+ guint32 id; -+}; -+ - struct _IBusComposeTableCompact - { - const guint16 *data; -@@ -51,22 +62,23 @@ struct _IBusComposeTableCompact - - struct _IBusComposeTableCompactEx - { -+ IBusComposeTableCompactPrivate *priv; - const guint16 *data; - gint max_seq_len; - gint n_index_size; - gint n_index_stride; -- IBusComposeTableCompactPrivate *priv; - }; - --IBusComposeTable *ibus_compose_table_new_with_file (const gchar *compose_file); --GSList *ibus_compose_table_list_add_array -+IBusComposeTableEx * -+ ibus_compose_table_new_with_file (const gchar *compose_file); -+GSList * ibus_compose_table_list_add_array - (GSList - *compose_tables, - const guint16 - *data, - gint max_seq_len, - gint n_seqs); --GSList *ibus_compose_table_list_add_file (GSList -+GSList * ibus_compose_table_list_add_file (GSList - *compose_tables, - const gchar *compose_file); - -diff --git a/src/ibusenginesimple.c b/src/ibusenginesimple.c -index fa4ddf5f..2242203c 100644 ---- a/src/ibusenginesimple.c -+++ b/src/ibusenginesimple.c -@@ -101,24 +101,24 @@ struct _IBusComposeTableCompactPrivate - * Assign the value of "Number of different first items" of compose-parse.py - * to n_seqs in IBusComposeTableCompact - */ --const IBusComposeTableCompactPrivate ibus_compose_table_compact_32bit_priv = { -+IBusComposeTableCompactPrivate ibus_compose_table_compact_32bit_priv = { - gtk_compose_seqs_compact_32bit_second - }; - - const IBusComposeTableCompactEx ibus_compose_table_compact = { -+ NULL, - gtk_compose_seqs_compact, - 5, - 30, -- 6, -- NULL -+ 6 - }; - - const IBusComposeTableCompactEx ibus_compose_table_compact_32bit = { -+ &ibus_compose_table_compact_32bit_priv, - gtk_compose_seqs_compact_32bit_first, - 5, - 9, -- 6, -- &ibus_compose_table_compact_32bit_priv -+ 6 - }; - - static GSList *global_tables; -@@ -630,13 +630,15 @@ compare_seq (const void *key, const void *value) - - - static gboolean --check_table (IBusEngineSimple *simple, -- const IBusComposeTable *table, -- gint n_compose) -+check_table (IBusEngineSimple *simple, -+ const IBusComposeTableEx *table, -+ gint n_compose, -+ gboolean is_32bit) - { -- // g_debug("check_table"); - IBusEngineSimplePrivate *priv = simple->priv; - gint row_stride = table->max_seq_len + 2; -+ guint16 *data_first; -+ int n_seqs; - guint16 *seq; - - g_assert (IBUS_IS_ENGINE_SIMPLE (simple)); -@@ -645,8 +647,17 @@ check_table (IBusEngineSimple *simple, - if (n_compose > table->max_seq_len) - return FALSE; - -+ if (is_32bit) { -+ if (!table->priv) -+ return FALSE; -+ data_first = table->priv->data_first; -+ n_seqs = table->priv->first_n_seqs; -+ } else { -+ data_first = table->data; -+ n_seqs = table->n_seqs; -+ } - seq = bsearch (priv->compose_buffer, -- table->data, table->n_seqs, -+ data_first, n_seqs, - sizeof (guint16) * row_stride, - compare_seq); - -@@ -660,7 +671,7 @@ check_table (IBusEngineSimple *simple, - /* Back up to the first sequence that matches to make sure - * we find the exact match if their is one. - */ -- while (seq > table->data) { -+ while (seq > data_first) { - prev_seq = seq - row_stride; - if (compare_seq (priv->compose_buffer, prev_seq) != 0) { - break; -@@ -671,14 +682,25 @@ check_table (IBusEngineSimple *simple, - /* complete sequence */ - if (n_compose == table->max_seq_len || seq[n_compose] == 0) { - guint16 *next_seq; -- gunichar value = -- 0x10000 * seq[table->max_seq_len] + seq[table->max_seq_len + 1]; -+ gunichar value = 0; -+ int num = 0; -+ int index = 0; -+ gchar *output_str = NULL; -+ GError *error = NULL; -+ -+ if (is_32bit) { -+ num = seq[table->max_seq_len]; -+ index = seq[table->max_seq_len + 1]; -+ value = table->priv->data_second[index]; -+ } else { -+ value = seq[table->max_seq_len]; -+ } - - /* We found a tentative match. See if there are any longer - * sequences containing this subsequence - */ - next_seq = seq + row_stride; -- if (next_seq < table->data + row_stride * table->n_seqs) { -+ if (next_seq < data_first + row_stride * n_seqs) { - if (compare_seq (priv->compose_buffer, next_seq) == 0) { - priv->tentative_match = value; - priv->tentative_match_len = n_compose; -@@ -689,9 +711,21 @@ check_table (IBusEngineSimple *simple, - } - } - -- ibus_engine_simple_commit_char (simple, value); -+ if (is_32bit) { -+ output_str = g_ucs4_to_utf8 (table->priv->data_second + index, -+ num, NULL, NULL, &error); -+ if (output_str) { -+ ibus_engine_simple_commit_str(simple, output_str); -+ g_free (output_str); -+ } else { -+ g_warning ("Failed to output multiple characters: %s", -+ error->message); -+ g_error_free (error); -+ } -+ } else { -+ ibus_engine_simple_commit_char (simple, value); -+ } - priv->compose_buffer[0] = 0; -- // g_debug ("U+%04X\n", value); - } - ibus_engine_simple_update_preedit_text (simple); - return TRUE; -@@ -754,10 +788,10 @@ ibus_check_compact_table (const IBusComposeTableCompactEx *table, - - if (seq_index[i + 1] - seq_index[i] > 0) { - seq = bsearch (compose_buffer + 1, -- table->data + seq_index[i], -- (seq_index[i + 1] - seq_index[i]) / row_stride, -- sizeof (guint16) * row_stride, -- compare_seq); -+ table->data + seq_index[i], -+ (seq_index[i + 1] - seq_index[i]) / row_stride, -+ sizeof (guint16) * row_stride, -+ compare_seq); - if (seq) { - if (i == n_compose - 1) - break; -@@ -1148,8 +1182,15 @@ ibus_engine_simple_check_all_compose_table (IBusEngineSimple *simple, - - while (list) { - if (check_table (simple, -- (IBusComposeTable *)list->data, -- n_compose)) { -+ (IBusComposeTableEx *)list->data, -+ n_compose, -+ FALSE)) { -+ return TRUE; -+ } -+ if (check_table (simple, -+ (IBusComposeTableEx *)list->data, -+ n_compose, -+ TRUE)) { - return TRUE; - } - list = list->next; -@@ -1178,12 +1219,12 @@ ibus_engine_simple_check_all_compose_table (IBusEngineSimple *simple, - if (output_str) { - ibus_engine_simple_commit_str (simple, output_str); - g_free (output_str); -- g_free (output_chars); - } else { - g_warning ("Failed to output multiple characters: %s", - error->message); - g_error_free (error); - } -+ g_free (output_chars); - priv->compose_buffer[0] = 0; - } - -diff --git a/src/ibusenginesimple.h b/src/ibusenginesimple.h -index a5ef34fb..bd385e5b 100644 ---- a/src/ibusenginesimple.h -+++ b/src/ibusenginesimple.h -@@ -2,7 +2,7 @@ - /* vim:set et sts=4: */ - /* ibus - The Input Bus - * Copyright (C) 2008-2015 Peng Huang -- * Copyright (C) 2015-2017 Takao Fujiwara -+ * Copyright (C) 2015-2019 Takao Fujiwara - * Copyright (C) 2008-2017 Red Hat, Inc. - * - * This library is free software; you can redistribute it and/or -@@ -44,7 +44,7 @@ - - G_BEGIN_DECLS - --#define IBUS_MAX_COMPOSE_LEN 7 -+#define IBUS_MAX_COMPOSE_LEN 0xFF - - /* - * Type macros. -diff --git a/src/ibusenginesimpleprivate.h b/src/ibusenginesimpleprivate.h -index c86c5324..508d9344 100644 ---- a/src/ibusenginesimpleprivate.h -+++ b/src/ibusenginesimpleprivate.h -@@ -27,6 +27,15 @@ - G_BEGIN_DECLS - - extern const IBusComposeTableCompactEx ibus_compose_table_compact; -+extern const IBusComposeTableCompactEx ibus_compose_table_compact_32bit; -+ -+struct _IBusComposeTablePrivate -+{ -+ guint16 *data_first; -+ guint32 *data_second; -+ gsize first_n_seqs; -+ gsize second_size; -+}; - - gboolean ibus_check_algorithmically (const guint16 *compose_buffer, - gint n_compose, --- -2.21.0 - -From 82a728de97308f6ce36c814e30a292f96e76cc13 Mon Sep 17 00:00:00 2001 -From: fujiwarat -Date: Wed, 29 May 2019 17:37:35 +0900 -Subject: [PATCH 16/27] src: Change a fixed compose buffer to a variable one - -Now the long key sequence of the compose key is supported in both -system compose and user compose but the internal compose buffer is -still a fixed size. The compose buffer size will be a variable size -and the initial size will be 20 with this change. ---- - src/ibusenginesimple.c | 48 ++++++++++++++++++++++-------------------- - 1 file changed, 25 insertions(+), 23 deletions(-) - -diff --git a/src/ibusenginesimple.c b/src/ibusenginesimple.c -index 2242203c..0604693d 100644 ---- a/src/ibusenginesimple.c -+++ b/src/ibusenginesimple.c -@@ -44,29 +44,31 @@ - #include - - #define X11_DATADIR X11_DATA_PREFIX "/share/X11/locale" --#define EMOJI_SOURCE_LEN 100 - #define IBUS_ENGINE_SIMPLE_GET_PRIVATE(o) \ - (G_TYPE_INSTANCE_GET_PRIVATE ((o), IBUS_TYPE_ENGINE_SIMPLE, IBusEngineSimplePrivate)) - - #define SET_COMPOSE_BUFFER_ELEMENT_NEXT(buffer, index, value) { \ -- if ((index) < EMOJI_SOURCE_LEN) { \ -+ if ((index) >= COMPOSE_BUFFER_SIZE && \ -+ COMPOSE_BUFFER_SIZE < IBUS_MAX_COMPOSE_LEN) { \ -+ COMPOSE_BUFFER_SIZE = ((index) + 10) < IBUS_MAX_COMPOSE_LEN \ -+ ? ((index) + 10) : IBUS_MAX_COMPOSE_LEN; \ -+ (buffer) = g_renew (guint16, (buffer), COMPOSE_BUFFER_SIZE + 1);\ -+ } \ -+ if ((index) < COMPOSE_BUFFER_SIZE) { \ - (buffer)[(index)] = (value); \ - (index) += 1; \ - } \ - } - - #define SET_COMPOSE_BUFFER_ELEMENT_END(buffer, index, value) { \ -- if ((index) >= EMOJI_SOURCE_LEN) { \ -- (index) = EMOJI_SOURCE_LEN; \ -- (buffer)[EMOJI_SOURCE_LEN - 1] = (value); \ -- } else { \ -- (buffer)[(index)] = (value); \ -- } \ -+ if ((index) > COMPOSE_BUFFER_SIZE) \ -+ (index) = COMPOSE_BUFFER_SIZE; \ -+ (buffer)[(index)] = (value); \ - } - - #define CHECK_COMPOSE_BUFFER_LENGTH(index) { \ -- if ((index) > EMOJI_SOURCE_LEN) \ -- (index) = EMOJI_SOURCE_LEN; \ -+ if ((index) > COMPOSE_BUFFER_SIZE) \ -+ (index) = COMPOSE_BUFFER_SIZE; \ - } - - typedef struct { -@@ -75,7 +77,7 @@ typedef struct { - } IBusEngineDict; - - struct _IBusEngineSimplePrivate { -- guint16 compose_buffer[EMOJI_SOURCE_LEN]; -+ guint16 *compose_buffer; - gunichar tentative_match; - gchar *tentative_emoji; - gint tentative_match_len; -@@ -121,6 +123,7 @@ const IBusComposeTableCompactEx ibus_compose_table_compact_32bit = { - 6 - }; - -+guint COMPOSE_BUFFER_SIZE = 20; - static GSList *global_tables; - - /* functions prototype */ -@@ -175,6 +178,7 @@ static void - ibus_engine_simple_init (IBusEngineSimple *simple) - { - simple->priv = IBUS_ENGINE_SIMPLE_GET_PRIVATE (simple); -+ simple->priv->compose_buffer = g_new (guint16, COMPOSE_BUFFER_SIZE + 1); - simple->priv->hex_mode_enabled = - g_getenv("IBUS_ENABLE_CTRL_SHIFT_U") != NULL || - g_getenv("IBUS_ENABLE_CONTROL_SHIFT_U") != NULL; -@@ -193,7 +197,8 @@ ibus_engine_simple_destroy (IBusEngineSimple *simple) - priv->emoji_dict = NULL; - } - -- g_clear_pointer (&priv->lookup_table, g_object_unref); -+ g_clear_object (&priv->lookup_table); -+ g_clear_pointer (&priv->compose_buffer, g_free); - g_clear_pointer (&priv->tentative_emoji, g_free); - - IBUS_OBJECT_CLASS(ibus_engine_simple_parent_class)->destroy ( -@@ -356,7 +361,7 @@ ibus_engine_simple_update_preedit_text (IBusEngineSimple *simple) - { - IBusEngineSimplePrivate *priv = simple->priv; - -- gunichar outbuf[EMOJI_SOURCE_LEN + 1]; -+ gunichar outbuf[COMPOSE_BUFFER_SIZE + 1]; - int len = 0; - - if (priv->in_hex_sequence || priv->in_emoji_sequence) { -@@ -376,10 +381,7 @@ ibus_engine_simple_update_preedit_text (IBusEngineSimple *simple) - ++hexchars; - } - -- if (priv->in_hex_sequence) -- g_assert (len <= IBUS_MAX_COMPOSE_LEN + 1); -- else -- g_assert (len <= EMOJI_SOURCE_LEN + 1); -+ g_assert (len <= COMPOSE_BUFFER_SIZE); - } else if (priv->tentative_match) { - outbuf[len++] = priv->tentative_match; - } else if (priv->tentative_emoji && *priv->tentative_emoji) { -@@ -406,7 +408,7 @@ ibus_engine_simple_update_preedit_text (IBusEngineSimple *simple) - ++len; - ++hexchars; - } -- g_assert (len <= IBUS_MAX_COMPOSE_LEN + 1); -+ g_assert (len <= IBUS_MAX_COMPOSE_LEN); - } - - outbuf[len] = L'\0'; -@@ -1265,11 +1267,11 @@ ibus_engine_simple_process_key_event (IBusEngine *engine, - guint printable_keyval; - gint i; - -- while (n_compose < EMOJI_SOURCE_LEN && priv->compose_buffer[n_compose] != 0) -+ while (n_compose <= COMPOSE_BUFFER_SIZE && priv->compose_buffer[n_compose] != 0) - n_compose++; -- if (n_compose >= EMOJI_SOURCE_LEN) { -+ if (n_compose > COMPOSE_BUFFER_SIZE) { - g_warning ("copmose table buffer is full."); -- n_compose = EMOJI_SOURCE_LEN - 1; -+ n_compose = COMPOSE_BUFFER_SIZE; - } - - if (modifiers & IBUS_RELEASE_MASK) { -@@ -1348,8 +1350,8 @@ ibus_engine_simple_process_key_event (IBusEngine *engine, - /* gtkimcontextsimple causes a buffer overflow in priv->compose_buffer. - * Add the check code here. - */ -- if ((n_compose >= IBUS_MAX_COMPOSE_LEN && priv->in_hex_sequence) || -- (n_compose >= EMOJI_SOURCE_LEN && priv->in_emoji_sequence)) { -+ if (n_compose > COMPOSE_BUFFER_SIZE && -+ (priv->in_hex_sequence || priv->in_emoji_sequence)) { - if (is_backspace) { - priv->compose_buffer[--n_compose] = 0; - } --- -2.21.0 - -From 80254484071eb57e1152579b60ec8a95522ebc22 Mon Sep 17 00:00:00 2001 -From: fujiwarat -Date: Mon, 24 Jun 2019 17:28:55 +0900 -Subject: [PATCH 17/27] src: s/iso_639-3/iso_639_3/ in ibus_get_language_name() - -iso-codes 3.66 has iso_639_3.xml only but 3.67 has both iso_639_3.xml -and iso_639-3.xml. RHEL 7 uses iso-codes 3.46. - -BUG=https://github.com/ibus/ibus/issues/2101 ---- - ibus/lang.py | 6 +++--- - src/ibusutil.c | 10 +++++----- - 2 files changed, 8 insertions(+), 8 deletions(-) - -diff --git a/ibus/lang.py b/ibus/lang.py -index 64324bd8..238a9172 100644 ---- a/ibus/lang.py -+++ b/ibus/lang.py -@@ -3,7 +3,7 @@ - # ibus - The Input Bus - # - # Copyright (c) 2007-2010 Peng Huang --# Copyright (c) 2007-2010 Red Hat, Inc. -+# Copyright (c) 2007-2019 Red Hat, Inc. - # - # This library is free software; you can redistribute it and/or - # modify it under the terms of the GNU Lesser General Public -@@ -36,7 +36,7 @@ def get_language_name(_locale): - lang = lang.lower() - if lang in __languages_dict: - lang = __languages_dict[lang] -- lang = gettext.dgettext("iso_639-3", lang) -+ lang = gettext.dgettext("iso_639_3", lang) - else: - lang = _(u"Other") - lang = gettext.dgettext("ibus", lang) -@@ -62,7 +62,7 @@ def __char_data(data): - def __load_lang(): - import os - import _config -- iso_639_3_xml = os.path.join(_config.ISOCODES_PREFIX, "share/xml/iso-codes/iso_639-3.xml") -+ iso_639_3_xml = os.path.join(_config.ISOCODES_PREFIX, "share/xml/iso-codes/iso_639_3.xml") - p = xml.parsers.expat.ParserCreate() - p.StartElementHandler = __start_element - p.EndElementHandler = __end_element -diff --git a/src/ibusutil.c b/src/ibusutil.c -index 9d003e2e..88c054a2 100644 ---- a/src/ibusutil.c -+++ b/src/ibusutil.c -@@ -2,7 +2,7 @@ - /* vim:set et sts=4: */ - /* bus - The Input Bus - * Copyright (C) 2008-2015 Peng Huang -- * Copyright (C) 2010-2018 Takao Fujiwara -+ * Copyright (C) 2010-2019 Takao Fujiwara - * Copyright (C) 2008-2016 Red Hat, Inc. - * - * This library is free software; you can redistribute it and/or -@@ -99,14 +99,14 @@ _load_lang() - struct stat buf; - - #ifdef ENABLE_NLS -- bindtextdomain ("iso_639-3", LOCALEDIR); -- bind_textdomain_codeset ("iso_639-3", "UTF-8"); -+ bindtextdomain ("iso_639_3", LOCALEDIR); -+ bind_textdomain_codeset ("iso_639_3", "UTF-8"); - #endif - - __languages_dict = g_hash_table_new_full (g_str_hash, - g_str_equal, g_free, g_free); - filename = g_build_filename (ISOCODES_PREFIX, -- "share/xml/iso-codes/iso_639-3.xml", -+ "share/xml/iso-codes/iso_639_3.xml", - NULL); - if (g_stat (filename, &buf) != 0) { - g_warning ("Can not get stat of file %s", filename); -@@ -197,7 +197,7 @@ ibus_get_language_name (const gchar *_locale) - if (g_strcmp0 (raw, "Other") == 0) - return g_strdup (dgettext (GETTEXT_PACKAGE, N_("Other"))); - else -- translation = dgettext ("iso_639-3", raw); -+ translation = dgettext ("iso_639_3", raw); - #else - translation = raw; - #endif --- -2.21.0 - -From 69e443c07f944b3137aada31dcdbcb49728ff805 Mon Sep 17 00:00:00 2001 -From: fujiwarat -Date: Fri, 28 Jun 2019 20:43:36 +0900 -Subject: [PATCH 18/27] bus: Disable panel extension for gnome-initial-setup - user - -gnome-initial-setup user is executed before the post setup is finished -after the installation is finished. ---- - bus/main.c | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/bus/main.c b/bus/main.c -index 6f1f39ca..3223d541 100644 ---- a/bus/main.c -+++ b/bus/main.c -@@ -49,6 +49,7 @@ static gchar *desktop = "gnome"; - - static gchar *panel_extension_disable_users[] = { - "gdm", -+ "gnome-initial-setup", - "liveuser" - }; - --- -2.21.0 - -From c360cbd830943a4bfb0ece9cc07b99a426dc2121 Mon Sep 17 00:00:00 2001 -From: fujiwarat -Date: Mon, 9 Apr 2018 11:57:09 +0900 -Subject: [PATCH] src/tests: Add ibus-compose.env - ---- - src/tests/ibus-compose.env | 3 +++ - 1 file changed, 3 insertions(+) - create mode 100644 src/tests/ibus-compose.env - -diff --git a/src/tests/ibus-compose.env b/src/tests/ibus-compose.env -new file mode 100644 -index 00000000..734ab8fa ---- /dev/null -+++ b/src/tests/ibus-compose.env -@@ -0,0 +1,3 @@ -+LANG=el_GR.UTF-8 -+LANG=fi_FI.UTF-8 -+LANG=pt_BR.UTF-8 --- -2.21.0 - -From ac492f31b435b9464d591094d470bc94027168e8 Mon Sep 17 00:00:00 2001 -From: fujiwarat -Date: Fri, 28 Jun 2019 21:15:07 +0900 -Subject: [PATCH 19/27] src/tests: Fix ibus-compose for IBusComposeTableEx - -Recently IBusComposeTablEx has been integrated and the return value of -ibus_compose_table_new_with_file() is also changed and ibus-compose -needs to be updated. - -Clear IBusComposeTablePrivate in ibus_compose_table_list_add_array() -for the ibus-compose testing. - -Clear compose_buffer in IBusEngineSimple. - -Use g_get_language_names_with_category instead() of g_get_locale_variants(). - -Add ibus-compose.emoji for the tests of long compose sequences and -multiple compose output characters. - -IBUS_COMPOSE_CACHE_DIR variable is added for the temporary caches. ---- - src/ibuscomposetable.c | 15 ++-- - src/ibuscomposetable.h | 4 + - src/ibusenginesimple.c | 14 ++- - src/tests/Makefile.am | 2 +- - src/tests/ibus-compose.c | 163 +++++++++++++++++++++++++++-------- - src/tests/ibus-compose.emoji | 11 +++ - src/tests/ibus-compose.env | 1 + - src/tests/runtest | 4 +- - 8 files changed, 174 insertions(+), 47 deletions(-) - create mode 100644 src/tests/ibus-compose.emoji - -diff --git a/src/ibuscomposetable.c b/src/ibuscomposetable.c -index 4ac54e25..5fd37f10 100644 ---- a/src/ibuscomposetable.c -+++ b/src/ibuscomposetable.c -@@ -497,13 +497,18 @@ static gchar * - ibus_compose_hash_get_cache_path (guint32 hash) - { - gchar *basename = NULL; -+ const gchar *cache_dir; - gchar *dir = NULL; - gchar *path = NULL; - - basename = g_strdup_printf ("%08x.cache", hash); - -- dir = g_build_filename (g_get_user_cache_dir (), -- "ibus", "compose", NULL); -+ if ((cache_dir = g_getenv ("IBUS_COMPOSE_CACHE_DIR"))) { -+ dir = g_strdup (cache_dir); -+ } else { -+ dir = g_build_filename (g_get_user_cache_dir (), -+ "ibus", "compose", NULL); -+ } - path = g_build_filename (dir, basename, NULL); - if (g_mkdir_with_parents (dir, 0755) != 0) { - g_warning ("Failed to mkdir %s", dir); -@@ -817,7 +822,7 @@ out_load_cache: - } - - --static IBusComposeTableEx * -+IBusComposeTableEx * - ibus_compose_table_load_cache (const gchar *compose_file) - { - IBusComposeTableEx *retval = NULL; -@@ -862,7 +867,7 @@ ibus_compose_table_load_cache (const gchar *compose_file) - } - - --static void -+void - ibus_compose_table_save_cache (IBusComposeTableEx *compose_table) - { - gchar *path = NULL; -@@ -1068,7 +1073,7 @@ ibus_compose_table_list_add_array (GSList *compose_tables, - for (i = 0; i < length; i++) - ibus_compose_seqs[i] = data[i]; - -- compose_table = g_new (IBusComposeTableEx, 1); -+ compose_table = g_new0 (IBusComposeTableEx, 1); - compose_table->data = ibus_compose_seqs; - compose_table->max_seq_len = max_seq_len; - compose_table->n_seqs = n_seqs; -diff --git a/src/ibuscomposetable.h b/src/ibuscomposetable.h -index 777c5f42..b60e53fe 100644 ---- a/src/ibuscomposetable.h -+++ b/src/ibuscomposetable.h -@@ -71,6 +71,10 @@ struct _IBusComposeTableCompactEx - - IBusComposeTableEx * - ibus_compose_table_new_with_file (const gchar *compose_file); -+IBusComposeTableEx * -+ ibus_compose_table_load_cache (const gchar *compose_file); -+void ibus_compose_table_save_cache (IBusComposeTableEx -+ *compose_table); - GSList * ibus_compose_table_list_add_array - (GSList - *compose_tables, -diff --git a/src/ibusenginesimple.c b/src/ibusenginesimple.c -index 0604693d..b623e149 100644 ---- a/src/ibusenginesimple.c -+++ b/src/ibusenginesimple.c -@@ -178,7 +178,7 @@ static void - ibus_engine_simple_init (IBusEngineSimple *simple) - { - simple->priv = IBUS_ENGINE_SIMPLE_GET_PRIVATE (simple); -- simple->priv->compose_buffer = g_new (guint16, COMPOSE_BUFFER_SIZE + 1); -+ simple->priv->compose_buffer = g_new0(guint16, COMPOSE_BUFFER_SIZE + 1); - simple->priv->hex_mode_enabled = - g_getenv("IBUS_ENABLE_CTRL_SHIFT_U") != NULL || - g_getenv("IBUS_ENABLE_CONTROL_SHIFT_U") != NULL; -@@ -1747,9 +1747,14 @@ ibus_engine_simple_add_table_by_locale (IBusEngineSimple *simple, - gboolean retval = TRUE; - gchar *path = NULL; - const gchar *home; -+#if GLIB_CHECK_VERSION (2, 58, 0) -+ const gchar * const *langs; -+ const gchar * const *lang = NULL; -+#else - const gchar *_locale; - gchar **langs = NULL; - gchar **lang = NULL; -+#endif - gchar * const sys_langs[] = { "el_gr", "fi_fi", "pt_br", NULL }; - gchar * const *sys_lang = NULL; - -@@ -1787,6 +1792,9 @@ ibus_engine_simple_add_table_by_locale (IBusEngineSimple *simple, - g_free (path); - path = NULL; - -+#if GLIB_CHECK_VERSION (2, 58, 0) -+ langs = g_get_language_names_with_category ("LC_CTYPE"); -+#else - _locale = g_getenv ("LC_CTYPE"); - if (_locale == NULL) - _locale = g_getenv ("LANG"); -@@ -1795,6 +1803,7 @@ ibus_engine_simple_add_table_by_locale (IBusEngineSimple *simple, - - /* FIXME: https://bugzilla.gnome.org/show_bug.cgi?id=751826 */ - langs = g_get_locale_variants (_locale); -+#endif - - for (lang = langs; *lang; lang++) { - if (g_str_has_prefix (*lang, "en_US")) -@@ -1821,7 +1830,9 @@ ibus_engine_simple_add_table_by_locale (IBusEngineSimple *simple, - path = NULL; - } - -+#if !GLIB_CHECK_VERSION (2, 58, 0) - g_strfreev (langs); -+#endif - - if (path != NULL) - ibus_engine_simple_add_compose_file (simple, path); -@@ -1853,3 +1864,4 @@ ibus_engine_simple_add_compose_file (IBusEngineSimple *simple, - compose_file); - return TRUE; - } -+ -diff --git a/src/tests/Makefile.am b/src/tests/Makefile.am -index e2ff5ea7..a58504a3 100644 ---- a/src/tests/Makefile.am -+++ b/src/tests/Makefile.am -@@ -78,7 +78,7 @@ TESTS_ENVIRONMENT = \ - - LOG_COMPILER = $(srcdir)/runtest - --EXTRA_DIST = runtest ibus-compose.env -+EXTRA_DIST = runtest ibus-compose.emoji ibus-compose.env - - ibus_bus_SOURCES = ibus-bus.c - ibus_bus_LDADD = $(prog_ldadd) -diff --git a/src/tests/ibus-compose.c b/src/tests/ibus-compose.c -index aabb36ac..e1911b32 100644 ---- a/src/tests/ibus-compose.c -+++ b/src/tests/ibus-compose.c -@@ -1,37 +1,36 @@ - #include - #include "ibus.h" - #include "ibuscomposetable.h" -+#include "ibusenginesimpleprivate.h" - - #define GREEN "\033[0;32m" - #define RED "\033[0;31m" - #define NC "\033[0m" - - IBusBus *m_bus; --IBusComposeTable *m_compose_table; -+gchar *m_compose_file; -+IBusComposeTableEx *m_compose_table; - IBusEngine *m_engine; -+gchar *m_srcdir; - int m_retval; - - static gboolean window_focus_in_event_cb (GtkWidget *entry, - GdkEventFocus *event, - gpointer data); - --static IBusEngine * --create_engine_cb (IBusFactory *factory, const gchar *name, gpointer data) -+ -+static gchar * -+get_compose_path () - { -- static int i = 1; -- gchar *engine_path = -- g_strdup_printf ("/org/freedesktop/IBus/engine/simpletest/%d", -- i++); -- gchar *compose_path = NULL; - const gchar * const *langs; - const gchar * const *l; -+ gchar *compose_path = NULL; - -- m_engine = ibus_engine_new_with_type (IBUS_TYPE_ENGINE_SIMPLE, -- name, -- engine_path, -- ibus_bus_get_connection (m_bus)); -- g_free (engine_path); -+#if GLIB_CHECK_VERSION (2, 58, 0) -+ langs = g_get_language_names_with_category ("LC_CTYPE"); -+#else - langs = g_get_language_names (); -+#endif - for (l = langs; *l; l++) { - if (g_str_has_prefix (*l, "en_US")) - break; -@@ -46,18 +45,39 @@ create_engine_cb (IBusFactory *factory, const gchar *name, gpointer data) - g_free (compose_path); - compose_path = NULL; - } -+ -+ return compose_path; -+} -+ -+ -+static IBusEngine * -+create_engine_cb (IBusFactory *factory, -+ const gchar *name, -+ gpointer data) -+{ -+ static int i = 1; -+ gchar *engine_path = -+ g_strdup_printf ("/org/freedesktop/IBus/engine/simpletest/%d", -+ i++); -+ gchar *compose_path; -+ -+ m_engine = ibus_engine_new_with_type (IBUS_TYPE_ENGINE_SIMPLE, -+ name, -+ engine_path, -+ ibus_bus_get_connection (m_bus)); -+ g_free (engine_path); -+ if (m_compose_file) -+ compose_path = g_build_filename (m_srcdir, m_compose_file, NULL); -+ else -+ compose_path = get_compose_path (); - if (compose_path != NULL) { -- m_compose_table = ibus_compose_table_new_with_file (compose_path); -+ ibus_engine_simple_add_compose_file (IBUS_ENGINE_SIMPLE (m_engine), -+ compose_path); -+ m_compose_table = ibus_compose_table_load_cache (compose_path); - if (m_compose_table == NULL) - g_warning ("Your locale uses en_US compose table."); -- else -- ibus_engine_simple_add_table (IBUS_ENGINE_SIMPLE (m_engine), -- m_compose_table->data, -- m_compose_table->max_seq_len, -- m_compose_table->n_seqs); -- } else { -- g_warning ("Your locale uses en_US compose file."); - } -+ g_free (compose_path); - return m_engine; - } - -@@ -118,6 +138,7 @@ set_engine_cb (GObject *object, GAsyncResult *res, gpointer data) - GError *error = NULL; - int i, j; - int index_stride; -+ IBusComposeTablePrivate *priv; - - if (!ibus_bus_set_global_engine_async_finish (bus, res, &error)) { - g_warning ("set engine failed: %s", error->message); -@@ -149,6 +170,27 @@ set_engine_cb (GObject *object, GAsyncResult *res, gpointer data) - keyval, keycode, modifiers, &retval); - } - } -+ priv = m_compose_table->priv; -+ if (priv) { -+ for (i = 0; -+ i < (priv->first_n_seqs * index_stride); -+ i += index_stride) { -+ for (j = i; j < i + (index_stride - 1); j++) { -+ guint keyval = priv->data_first[j]; -+ guint keycode = 0; -+ guint modifiers = 0; -+ gboolean retval; -+ -+ if (keyval == 0) -+ break; -+ g_signal_emit_by_name (m_engine, "process-key-event", -+ keyval, keycode, modifiers, &retval); -+ modifiers |= IBUS_RELEASE_MASK; -+ g_signal_emit_by_name (m_engine, "process-key-event", -+ keyval, keycode, modifiers, &retval); -+ } -+ } -+ } - - g_signal_handlers_disconnect_by_func (entry, - G_CALLBACK (window_focus_in_event_cb), -@@ -183,41 +225,87 @@ window_inserted_text_cb (GtkEntryBuffer *buffer, - static int n_loop = 0; - #endif - static guint stride = 0; -+ static gboolean enable_32bit = FALSE; - guint i; - int seq; - gunichar code = g_utf8_get_char (chars); - const gchar *test; - GtkEntry *entry = GTK_ENTRY (data); -+ IBusComposeTablePrivate *priv; - - g_assert (m_compose_table != NULL); - -+ priv = m_compose_table->priv; -+ - #if !GTK_CHECK_VERSION (3, 22, 16) - if (n_loop % 2 == 1) { - n_loop = 0; - return; - } - #endif -- i = stride + (m_compose_table->max_seq_len + 2) - 1; -- seq = (i + 1) / (m_compose_table->max_seq_len + 2); -- if (m_compose_table->data[i] == code) { -- test = GREEN "PASS" NC; -+ i = stride + (m_compose_table->max_seq_len + 2) - 2; -+ seq = (i + 2) / (m_compose_table->max_seq_len + 2); -+ if (!enable_32bit) { -+ if (m_compose_table->data[i] == code) { -+ test = GREEN "PASS" NC; -+ } else { -+ test = RED "FAIL" NC; -+ m_retval = -1; -+ } -+ g_print ("%05d/%05d %s expected: %04X typed: %04X\n", -+ seq, -+ m_compose_table->n_seqs, -+ test, -+ m_compose_table->data[i], -+ code); - } else { -- test = RED "FAIL" NC; -- m_retval = -1; -+ const gchar *p = chars; -+ guint num = priv->data_first[i]; -+ guint index = priv->data_first[i + 1]; -+ guint j = 0; -+ gboolean valid_output = TRUE; -+ if (seq == 2) -+ g_print ("test\n"); -+ for (j = 0; j < num; j++) { -+ if (priv->data_second[index + j] != code) { -+ valid_output = FALSE; -+ break; -+ } -+ p = g_utf8_next_char (p); -+ code = g_utf8_get_char (p); -+ } -+ if (valid_output) { -+ test = GREEN "PASS" NC; -+ } else { -+ test = RED "FAIL" NC; -+ m_retval = -1; -+ } -+ g_print ("%05d/%05ld %s expected: %04X[%d] typed: %04X\n", -+ seq, -+ priv->first_n_seqs, -+ test, -+ valid_output ? priv->data_second[index] -+ : priv->data_second[index + j], -+ valid_output ? index + num : index + j, -+ valid_output ? g_utf8_get_char (chars) : code); - } -- g_print ("%05d/%05d %s expected: %04X typed: %04X\n", -- seq, -- m_compose_table->n_seqs, -- test, -- m_compose_table->data[i], -- code); -- -- if (seq == m_compose_table->n_seqs) { -+ -+ stride += m_compose_table->max_seq_len + 2; -+ -+ if (!enable_32bit && seq == m_compose_table->n_seqs) { -+ if (priv) { -+ enable_32bit = TRUE; -+ stride = 0; -+ } else { -+ gtk_main_quit (); -+ return; -+ } -+ } -+ if (enable_32bit && seq == priv->first_n_seqs) { - gtk_main_quit (); - return; - } - -- stride += m_compose_table->max_seq_len + 2; - #if !GTK_CHECK_VERSION (3, 22, 16) - n_loop++; - #endif -@@ -248,6 +336,9 @@ main (int argc, char *argv[]) - ibus_init (); - gtk_init (&argc, &argv); - -+ m_srcdir = argc > 1 ? g_strdup (argv[1]) : g_strdup ("."); -+ m_compose_file = g_strdup (g_getenv ("COMPOSE_FILE")); -+ - if (!register_ibus_engine ()) - return -1; - -diff --git a/src/tests/ibus-compose.emoji b/src/tests/ibus-compose.emoji -new file mode 100644 -index 00000000..7fbf82cf ---- /dev/null -+++ b/src/tests/ibus-compose.emoji -@@ -0,0 +1,11 @@ -+ : "♌" U264C # LEO -+ : "♍" U264D # VIRGO -+ : "∫" -+ : "∬" -+ : "🗼" -+

: "(゜∀゜)" -+ : "*・゜゜・*:.。..。.:*・゜(n‘Д‘)η゜・*:.。. .。.:*・ ゜゜・* !!!!!" -+ : "∭" -+ : "∮" -+ : "∯" -+ : "∰" -diff --git a/src/tests/ibus-compose.env b/src/tests/ibus-compose.env -index 734ab8fa..a9e289e4 100644 ---- a/src/tests/ibus-compose.env -+++ b/src/tests/ibus-compose.env -@@ -1,3 +1,4 @@ - LANG=el_GR.UTF-8 - LANG=fi_FI.UTF-8 - LANG=pt_BR.UTF-8 -+LANG=en_US.UTF-8 COMPOSE_FILE=ibus-compose.emoji -diff --git a/src/tests/runtest b/src/tests/runtest -index 4e980c71..35ccc5a0 100755 ---- a/src/tests/runtest -+++ b/src/tests/runtest -@@ -184,7 +184,9 @@ run_test_case() - export GTK_IM_MODULE=ibus - fi - -- "../$tst" ${1+"$@"} -+ export IBUS_COMPOSE_CACHE_DIR=$PWD -+ -+ "../$tst" ../$top_srcdir/src/tests ${1+"$@"} - - retval=`expr $retval \| $?` - --- -2.21.0 - -From 76dec798d5cf6cdaa96c3373f9c0e1cd13eb31f5 Mon Sep 17 00:00:00 2001 -From: fujiwarat -Date: Fri, 28 Jun 2019 21:28:32 +0900 -Subject: [PATCH 20/27] src/tests: Use GTest for ibus-compose - ---- - src/tests/ibus-compose.c | 45 ++++++++++++++++++++++++++++------------ - 1 file changed, 32 insertions(+), 13 deletions(-) - -diff --git a/src/tests/ibus-compose.c b/src/tests/ibus-compose.c -index e1911b32..09c687c2 100644 ---- a/src/tests/ibus-compose.c -+++ b/src/tests/ibus-compose.c -@@ -12,7 +12,6 @@ gchar *m_compose_file; - IBusComposeTableEx *m_compose_table; - IBusEngine *m_engine; - gchar *m_srcdir; --int m_retval; - - static gboolean window_focus_in_event_cb (GtkWidget *entry, - GdkEventFocus *event, -@@ -124,8 +123,7 @@ register_ibus_engine () - static gboolean - finit (gpointer data) - { -- m_retval = -1; -- g_warning ("time out"); -+ g_test_incomplete ("time out"); - gtk_main_quit (); - return FALSE; - } -@@ -141,7 +139,9 @@ set_engine_cb (GObject *object, GAsyncResult *res, gpointer data) - IBusComposeTablePrivate *priv; - - if (!ibus_bus_set_global_engine_async_finish (bus, res, &error)) { -- g_warning ("set engine failed: %s", error->message); -+ gchar *msg = g_strdup_printf ("set engine failed: %s", error->message); -+ g_test_incomplete (msg); -+ g_free (msg); - g_error_free (error); - return; - } -@@ -250,7 +250,7 @@ window_inserted_text_cb (GtkEntryBuffer *buffer, - test = GREEN "PASS" NC; - } else { - test = RED "FAIL" NC; -- m_retval = -1; -+ g_test_fail (); - } - g_print ("%05d/%05d %s expected: %04X typed: %04X\n", - seq, -@@ -278,7 +278,7 @@ window_inserted_text_cb (GtkEntryBuffer *buffer, - test = GREEN "PASS" NC; - } else { - test = RED "FAIL" NC; -- m_retval = -1; -+ g_test_fail (); - } - g_print ("%05d/%05ld %s expected: %04X[%d] typed: %04X\n", - seq, -@@ -330,20 +330,39 @@ create_window () - gtk_widget_show_all (window); - } - -+static void -+test_compose (void) -+{ -+ if (!register_ibus_engine ()) { -+ g_test_fail (); -+ return; -+ } -+ -+ create_window (); -+ gtk_main (); -+ -+} -+ - int - main (int argc, char *argv[]) - { -+ const gchar *test_name; -+ gchar *test_path; -+ - ibus_init (); -+ g_test_init (&argc, &argv, NULL); - gtk_init (&argc, &argv); - - m_srcdir = argc > 1 ? g_strdup (argv[1]) : g_strdup ("."); - m_compose_file = g_strdup (g_getenv ("COMPOSE_FILE")); -+#if GLIB_CHECK_VERSION (2, 58, 0) -+ test_name = g_get_language_names_with_category ("LC_CTYPE")[0]; -+#else -+ test_name = g_getenv ("LANG"); -+#endif -+ test_path = g_build_filename ("/ibus-compose", test_name, NULL); -+ g_test_add_func (test_path, test_compose); -+ g_free (test_path); - -- if (!register_ibus_engine ()) -- return -1; -- -- create_window (); -- gtk_main (); -- -- return m_retval; -+ return g_test_run (); - } --- -2.21.0 - -From 6bdc692e0dc72a9afae5407983859e88c16b4971 Mon Sep 17 00:00:00 2001 -From: fujiwarat -Date: Wed, 10 Jul 2019 18:18:04 +0900 -Subject: [PATCH 21/27] src: Support common_name in ISO 639 - -Nowadays "Bangla" is preferred to "Bengali" for BN language code -and iso_639*.xml describes it in "common_name" tag. - -BUG=https://github.com/ibus/ibus/issues/2104 ---- - src/ibusutil.c | 21 ++++++++++++++++----- - 1 file changed, 16 insertions(+), 5 deletions(-) - -diff --git a/src/ibusutil.c b/src/ibusutil.c -index 88c054a2..701984c7 100644 ---- a/src/ibusutil.c -+++ b/src/ibusutil.c -@@ -53,6 +53,7 @@ _iso_codes_parse_xml_node (XMLNode *node) - XMLNode *sub_node = (XMLNode *)p->data; - gchar **attributes = NULL; - int i, j; -+ gboolean has_common_name = FALSE; - struct { - const gchar *key; - gchar *value; -@@ -68,14 +69,24 @@ _iso_codes_parse_xml_node (XMLNode *node) - - attributes = sub_node->attributes; - for (i = 0; attributes[i]; i += 2) { -- if (g_strcmp0 (attributes[i], "name") == 0) { -+ if (!g_strcmp0 (attributes[i], "common_name")) { - for (j = 0; j < G_N_ELEMENTS (entries); j++) { - if (entries[j].value == NULL) - continue; -- g_hash_table_insert (__languages_dict, -- (gpointer) g_strdup (entries[j].value), -- (gpointer) g_strdup (attributes[i + 1])); -- entries[j].value = NULL; -+ g_hash_table_replace (__languages_dict, -+ g_strdup (entries[j].value), -+ g_strdup (attributes[i + 1])); -+ } -+ has_common_name = TRUE; -+ } else if (!g_strcmp0 (attributes[i], "name")) { -+ if (has_common_name) -+ continue; -+ for (j = 0; j < G_N_ELEMENTS (entries); j++) { -+ if (entries[j].value == NULL) -+ continue; -+ g_hash_table_replace (__languages_dict, -+ g_strdup (entries[j].value), -+ g_strdup (attributes[i + 1])); - } - } else { - for (j = 0; j < G_N_ELEMENTS (entries); j++) { --- -2.21.0 - -From af00f4156b5c79c526eab18c49da80affd41ebee Mon Sep 17 00:00:00 2001 -From: fujiwarat -Date: Fri, 12 Jul 2019 21:12:38 +0900 -Subject: [PATCH 22/27] src/tests: Install IBus tests into - gnome-desktop-testing - ---- - configure.ac | 13 +++++++++++ - src/tests/Makefile.am | 39 ++++++++++++++++++++++++++++++- - src/tests/ibus-compose-locales.in | 23 ++++++++++++++++++ - src/tests/ibus-compose.c | 10 ++++++-- - src/tests/meta.test.in | 4 ++++ - src/tests/runtest | 4 ++-- - 6 files changed, 88 insertions(+), 5 deletions(-) - create mode 100755 src/tests/ibus-compose-locales.in - create mode 100644 src/tests/meta.test.in - -diff --git a/configure.ac b/configure.ac -index b5a87b56..f1df3ac1 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -595,6 +595,18 @@ PKG_CHECK_MODULES(XTEST, - ) - AM_CONDITIONAL([ENABLE_XTEST], [test x"$enable_xtest" = x"yes"]) - -+# --enable-install-tests -+AC_ARG_ENABLE(install-tests, -+ AS_HELP_STRING([--enable-install-tests], -+ [Enable to install tests]), -+ [enable_install_tests=$enableval], -+ [enable_install_tests=no] -+) -+AM_CONDITIONAL([ENABLE_INSTALL_TESTS], [test x"$enable_install_tests" = x"yes"]) -+if test x"$enable_install_tests" = x"no"; then -+ enable_install_tests="no (disabled, use --enable-install-tests to enable)" -+fi -+ - - # --disable-emoji-dict option. - AC_ARG_ENABLE(emoji-dict, -@@ -773,5 +785,6 @@ Build options: - Enable Unicode dict $enable_unicode_dict - UCD directory $UCD_DIR - Run test cases $enable_tests -+ Install tests $enable_install_tests - ]) - -diff --git a/src/tests/Makefile.am b/src/tests/Makefile.am -index a58504a3..ff31111b 100644 ---- a/src/tests/Makefile.am -+++ b/src/tests/Makefile.am -@@ -78,7 +78,44 @@ TESTS_ENVIRONMENT = \ - - LOG_COMPILER = $(srcdir)/runtest - --EXTRA_DIST = runtest ibus-compose.emoji ibus-compose.env -+if ENABLE_INSTALL_TESTS -+test_metas_in = meta.test.in -+test_execs = $(TESTS:ibus-compose=ibus-compose-locales) -+test_metas = $(addsuffix .test, $(test_execs)) -+test_sources_DATA = \ -+ $(test_metas) \ -+ ibus-compose.emoji \ -+ ibus-compose.env \ -+ $(NULL) -+test_sourcesdir = $(datadir)/installed-tests/ibus -+ -+test_execs_PROGRAMS = $(TESTS) -+if ENABLE_GTK3 -+test_execs_SCRIPTS = ibus-compose-locales -+endif -+test_execsdir = $(libexecdir)/installed-tests/ibus -+endif -+ -+$(test_metas): $(test_metas_in) $(test_programs) -+ f=`echo $@ | sed -e 's/\.test//'`; \ -+ TEST_EXEC=$(test_execsdir)/$$f; \ -+ sed -e "s|@TEST_EXEC[@]|$$TEST_EXEC|g" $(test_metas_in) > $@.tmp; \ -+ mv $@.tmp $@; \ -+ $(NULL) -+ -+ibus-compose-locales: ibus-compose-locales.in -+ SRCDIR=$(test_sourcesdir); \ -+ sed -e "s|@SRCDIR[@]|$$SRCDIR|g" $< > $@.tmp; \ -+ mv $@.tmp $@; \ -+ $(NULL) -+ -+EXTRA_DIST = \ -+ $(test_metas_in) \ -+ runtest \ -+ ibus-compose.emoji \ -+ ibus-compose.env \ -+ ibus-compose-locales.in \ -+ $(NULL) - - ibus_bus_SOURCES = ibus-bus.c - ibus_bus_LDADD = $(prog_ldadd) -diff --git a/src/tests/ibus-compose-locales.in b/src/tests/ibus-compose-locales.in -new file mode 100755 -index 00000000..8d2384d1 ---- /dev/null -+++ b/src/tests/ibus-compose-locales.in -@@ -0,0 +1,23 @@ -+#!/bin/sh -+ -+SRCDIR=@SRCDIR@ -+BUILDDIR=`dirname $0` -+ -+ -+export IBUS_COMPOSE_CACHE_DIR=$PWD -+ -+for var in `cat $SRCDIR/ibus-compose.env` -+do -+ IS_COMMENT=`echo "$var" | grep "^#"` -+ if [ "x$IS_COMMENT" != x ] ; then -+ continue -+ fi -+ env $var $BUILDDIR/ibus-compose $SRCDIR $@ -+ -+ CACHE_FILES=`ls *.cache` -+ if [ x"$CACHE_FILES" != x ] ; then -+ echo "Clean $CACHE_FILES" -+ rm $CACHE_FILES -+ fi -+done -+ -diff --git a/src/tests/ibus-compose.c b/src/tests/ibus-compose.c -index 09c687c2..c8d3c126 100644 ---- a/src/tests/ibus-compose.c -+++ b/src/tests/ibus-compose.c -@@ -264,8 +264,6 @@ window_inserted_text_cb (GtkEntryBuffer *buffer, - guint index = priv->data_first[i + 1]; - guint j = 0; - gboolean valid_output = TRUE; -- if (seq == 2) -- g_print ("test\n"); - for (j = 0; j < num; j++) { - if (priv->data_second[index + j] != code) { - valid_output = FALSE; -@@ -351,6 +349,14 @@ main (int argc, char *argv[]) - - ibus_init (); - g_test_init (&argc, &argv, NULL); -+ /* FIXME: -+ * IBusIMContext opens GtkIMContextSimple as the slave and -+ * GtkIMContextSimple opens the compose table on el_GR.UTF-8, and the -+ * multiple outputs in el_GR's compose causes a warning in gtkcomposetable -+ * and the warning always causes a fatal in GTest: -+ " "GTK+ supports to output one char only: " -+ */ -+ g_log_set_always_fatal (G_LOG_LEVEL_CRITICAL); - gtk_init (&argc, &argv); - - m_srcdir = argc > 1 ? g_strdup (argv[1]) : g_strdup ("."); -diff --git a/src/tests/meta.test.in b/src/tests/meta.test.in -new file mode 100644 -index 00000000..ae2b2991 ---- /dev/null -+++ b/src/tests/meta.test.in -@@ -0,0 +1,4 @@ -+[Test] -+Type=session -+Exec=@TEST_EXEC@ --tap -+Output=TAP -diff --git a/src/tests/runtest b/src/tests/runtest -index 35ccc5a0..1fcc9283 100755 ---- a/src/tests/runtest -+++ b/src/tests/runtest -@@ -200,7 +200,7 @@ if test -f $envfile ; then - ENVS="`cat $envfile`" - fi; - if test x"$ENVS" = x ; then -- run_test_case -+ run_test_case $@ - else - LANG_backup=$LANG - i=1 -@@ -212,7 +212,7 @@ else - export $e - echo "Run `func_basename $tst` on $e" - echo "=======================" -- run_test_case -+ run_test_case $@ - echo "" - i=`expr $i + 1` - done --- -2.21.0 - -From 2a4f9518d42b618d8111fa5f9f885757524758a0 Mon Sep 17 00:00:00 2001 -From: fujiwarat -Date: Fri, 12 Jul 2019 21:12:40 +0900 -Subject: [PATCH 23/27] src/tests: Rename test-console.sh to - ibus-desktop-testing-runner - ---- - src/tests/Makefile.am | 9 +++++++++ - .../tests/ibus-desktop-testing-runner.in | 0 - 2 files changed, 9 insertions(+) - create mode 100755 .../tests/ibus-desktop-testing-runner.in - -diff --git a/src/tests/Makefile.am b/src/tests/Makefile.am -index ff31111b..b9aad29a 100644 ---- a/src/tests/Makefile.am -+++ b/src/tests/Makefile.am -@@ -79,6 +79,7 @@ TESTS_ENVIRONMENT = \ - LOG_COMPILER = $(srcdir)/runtest - - if ENABLE_INSTALL_TESTS -+bin_SCRIPTS = ibus-desktop-testing-runner - test_metas_in = meta.test.in - test_execs = $(TESTS:ibus-compose=ibus-compose-locales) - test_metas = $(addsuffix .test, $(test_execs)) -@@ -109,12 +110,20 @@ ibus-compose-locales: ibus-compose-locales.in - mv $@.tmp $@; \ - $(NULL) - -+ ibus-desktop-testing-runner.in \ -+ibus-desktop-testing-runner: ibus-desktop-testing-runner.in -+ SRCDIR=$(test_sourcesdir); \ -+ sed -e "s|@SRCDIR[@]|$$SRCDIR|g" $< > $@.tmp; \ -+ mv $@.tmp $@; \ -+ $(NULL) -+ - EXTRA_DIST = \ - $(test_metas_in) \ - runtest \ - ibus-compose.emoji \ - ibus-compose.env \ - ibus-compose-locales.in \ -+ ibus-desktop-testing-runner.in \ - $(NULL) - - ibus_bus_SOURCES = ibus-bus.c -diff --git a/src/tests/ibus-desktop-testing-runner.in b/src/tests/ibus-desktop-testing-runner.in -new file mode 100755 -index 00000000..07c8a96d ---- /dev/null -+++ b/src/tests/ibus-desktop-testing-runner.in -@@ -0,0 +1,255 @@ -+#!/bin/sh -+# -*- mode: C; c-basic-offset: 4; indent-tabs-mode: nil; -*- -+# vim:set noet ts=4: -+# -+# ibus-anthy - The Anthy engine for IBus -+# -+# Copyright (c) 2018-2019 Takao Fujiwara -+# Copyright (c) 2018 Red Hat, Inc. -+# -+# This program is free software; you can redistribute it and/or modify -+# it under the terms of the GNU General Public License as published by -+# the Free Software Foundation; either version 2 of the License, or -+# (at your option) any later version. -+# -+# This program is distributed in the hope that it will be useful, -+# but WITHOUT ANY WARRANTY; without even the implied warranty of -+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+# GNU General Public License for more details. -+# -+# You should have received a copy of the GNU General Public License along -+# with this program; if not, write to the Free Software Foundation, Inc., -+# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. -+ -+# This test runs /usr/bin/ibus-daemon after install ibus -+# -+# # init 3 -+# Login as root -+# # /root/ibus/tests/test-console.sh --tests ibus-compose \ -+# --builddir /root/ibus/src/tests --srcdir /root/ibus/src/tests -+ -+PROGNAME=`basename $0` -+VERSION=0.1 -+DISPLAY=:99.0 -+BUILDDIR="." -+SRCDIR="." -+TEST_LOG=test-suite.log -+HAVE_GRAPHICS=1 -+DESKTOP_COMMAND="gnome-session" -+PID_XORG=0 -+PID_GNOME_SESSION=0 -+TESTS="" -+GREEN='\033[0;32m' -+RED='\033[0;31m' -+NC='\033[0m' -+ -+usage() -+{ -+ echo -e \ -+"This test runs /usr/bin/ibus-daemon after install ibus\n" \ -+"$PROGNAME [OPTIONS…]\n" \ -+"\n" \ -+"OPTIONS:\n" \ -+"-h, --help This help\n" \ -+"-v, --version Show version\n" \ -+"-b, --builddir=BUILDDIR Set the BUILDDIR\n" \ -+"-s, --srcdir=SOURCEDIR Set the SOURCEDIR\n" \ -+"-c, --no-graphics Use Xvfb instead of Xorg\n" \ -+"-d, --desktop=DESKTOP Run DESTKTOP. The default is gnome-session\n" \ -+"-t, --tests=\"TESTS...\" Run TESTS programs which is separated by space\n" \ -+"" -+} -+ -+parse_args() -+{ -+ # This is GNU getopt. "sudo port getopt" in BSD? -+ ARGS=`getopt -o hvb:s:cd:t: --long help,version,builddir:,srcdir:,no-graphics,desktop:,tests:\ -+ -- "$@"`; -+ eval set -- "$ARGS" -+ while [ 1 ] ; do -+ case "$1" in -+ -h | --help ) usage; exit 0;; -+ -v | --version ) echo -e "$VERSION"; exit 0;; -+ -b | --builddir ) BUILDDIR="$2"; shift 2;; -+ -s | --srcdir ) SRCDIR="$2"; shift 2;; -+ -c | --no-graphics ) HAVE_GRAPHICS=0; shift;; -+ -d | --desktop ) DESKTOP_COMMAND="$2"; shift 2;; -+ -t | --tests ) TESTS="$2"; shift 2;; -+ -- ) shift; break;; -+ * ) usage; exit 1;; -+ esac -+ done -+} -+ -+init_desktop() -+{ -+ if test x$FORCE_TEST != x ; then -+ RUN_ARGS="$RUN_ARGS --force" -+ fi -+ -+ if test ! -f $HOME/.config/gnome-initial-setup-done ; then -+ if test ! -f /var/lib/AccountsService/users/$USER ; then -+ mkdir -p /var/lib/AccountsService/users -+ cat >> /var/lib/AccountsService/users/$USER << _EOF -+[User] -+Language=ja_JP.UTF-8 -+XSession=gnome -+SystemAccount=false -+_EOF -+ fi -+ mkdir -p $HOME/.config -+ touch $HOME/.config/gnome-initial-setup-done -+ fi -+ -+ # Prevent from launching a XDG dialog -+ XDG_LOCALE_FILE="$HOME/.config/user-dirs.locale" -+ if test -f $XDG_LOCALE_FILE ; then -+ XDG_LANG_ORIG=`cat $XDG_LOCALE_FILE` -+ XDG_LANG_NEW=`echo $LANG | sed -e 's/\(.*\)\..*/\1/'` -+ if [ "$XDG_LANG_ORIG" != "$XDG_LANG_NEW" ] ; then -+ echo "Overriding XDG locale $XDG_LANG_ORIG with $XDG_LANG_NEW" -+ echo "$XDG_LANG_NEW" > $XDG_LOCALE_FILE -+ fi -+ fi -+} -+ -+run_dbus_daemon() -+{ -+ a=`ps -ef | grep dbus-daemon | grep "\-\-system" | grep -v session | grep -v grep` -+ if test x"$a" = x ; then -+ eval `dbus-launch --sh-syntax` -+ fi -+ SUSER=`echo "$USER" | cut -c 1-7` -+ a=`ps -ef | grep dbus-daemon | grep "$SUSER" | grep -v gdm | grep session | grep -v grep` -+ if test x"$a" = x ; then -+ systemctl --user start dbus -+ export DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/$UID/bus -+ fi -+ systemctl --user status dbus | col -b -+ ps -ef | grep dbus-daemon | grep "$SUSER" | grep -v gdm | egrep 'session|system' | grep -v grep -+ systemctl --user show-environment | col -b -+} -+ -+run_desktop() -+{ -+ if test $HAVE_GRAPHICS -eq 1 ; then -+ /usr/libexec/Xorg.wrap -noreset +extension GLX +extension RANDR +extension RENDER -logfile ./xorg.log -config ./xorg.conf -configdir . $DISPLAY & -+ else -+ /usr/bin/Xvfb $DISPLAY -noreset +extension GLX +extension RANDR +extension RENDER -screen 0 1280x1024x24 & -+ fi -+ PID_XORG=$! -+ sleep 1 -+ export DISPLAY=$DISPLAY -+ $DESKTOP_COMMAND & -+ PID_GNOME_SESSION=$! -+ sleep 30 -+ if test "$DESKTOP_COMMAND" != "gnome-session" ; then -+ ibus-daemon --daemonize --verbose -+ sleep 1 -+ fi -+} -+ -+count_case_result() -+{ -+ retval=$1 -+ pass=$2 -+ fail=$3 -+ -+ if test $retval -eq 0 ; then -+ pass=`expr $pass + 1` -+ else -+ fail=`expr $fail + 1` -+ fi -+ echo $pass $fail -+} -+ -+echo_case_result() -+{ -+ retval=$1 -+ tst=$2 -+ log=$3 -+ subtst=${4:-''} -+ -+ if test $retval -eq 0 ; then -+ echo -e "${GREEN}PASS${NC}: $tst $subtst" -+ else -+ echo -e "${RED}FAIL${NC}: $tst $subtst" -+ echo "FAIL: $tst $subtst" >> $TEST_LOG -+ echo "======================" >> $TEST_LOG -+ echo "" >> $TEST_LOG -+ cat "$log" >> $TEST_LOG -+ echo "" >> $TEST_LOG -+ fi -+} -+ -+run_test_suite() -+{ -+ cd `dirname $0` -+ pass=0 -+ fail=0 -+ -+ export GTK_IM_MODULE=ibus -+ export IBUS_COMPOSE_CACHE_DIR=$PWD -+ if test -f $TEST_LOG ; then -+ rm $TEST_LOG -+ fi -+ for tst in $TESTS; do -+ ENVS= -+ if test -f $SRCDIR/${tst}.env ; then -+ ENVS="`cat $SRCDIR/${tst}.env`" -+ fi -+ if test x"$ENVS" = x ; then -+ $BUILDDIR/$tst $SRCDIR >&${tst}.log -+ retval=$? -+ read pass fail << EOF -+ `count_case_result $retval $pass $fail` -+EOF -+ echo_case_result $retval $tst ${tst}.log -+ else -+ LANG_backup=$LANG -+ i=1 -+ for e in $ENVS; do -+ first=`echo "$e" | cut -c1-1` -+ if test x"$first" = x"#" ; then -+ continue -+ fi -+ export $e -+ $BUILDDIR/$tst $SRCDIR >&${tst}.${i}.log -+ retval=$? -+ read pass fail << EOF -+ `count_case_result $retval $pass $fail` -+EOF -+ echo_case_result $retval $tst ${tst}.${i}.log $e -+ i=`expr $i + 1` -+ done -+ export LANG=$LANG_backup -+ fi -+ done -+ echo "" -+ echo -e "# ${GREEN}PASS${NC}: $pass" -+ echo -e "# ${RED}FAIL${NC}: $fail" -+ if test -f ${TEST_LOG} ; then -+ echo "" -+ echo -e "${RED}See ${TEST_LOG}$NC" -+ fi -+} -+ -+finit() -+{ -+ if test "$DESKTOP_COMMAND" != "gnome-session" ; then -+ ibus exit -+ fi -+ kill $PID_GNOME_SESSION $PID_XORG -+} -+ -+main() -+{ -+ parse_args $@ -+ init_desktop -+ run_dbus_daemon -+ run_desktop -+ run_test_suite -+ finit -+} -+ -+main $@ --- -2.21.0 - -From fa081ac8ea37d2feb7c7f395ad66e7381b4cb65b Mon Sep 17 00:00:00 2001 -From: fujiwarat -Date: Fri, 12 Jul 2019 21:20:32 +0900 -Subject: [PATCH 24/27] src/tests: Use gnome-desktop-testing-runner - ---- - src/tests/Makefile.am | 4 +- - src/tests/ibus-desktop-testing-runner.in | 154 ++++++++++++++++++----- - 2 files changed, 123 insertions(+), 35 deletions(-) - -diff --git a/src/tests/Makefile.am b/src/tests/Makefile.am -index b9aad29a..913e42fb 100644 ---- a/src/tests/Makefile.am -+++ b/src/tests/Makefile.am -@@ -105,8 +105,8 @@ $(test_metas): $(test_metas_in) $(test_programs) - $(NULL) - - ibus-compose-locales: ibus-compose-locales.in -- SRCDIR=$(test_sourcesdir); \ -- sed -e "s|@SRCDIR[@]|$$SRCDIR|g" $< > $@.tmp; \ -+ INSTALLEDDIR=$(datadir)/installed-tests; \ -+ sed -e "s|@INSTALLEDDIR[@]|$$INSTALLEDDIR|g" $< > $@.tmp; \ - mv $@.tmp $@; \ - $(NULL) - -diff --git a/src/tests/ibus-desktop-testing-runner.in b/src/tests/ibus-desktop-testing-runner.in -index 9e689634..a90c1378 100755 ---- a/src/tests/ibus-desktop-testing-runner.in -+++ b/src/tests/ibus-desktop-testing-runner.in -@@ -2,7 +2,7 @@ - # -*- mode: C; c-basic-offset: 4; indent-tabs-mode: nil; -*- - # vim:set noet ts=4: - # --# ibus-anthy - The Anthy engine for IBus -+# ibus - The Input Bus - # - # Copyright (c) 2018-2019 Takao Fujiwara - # Copyright (c) 2018 Red Hat, Inc. -@@ -33,16 +33,32 @@ VERSION=0.1 - DISPLAY=:99.0 - BUILDDIR="." - SRCDIR="." --TEST_LOG=test-suite.log -+TEST_LOG="test-suite.log" -+RESULT_LOG="" - HAVE_GRAPHICS=1 - DESKTOP_COMMAND="gnome-session" - PID_XORG=0 - PID_GNOME_SESSION=0 -+TESTING_RUNNER="default" - TESTS="" - GREEN='\033[0;32m' - RED='\033[0;31m' - NC='\033[0m' - -+print_log() -+{ -+ if [ x"$RESULT_LOG" != x ] ; then -+ # avoid 'echo -e' before call 'sed'. -+ if [ x"$1" = x'-e' ] ; then -+ shift -+ fi -+ NO_ESCAPE=`echo $@ | sed -e 's/\\\033\\[0;3.m//g' -e 's/\\\033\\[0m//g'` -+ echo $NO_ESCAPE >> $RESULT_LOG -+ else -+ echo $@ -+ fi -+} -+ - usage() - { - echo -e \ -@@ -57,13 +73,19 @@ usage() - "-c, --no-graphics Use Xvfb instead of Xorg\n" \ - "-d, --desktop=DESKTOP Run DESTKTOP. The default is gnome-session\n" \ - "-t, --tests=\"TESTS...\" Run TESTS programs which is separated by space\n" \ -+"-r, --runner=RUNNER Run TESTS programs with a test RUNNER.\n" \ -+" RUNNDER = gnome or default.\n" \ -+" default is an embedded runner.\n" \ -+"-o, --output=OUTPUT_FILE OUtput the log to OUTPUT_FILE\n" \ -+"-O, --result=RESULT_FILE OUtput the result to RESULT_FILE\n" \ - "" - } - - parse_args() - { - # This is GNU getopt. "sudo port getopt" in BSD? -- ARGS=`getopt -o hvb:s:cd:t: --long help,version,builddir:,srcdir:,no-graphics,desktop:,tests:\ -+ ARGS=`getopt -o hvb:s:cd:t:r:o:O: --long \ -+ help,version,builddir:,srcdir:,no-graphics,desktop:,tests:,runner:,output:,result:\ - -- "$@"`; - eval set -- "$ARGS" - while [ 1 ] ; do -@@ -75,6 +97,9 @@ parse_args() - -c | --no-graphics ) HAVE_GRAPHICS=0; shift;; - -d | --desktop ) DESKTOP_COMMAND="$2"; shift 2;; - -t | --tests ) TESTS="$2"; shift 2;; -+ -r | --runner ) TESTING_RUNNER="$2"; shift 2;; -+ -o | --output ) TEST_LOG="$2"; shift 2;; -+ -O | --result ) RESULT_LOG="$2"; shift 2;; - -- ) shift; break;; - * ) usage; exit 1;; - esac -@@ -83,18 +108,31 @@ parse_args() - - init_desktop() - { -+ if [ "$RESULT_LOG" != "" ] ; then -+ rm $RESULT_LOG -+ fi -+ if [ "$TEST_LOG" = "" ] ; then -+ print_log -e "${RED}FAIL${NC}: ${RED}ERROR${NC}: a log file is required to get return value with 'read' command" -+ abrt -+ else -+ rm $TEST_LOG -+ fi - if test x$FORCE_TEST != x ; then - RUN_ARGS="$RUN_ARGS --force" - fi - - if test ! -f $HOME/.config/gnome-initial-setup-done ; then -+ IS_SYSTEM_ACCOUNT=false -+ if [ "$USER" = "root" ] ; then -+ IS_SYSTEM_ACCOUNT=true -+ fi - if test ! -f /var/lib/AccountsService/users/$USER ; then - mkdir -p /var/lib/AccountsService/users - cat >> /var/lib/AccountsService/users/$USER << _EOF - [User] - Language=ja_JP.UTF-8 - XSession=gnome --SystemAccount=false -+SystemAccount=$IS_SYSTEM_ACCOUNT - _EOF - fi - mkdir -p $HOME/.config -@@ -167,71 +205,120 @@ echo_case_result() - { - retval=$1 - tst=$2 -- log=$3 -- subtst=${4:-''} -+ subtst=${3:-''} - - if test $retval -eq 0 ; then -- echo -e "${GREEN}PASS${NC}: $tst $subtst" -+ print_log -e "${GREEN}PASS${NC}: $tst $subtst" - else -- echo -e "${RED}FAIL${NC}: $tst $subtst" -- echo "FAIL: $tst $subtst" >> $TEST_LOG -- echo "======================" >> $TEST_LOG -- echo "" >> $TEST_LOG -- cat "$log" >> $TEST_LOG -- echo "" >> $TEST_LOG -+ print_log -e "${RED}FAIL${NC}: $tst $subtst" -+ print_log "======================" -+ print_log "" - fi - } - --run_test_suite() -+run_direct_test_cases() - { -- cd `dirname $0` - pass=0 - fail=0 -- -- export GTK_IM_MODULE=ibus -- export IBUS_COMPOSE_CACHE_DIR=$PWD -- if test -f $TEST_LOG ; then -- rm $TEST_LOG -- fi - for tst in $TESTS; do - ENVS= - if test -f $SRCDIR/${tst}.env ; then - ENVS="`cat $SRCDIR/${tst}.env`" - fi - if test x"$ENVS" = x ; then -- $BUILDDIR/$tst $SRCDIR >&${tst}.log -+ $BUILDDIR/$tst $SRCDIR 2>>$TEST_LOG 1>>$TEST_LOG - retval=$? - read pass fail << EOF - `count_case_result $retval $pass $fail` - EOF -- echo_case_result $retval $tst ${tst}.log -+ echo_case_result $retval $tst -+ CACHE_FILES=`ls *.cache` -+ if [ x"$CACHE_FILES" != x ] ; then -+ print_log "Clean $CACHE_FILES" -+ rm $CACHE_FILES -+ fi - else - LANG_backup=$LANG - i=1 - for e in $ENVS; do -- first=`echo "$e" | cut -c1-1` -+ first=`echo "$e" | grep '^#'` - if test x"$first" = x"#" ; then - continue - fi - export $e -- $BUILDDIR/$tst $SRCDIR >&${tst}.${i}.log -+ $BUILDDIR/$tst $SRCDIR 2>>$TEST_LOG 1>>$TEST_LOG - retval=$? - read pass fail << EOF - `count_case_result $retval $pass $fail` - EOF -- echo_case_result $retval $tst ${tst}.${i}.log $e -+ echo_case_result $retval $tst $e -+ CACHE_FILES=`ls *.cache` -+ if [ x"$CACHE_FILES" != x ] ; then -+ print_log "Clean $CACHE_FILES" -+ rm $CACHE_FILES -+ fi - i=`expr $i + 1` - done - export LANG=$LANG_backup - fi - done -+ echo $pass $fail -+} -+ -+run_gnome_desktop_testing_runner() -+{ -+ pass=0 -+ fail=0 -+ if [ x"$TESTS" = x ] ; then -+ TESTS='ibus' -+ fi -+ for tst in $TESTS; do -+ tst_dir="@INSTALLEDDIR@/$tst" -+ if [ ! -d "$tst_dir" ] ; then -+ print_log -e "${RED}FAIL${NC}: Not found %tst_dir" -+ fail=1 -+ continue -+ fi -+ gnome-desktop-testing-runner $tst 2>>$TEST_LOG 1>>$TEST_LOG -+ retval=$? -+ read pass fail << EOF -+ `count_case_result $retval $pass $fail` -+EOF -+ done -+ echo $pass $fail -+} -+ -+run_test_suite() -+{ -+ pass=0 -+ fail=0 -+ export GTK_IM_MODULE=ibus -+ export IBUS_COMPOSE_CACHE_DIR=$PWD -+ if [ x"$TESTING_RUNNER" = x ] ; then -+ TESTING_RUNNER="default" -+ fi -+ case $TESTING_RUNNER in -+ default) -+ # Get only the last value with do-while. -+ read pass fail << EOF_RUNNER -+ `run_direct_test_cases` -+EOF_RUNNER -+ ;; -+ gnome) -+ read pass fail << EOF_RUNNER -+ `run_gnome_desktop_testing_runner` -+EOF_RUNNER -+ ;; -+ esac - echo "" -- echo -e "# ${GREEN}PASS${NC}: $pass" -- echo -e "# ${RED}FAIL${NC}: $fail" -- if test -f ${TEST_LOG} ; then -- echo "" -- echo -e "${RED}See ${TEST_LOG}$NC" -+ if [ $pass -ne 0 ] ; then -+ print_log -e "${GREEN}PASS${NC}: $pass" - fi -+ if [ $fail -ne 0 ] ; then -+ print_log -e "${RED}FAIL${NC}: $fail" -+ fi -+ echo "" -+ echo "See ${TEST_LOG}" - } - - finit() -@@ -240,14 +327,15 @@ finit() - ibus exit - fi - kill $PID_GNOME_SESSION $PID_XORG -+ echo "Finished $PROGNAME testing" - } - - main() - { - parse_args $@ - init_desktop -- run_dbus_daemon -- run_desktop -+ run_dbus_daemon 2>>$TEST_LOG 1>>$TEST_LOG -+ run_desktop 2>>$TEST_LOG 1>>$TEST_LOG - run_test_suite - finit - } --- -2.21.0 - -From 85b647a1c57c206779eb0b4b15a734c1b1f29c10 Mon Sep 17 00:00:00 2001 -From: fujiwarat -Date: Wed, 24 Jul 2019 17:27:37 +0900 -Subject: [PATCH 25/27] src/tests: Fix IBus test cases for - gnome-desktop-testing - -- dconf/config.c: Replaced dconf_client_write_fast() with - dconf_client_write_sync() because - dconf_client_write_fast() does not syn the data when - ibus_config_get_values() is called immediately after - ibus_config_set_value() is called. - -- ibus-compose-locales.in returns the return value of ibus-compose - -- ibus-compose: Set $NO_AT_BRIDGE to suppress a AT_SPI warning - and call g_log_set_always_fatal() because GtkIMContextSimple - does not support multiple compose outputs yet and the API can - suppress a warning. - -- ibus-config: Delete async watch testings which causes several errors - with gnome-shell testing and the testing is now deprecated and - GSettings is recommended. - -- ibus-desktop-testing-runner.in: Support --output=log:stdout to - cat the log to stdout and Use dbus-launch --exit-with-session instead of - --sh-syntax and count PASS of test cases instead of PASS of - gnome-desktop-testing and always run ibus exit and kill - gnome-shell-calendar-server - -- ibus-engine-switch.c: Set xkb:jp::jpn if gnome-shell sets xkb:us::eng - -- ibus-inputcontext.c: Use ibus_bus_get_global_engine() instead of - ibus_bus_list_active_engines() since ibus_bus_list_active_engines() - does not work with gnome-shell and the API is now deprecated. - -- ibus-keypress.c: Set $NO_AT_BRIDGE to suppress a AT_SPI warning ---- - conf/dconf/config.c | 14 +- - src/tests/Makefile.am | 19 +- - src/tests/ibus-compose-locales.in | 4 +- - src/tests/ibus-compose.c | 10 +- - src/tests/ibus-config.c | 283 ----------------------- - src/tests/ibus-desktop-testing-runner.in | 77 +++--- - src/tests/ibus-engine-switch.c | 34 ++- - src/tests/ibus-inputcontext.c | 29 +-- - src/tests/ibus-keypress.c | 4 + - 9 files changed, 126 insertions(+), 348 deletions(-) - -diff --git a/conf/dconf/config.c b/conf/dconf/config.c -index 500ea1d8..30ac137d 100644 ---- a/conf/dconf/config.c -+++ b/conf/dconf/config.c -@@ -335,7 +335,19 @@ ibus_config_dconf_set_value (IBusConfigService *config, - } - - #ifdef DCONF_0_13_4 -- retval = dconf_client_write_fast (client, gkey, value, error); -+ /* Use dconf_client_write_sync() instead of dconf_client_write_fast() -+ * because dconf_client_write_fast() does not sync the data when -+ * ibus_config_get_values() is called immediately after -+ * ibus_config_set_value() is called. -+ * We won't add a new API for the sync only since IBusConfig is -+ * now deprecated and GSettings is recommended. -+ */ -+ retval = dconf_client_write_sync (client, -+ gkey, -+ value, -+ NULL, -+ NULL, -+ error); - #else - retval = dconf_client_write (client, - gkey, -diff --git a/src/tests/Makefile.am b/src/tests/Makefile.am -index 913e42fb..2e75932c 100644 ---- a/src/tests/Makefile.am -+++ b/src/tests/Makefile.am -@@ -55,6 +55,8 @@ TESTS = \ - ibus-util \ - $(NULL) - -+CLEANFILES = -+ - if ENABLE_ENGINE - TESTS += ibus-engine-switch - endif -@@ -90,9 +92,17 @@ test_sources_DATA = \ - $(NULL) - test_sourcesdir = $(datadir)/installed-tests/ibus - -+CLEANFILES += \ -+ $(test_metas) \ -+ ibus-desktop-testing-runner \ -+ $(NULL) -+ - test_execs_PROGRAMS = $(TESTS) - if ENABLE_GTK3 - test_execs_SCRIPTS = ibus-compose-locales -+CLEANFILES += \ -+ ibus-compose-locales \ -+ $(NULL) - endif - test_execsdir = $(libexecdir)/installed-tests/ibus - endif -@@ -105,15 +115,14 @@ $(test_metas): $(test_metas_in) $(test_programs) - $(NULL) - - ibus-compose-locales: ibus-compose-locales.in -- INSTALLEDDIR=$(datadir)/installed-tests; \ -- sed -e "s|@INSTALLEDDIR[@]|$$INSTALLEDDIR|g" $< > $@.tmp; \ -+ SRCDIR=$(test_sourcesdir); \ -+ sed -e "s|@SRCDIR[@]|$$SRCDIR|g" $< > $@.tmp; \ - mv $@.tmp $@; \ - $(NULL) - -- ibus-desktop-testing-runner.in \ - ibus-desktop-testing-runner: ibus-desktop-testing-runner.in -- SRCDIR=$(test_sourcesdir); \ -- sed -e "s|@SRCDIR[@]|$$SRCDIR|g" $< > $@.tmp; \ -+ INSTALLEDDIR=$(datadir)/installed-tests; \ -+ sed -e "s|@INSTALLEDDIR[@]|$$INSTALLEDDIR|g" $< > $@.tmp; \ - mv $@.tmp $@; \ - $(NULL) - -diff --git a/src/tests/ibus-compose-locales.in b/src/tests/ibus-compose-locales.in -index 8d2384d1..fad02965 100755 ---- a/src/tests/ibus-compose-locales.in -+++ b/src/tests/ibus-compose-locales.in -@@ -6,6 +6,7 @@ BUILDDIR=`dirname $0` - - export IBUS_COMPOSE_CACHE_DIR=$PWD - -+retval=0 - for var in `cat $SRCDIR/ibus-compose.env` - do - IS_COMMENT=`echo "$var" | grep "^#"` -@@ -13,6 +14,7 @@ do - continue - fi - env $var $BUILDDIR/ibus-compose $SRCDIR $@ -+ retval=`expr $retval + $?` - - CACHE_FILES=`ls *.cache` - if [ x"$CACHE_FILES" != x ] ; then -@@ -20,4 +22,4 @@ do - rm $CACHE_FILES - fi - done -- -+exit $retval -diff --git a/src/tests/ibus-compose.c b/src/tests/ibus-compose.c -index c8d3c126..db359477 100644 ---- a/src/tests/ibus-compose.c -+++ b/src/tests/ibus-compose.c -@@ -344,20 +344,26 @@ test_compose (void) - int - main (int argc, char *argv[]) - { -+ GLogLevelFlags flags; - const gchar *test_name; - gchar *test_path; - - ibus_init (); -+ /* Avoid a warning of "AT-SPI: Could not obtain desktop path or name" -+ * with gtk_main(). -+ */ -+ g_setenv ("NO_AT_BRIDGE", "1", TRUE); - g_test_init (&argc, &argv, NULL); - /* FIXME: - * IBusIMContext opens GtkIMContextSimple as the slave and - * GtkIMContextSimple opens the compose table on el_GR.UTF-8, and the -- * multiple outputs in el_GR's compose causes a warning in gtkcomposetable -+ * multiple outputs in el_GR's compose causes a warning in gtkcomposetable - * and the warning always causes a fatal in GTest: - " "GTK+ supports to output one char only: " - */ -- g_log_set_always_fatal (G_LOG_LEVEL_CRITICAL); -+ flags = g_log_set_always_fatal (G_LOG_LEVEL_CRITICAL); - gtk_init (&argc, &argv); -+ g_log_set_always_fatal (flags); - - m_srcdir = argc > 1 ? g_strdup (argv[1]) : g_strdup ("."); - m_compose_file = g_strdup (g_getenv ("COMPOSE_FILE")); -diff --git a/src/tests/ibus-config.c b/src/tests/ibus-config.c -index c6141ab5..9b925ad9 100644 ---- a/src/tests/ibus-config.c -+++ b/src/tests/ibus-config.c -@@ -133,254 +133,6 @@ test_config_set_get (void) - g_object_unref (config); - } - --typedef struct { -- GMainLoop *loop; -- guint timeout_id; -- gchar *section; -- gchar *name; --} WatchData; -- --typedef struct { -- gchar *section; -- gchar *name; --} WatchKey; -- --typedef struct { -- WatchKey *watched; /* watched keys (null-terminated) */ -- WatchKey *changed; /* changed keys (null-terminated) */ -- WatchKey *notified; /* notified keys (same length as -- changed, not null-terminated) */ --} WatchTestData; -- --static WatchKey default_watched[] = { -- { NULL } --}; --static WatchKey default_changed[] = { -- { "test/s1", "n1" }, -- { "test/s1", "n2" }, -- { "test/s2", "n1" }, -- { "test/s2", "n2" }, -- { NULL } --}; --static WatchKey default_notified[] = { -- { "test/s1", "n1" }, -- { "test/s1", "n2" }, -- { "test/s2", "n1" }, -- { "test/s2", "n2" } --}; --static WatchTestData default_data = { -- default_watched, -- default_changed, -- default_notified --}; -- --static WatchKey section_watched[] = { -- { "test/s1", NULL }, -- { NULL } --}; --static WatchKey section_notified[] = { -- { "test/s1", "n1" }, -- { "test/s1", "n2" }, -- { NULL, NULL }, -- { NULL, NULL }, --}; --static WatchTestData section_data = { -- section_watched, -- default_changed, -- section_notified --}; -- --static WatchKey section_multiple_watched[] = { -- { "test/s1", NULL }, -- { "test/s2", NULL }, -- { NULL } --}; --static WatchKey section_multiple_notified[] = { -- { "test/s1", "n1" }, -- { "test/s1", "n2" }, -- { "test/s2", "n1" }, -- { "test/s2", "n2" }, --}; --static WatchTestData section_multiple_data = { -- section_multiple_watched, -- default_changed, -- section_multiple_notified --}; -- --static WatchKey section_name_watched[] = { -- { "test/s1", "n1" }, -- { NULL } --}; --static WatchKey section_name_notified[] = { -- { "test/s1", "n1" }, -- { NULL, NULL }, -- { NULL, NULL }, -- { NULL, NULL }, --}; --static WatchTestData section_name_data = { -- section_name_watched, -- default_changed, -- section_name_notified --}; -- --static WatchKey section_name_multiple_watched[] = { -- { "test/s1", "n1" }, -- { "test/s2", "n2" }, -- { NULL } --}; --static WatchKey section_name_multiple_notified[] = { -- { "test/s1", "n1" }, -- { NULL, NULL }, -- { NULL, NULL }, -- { "test/s2", "n2" }, --}; --static WatchTestData section_name_multiple_data = { -- section_name_multiple_watched, -- default_changed, -- section_name_multiple_notified --}; -- --typedef struct { -- IBusConfig *config; -- WatchData data; --} WatchFixture; -- --static void --value_changed_cb (IBusConfig *config, -- const gchar *section, -- const gchar *name, -- GVariant *value, -- gpointer user_data) --{ -- WatchData *data = (WatchData *) user_data; -- -- data->section = g_strdup (section); -- data->name = g_strdup (name); -- -- g_main_loop_quit (data->loop); --} -- --static gboolean --timeout_cb (gpointer user_data) --{ -- WatchData *data = (WatchData *) user_data; -- g_main_loop_quit (data->loop); -- data->timeout_id = 0; -- return FALSE; --} -- --static void --change_and_test (IBusConfig *config, -- const gchar *section, -- const gchar *name, -- const gchar *expected_section, -- const gchar *expected_name, -- WatchData *data) --{ -- gboolean retval; -- GVariant *var; -- -- data->section = NULL; -- data->name = NULL; -- -- /* Unset won't notify value-changed signal. */ -- var = ibus_config_get_values (config, section); -- if (var != NULL) { -- GVariant *value = g_variant_lookup_value (var, name, -- G_VARIANT_TYPE_VARIANT); -- if (value != NULL) { -- ibus_config_unset (config, section, name); -- g_variant_unref (value); -- } -- g_variant_unref (var); -- } -- -- data->timeout_id = g_timeout_add (1, timeout_cb, data); -- g_main_loop_run (data->loop); -- if (data->timeout_id != 0) { -- g_source_remove (data->timeout_id); -- } -- -- retval = ibus_config_set_value (config, section, name, -- g_variant_new_int32 (1)); -- g_assert (retval); -- -- data->timeout_id = g_timeout_add (1, timeout_cb, data); -- g_main_loop_run (data->loop); -- if (data->timeout_id != 0) { -- g_source_remove (data->timeout_id); -- } -- -- g_assert_cmpstr (data->section, ==, expected_section); -- g_assert_cmpstr (data->name, ==, expected_name); -- -- g_free (data->section); -- g_free (data->name); --} -- --static void --watch_fixture_setup (WatchFixture *fixture, gconstpointer user_data) --{ -- fixture->config = ibus_config_new (ibus_bus_get_connection (bus), -- NULL, -- NULL); -- g_assert (fixture->config); -- -- fixture->data.loop = g_main_loop_new (NULL, FALSE); -- g_signal_connect (fixture->config, "value-changed", -- G_CALLBACK (value_changed_cb), &fixture->data); --} -- --static void --watch_fixture_teardown (WatchFixture *fixture, gconstpointer user_data) --{ -- g_main_loop_unref (fixture->data.loop); -- -- ibus_proxy_destroy (IBUS_PROXY (fixture->config)); -- g_object_unref (fixture->config); --} -- --static void --test_config_watch (WatchFixture *fixture, gconstpointer user_data) --{ -- const WatchTestData *data = user_data; -- gint i; -- -- for (i = 0; data->watched[i].section != NULL; i++) { -- ibus_config_watch (fixture->config, -- data->watched[i].section, -- data->watched[i].name); -- } -- for (i = 0; data->changed[i].section != NULL; i++) { -- change_and_test (fixture->config, -- data->changed[i].section, -- data->changed[i].name, -- data->notified[i].section, -- data->notified[i].name, -- &fixture->data); -- } -- for (i = 0; data->watched[i].section != NULL; i++) { -- ibus_config_unwatch (fixture->config, -- data->watched[i].section, -- data->watched[i].name); -- } -- if (i > 0) { -- /* Check if the above unwatch takes effect. */ -- for (i = 0; data->changed[i].section != NULL; i++) { -- change_and_test (fixture->config, -- data->changed[i].section, -- data->changed[i].name, -- NULL, -- NULL, -- &fixture->data); -- } -- } else { -- /* Since we reuse single D-Bus connection, we need to remove the -- default match rule for the next ibus_config_new() call. */ -- ibus_config_unwatch (fixture->config, NULL, NULL); -- } --} -- - gint - main (gint argc, - gchar **argv) -@@ -390,41 +142,6 @@ main (gint argc, - g_test_init (&argc, &argv, NULL); - bus = ibus_bus_new (); - -- g_test_add ("/ibus/config-watch/default", -- WatchFixture, -- &default_data, -- watch_fixture_setup, -- test_config_watch, -- watch_fixture_teardown); -- -- g_test_add ("/ibus/config-watch/section", -- WatchFixture, -- §ion_data, -- watch_fixture_setup, -- test_config_watch, -- watch_fixture_teardown); -- -- g_test_add ("/ibus/config-watch/section-multiple", -- WatchFixture, -- §ion_multiple_data, -- watch_fixture_setup, -- test_config_watch, -- watch_fixture_teardown); -- -- g_test_add ("/ibus/config-watch/section-name", -- WatchFixture, -- §ion_name_data, -- watch_fixture_setup, -- test_config_watch, -- watch_fixture_teardown); -- -- g_test_add ("/ibus/config-watch/section-name-multiple", -- WatchFixture, -- §ion_name_multiple_data, -- watch_fixture_setup, -- test_config_watch, -- watch_fixture_teardown); -- - g_test_add_func ("/ibus/create-config-async", test_create_config_async); - g_test_add_func ("/ibus/config-set-get", test_config_set_get); - -diff --git a/src/tests/ibus-desktop-testing-runner.in b/src/tests/ibus-desktop-testing-runner.in -index a90c1378..b7a72285 100755 ---- a/src/tests/ibus-desktop-testing-runner.in -+++ b/src/tests/ibus-desktop-testing-runner.in -@@ -34,9 +34,10 @@ DISPLAY=:99.0 - BUILDDIR="." - SRCDIR="." - TEST_LOG="test-suite.log" -+TEST_LOG_STDOUT=0 - RESULT_LOG="" - HAVE_GRAPHICS=1 --DESKTOP_COMMAND="gnome-session" -+DESKTOP_COMMAND="dbus-launch --exit-with-session gnome-session" - PID_XORG=0 - PID_GNOME_SESSION=0 - TESTING_RUNNER="default" -@@ -109,19 +110,26 @@ parse_args() - init_desktop() - { - if [ "$RESULT_LOG" != "" ] ; then -- rm $RESULT_LOG -+ if [ -f $RESULT_LOG ] ; then -+ rm $RESULT_LOG -+ fi -+ fi -+ HAS_STDOUT=`echo "$TEST_LOG" | grep ':stdout'` -+ if [ x"$HAS_STDOUT" != x ] ; then -+ TEST_LOG=`echo "$TEST_LOG" | sed -e 's|:stdout||'` -+ TEST_LOG_STDOUT=1 - fi - if [ "$TEST_LOG" = "" ] ; then - print_log -e "${RED}FAIL${NC}: ${RED}ERROR${NC}: a log file is required to get return value with 'read' command" -- abrt -- else -+ exit -1 -+ elif [ -f $TEST_LOG ] ; then - rm $TEST_LOG - fi -- if test x$FORCE_TEST != x ; then -+ if [ x$FORCE_TEST != x ] ; then - RUN_ARGS="$RUN_ARGS --force" - fi - -- if test ! -f $HOME/.config/gnome-initial-setup-done ; then -+ if [ ! -f $HOME/.config/gnome-initial-setup-done ] ; then - IS_SYSTEM_ACCOUNT=false - if [ "$USER" = "root" ] ; then - IS_SYSTEM_ACCOUNT=true -@@ -141,7 +149,7 @@ _EOF - - # Prevent from launching a XDG dialog - XDG_LOCALE_FILE="$HOME/.config/user-dirs.locale" -- if test -f $XDG_LOCALE_FILE ; then -+ if [ -f $XDG_LOCALE_FILE ] ; then - XDG_LANG_ORIG=`cat $XDG_LOCALE_FILE` - XDG_LANG_NEW=`echo $LANG | sed -e 's/\(.*\)\..*/\1/'` - if [ "$XDG_LANG_ORIG" != "$XDG_LANG_NEW" ] ; then -@@ -153,19 +161,8 @@ _EOF - - run_dbus_daemon() - { -- a=`ps -ef | grep dbus-daemon | grep "\-\-system" | grep -v session | grep -v grep` -- if test x"$a" = x ; then -- eval `dbus-launch --sh-syntax` -- fi -- SUSER=`echo "$USER" | cut -c 1-7` -- a=`ps -ef | grep dbus-daemon | grep "$SUSER" | grep -v gdm | grep session | grep -v grep` -- if test x"$a" = x ; then -- systemctl --user start dbus -- export DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/$UID/bus -- fi -- systemctl --user status dbus | col -b -- ps -ef | grep dbus-daemon | grep "$SUSER" | grep -v gdm | egrep 'session|system' | grep -v grep -- systemctl --user show-environment | col -b -+ # Use dbus-launch --exit-with-session later instead of --sh-syntax -+ export DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/$UID/bus - } - - run_desktop() -@@ -181,7 +178,8 @@ run_desktop() - $DESKTOP_COMMAND & - PID_GNOME_SESSION=$! - sleep 30 -- if test "$DESKTOP_COMMAND" != "gnome-session" ; then -+ HAS_GNOME=`echo $DESKTOP_COMMAND | grep gnome-session` -+ if [ x"$HAS_GNOME" = x ] ; then - ibus-daemon --daemonize --verbose - sleep 1 - fi -@@ -285,6 +283,16 @@ run_gnome_desktop_testing_runner() - `count_case_result $retval $pass $fail` - EOF - done -+ child_pass=`grep '^PASS:' $TEST_LOG | wc -l` -+ child_fail=`grep '^FAIL:' $TEST_LOG | wc -l` -+ if [ $child_pass -ne 0 -o $child_fail -ne 0 ] ; then -+ pass=$child_pass -+ if [ $child_fail -ne 0 ] ; then -+ fail=`expr $child_fail / 2` -+ else -+ fail=0 -+ fi -+ fi - echo $pass $fail - } - -@@ -311,22 +319,29 @@ EOF_RUNNER - ;; - esac - echo "" -- if [ $pass -ne 0 ] ; then -- print_log -e "${GREEN}PASS${NC}: $pass" -- fi -- if [ $fail -ne 0 ] ; then -- print_log -e "${RED}FAIL${NC}: $fail" -- fi -+ print_log -e "${GREEN}PASS${NC}: $pass" -+ print_log -e "${RED}FAIL${NC}: $fail" - echo "" -- echo "See ${TEST_LOG}" -+ if [ $TEST_LOG_STDOUT -eq 1 ] ; then -+ cat $TEST_LOG -+ else -+ echo "See $TEST_LOG" -+ fi - } - - finit() - { -- if test "$DESKTOP_COMMAND" != "gnome-session" ; then -- ibus exit -- fi -+ echo "Killing left gnome-session and Xorg" - kill $PID_GNOME_SESSION $PID_XORG -+ ibus exit -+ SUSER=`echo "$USER" | cut -c 1-7` -+ LEFT_CALENDAR=`ps -ef | grep gnome-shell-calendar-server | grep $SUSER | grep -v grep` -+ if [ x"$LEFT_CALENDAR" != x ] ; then -+ echo "Killing left gnome-shell-calendar-server" -+ echo "$LEFT_CALENDAR" -+ echo "$LEFT_CALENDAR" | awk '{print $2}' | xargs kill -+ fi -+ - echo "Finished $PROGNAME testing" - } - -diff --git a/src/tests/ibus-engine-switch.c b/src/tests/ibus-engine-switch.c -index 5c2bd516..a1eeba2a 100644 ---- a/src/tests/ibus-engine-switch.c -+++ b/src/tests/ibus-engine-switch.c -@@ -13,17 +13,25 @@ static const gchar *engine_names[] = { - AFTER_ENGINE - }; - -+static const gchar *engine_names2[] = { -+ AFTER_ENGINE, -+ BEFORE_ENGINE -+}; -+ - static void --change_global_engine (void) -+change_global_engine (gboolean reverse) - { - gint i; - - for (i = 0; i < G_N_ELEMENTS (engine_names); i++) { -- ibus_bus_set_global_engine (bus, engine_names[i]); -+ const gchar *engine_name = engine_names[i]; -+ if (reverse) -+ engine_name = engine_names2[i]; -+ ibus_bus_set_global_engine (bus, engine_name); - IBusEngineDesc *engine_desc = ibus_bus_get_global_engine (bus); - g_assert_cmpstr (ibus_engine_desc_get_name (engine_desc), - ==, -- engine_names[i]); -+ engine_name); - g_object_unref (G_OBJECT (engine_desc)); - } - } -@@ -46,6 +54,7 @@ typedef struct { - gint count; - guint timeout_id; - guint idle_id; -+ gboolean reverse; - } GlobalEngineChangedData; - - static void -@@ -70,7 +79,7 @@ static gboolean - change_global_engine_cb (gpointer user_data) - { - GlobalEngineChangedData *data = (GlobalEngineChangedData *) user_data; -- change_global_engine (); -+ change_global_engine (data->reverse); - data->idle_id = 0; - return FALSE; - } -@@ -78,12 +87,25 @@ change_global_engine_cb (gpointer user_data) - static void - test_global_engine (void) - { -+ GLogLevelFlags flags; -+ IBusEngineDesc *desc; - GlobalEngineChangedData data; - guint handler_id; - - if (!ibus_bus_get_use_global_engine (bus)) - return; - -+ /* "No global engine." warning is not critical message. */ -+ flags = g_log_set_always_fatal (G_LOG_LEVEL_CRITICAL); -+ desc = ibus_bus_get_global_engine (bus); -+ g_log_set_always_fatal (flags); -+ if (desc && -+ !g_strcmp0 (BEFORE_ENGINE, ibus_engine_desc_get_name (desc))) { -+ data.reverse = TRUE; -+ } else { -+ data.reverse = FALSE; -+ } -+ - data.count = 0; - - handler_id = g_signal_connect (bus, -@@ -141,7 +163,7 @@ test_context_engine_set_by_global (void) - /* ibus_bus_set_global_engine() changes focused context engine. */ - ibus_input_context_focus_in (context); - -- change_global_engine (); -+ change_global_engine (FALSE); - - /* ibus_input_context_set_engine() does not take effect when - global engine is used. */ -@@ -170,7 +192,7 @@ test_context_engine_set_by_focus (void) - - ibus_input_context_focus_in (context); - -- change_global_engine (); -+ change_global_engine (FALSE); - - /* When focus is lost, context engine is set to "dummy". */ - ibus_input_context_focus_in (another_context); -diff --git a/src/tests/ibus-inputcontext.c b/src/tests/ibus-inputcontext.c -index fab183aa..ed04bd64 100644 ---- a/src/tests/ibus-inputcontext.c -+++ b/src/tests/ibus-inputcontext.c -@@ -37,18 +37,6 @@ fatal_handler(const gchar *log_domain, - return TRUE; - } - --static gchar * --get_last_engine_id (const GList *engines) --{ -- const char *result = NULL; -- for (; engines; engines = g_list_next (engines)) { -- IBusEngineDesc *engine_desc = IBUS_ENGINE_DESC (engines->data); -- g_assert (engine_desc); -- result = ibus_engine_desc_get_name (engine_desc); -- } -- return g_strdup (result); --} -- - static void - call_basic_ipcs (IBusInputContext *context) - { -@@ -68,18 +56,23 @@ call_basic_ipcs (IBusInputContext *context) - static void - test_input_context (void) - { -- GList *engines; -- gchar *active_engine_name = NULL; - IBusInputContext *context; -+ GLogLevelFlags flags; - IBusEngineDesc *engine_desc; -+ gchar *active_engine_name = NULL; - gchar *current_ic; - - context = ibus_bus_create_input_context (bus, "test"); - call_basic_ipcs (context); - -- engines = ibus_bus_list_active_engines (bus); -- if (engines != NULL) { -- active_engine_name = get_last_engine_id (engines); -+ /* "No global engine." warning is not critical message. */ -+ flags = g_log_set_always_fatal (G_LOG_LEVEL_CRITICAL); -+ engine_desc = ibus_bus_get_global_engine (bus); -+ g_log_set_always_fatal (flags); -+ if (engine_desc != NULL) { -+ active_engine_name = g_strdup (ibus_engine_desc_get_name(engine_desc)); -+ g_object_unref (engine_desc); -+ engine_desc = NULL; - } else { - active_engine_name = g_strdup ("dummy"); - } -@@ -111,8 +104,6 @@ test_input_context (void) - g_object_unref (context); - - g_free (active_engine_name); -- g_list_foreach (engines, (GFunc) g_object_unref, NULL); -- g_list_free (engines); - } - - static void -diff --git a/src/tests/ibus-keypress.c b/src/tests/ibus-keypress.c -index 17920226..dd1b0042 100644 ---- a/src/tests/ibus-keypress.c -+++ b/src/tests/ibus-keypress.c -@@ -288,6 +288,10 @@ int - main (int argc, char *argv[]) - { - ibus_init (); -+ /* Avoid a warning of "AT-SPI: Could not obtain desktop path or name" -+ * with gtk_main(). -+ */ -+ g_setenv ("NO_AT_BRIDGE", "1", TRUE); - g_test_init (&argc, &argv, NULL); - gtk_init (&argc, &argv); - --- -2.21.0 - -From 0c89a7ee33bfe5b403c798e0ddb39e4c05d0d971 Mon Sep 17 00:00:00 2001 -From: Hodong Kim -Date: Thu, 25 Jul 2019 14:37:52 +0900 -Subject: [PATCH 27/27] client/x11: Update LOCALES_STRING - -Update LOCALES_STRING in locales.h from /usr/share/i18n/SUPPORTED on -Debian Buster. - -BUG=https://github.com/ibus/ibus/pull/2110 ---- - client/x11/locales.h | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/client/x11/locales.h b/client/x11/locales.h -index 0155e22a..61af74fb 100644 ---- a/client/x11/locales.h -+++ b/client/x11/locales.h -@@ -1,2 +1,2 @@ - /* -*- mode: C; c-basic-offset: 4; indent-tabs-mode: nil; -*- */ --#define LOCALES_STRING "aa,af,am,an,ar,as,ast,az,be,ber,bg,bn,bo,br,bs,byn,C,ca,crh,cs,csb,cy,da,de,dz,el,en,es,et,eu,fa,fi,fil,fo,fr,fur,fy,ga,gd,gez,gl,gu,gv,ha,he,hi,hne,hr,hsb,ht,hu,hy,id,ig,ik,is,it,iu,iw,ja,ka,kk,kl,km,kn,ko,ks,ku,kw,ky,lg,li,lo,lt,lv,mai,mg,mi,mk,ml,mn,mr,ms,mt,nan,nb,nds,ne,nl,nn,no,nr,nso,oc,om,or,pa,pa,pap,pl,pt,ro,ru,rw,sa,sc,sd,se,shs,si,sid,sk,sl,so,sq,sr,ss,st,sv,ta,te,tg,th,ti,tig,tk,tl,tn,tr,ts,tt,ug,uk,ur,uz,ve,vi,wa,wo,xh,yi,yo,zh,zu" -+#define LOCALES_STRING "aa,af,agr,ak,am,an,anp,ar,ayc,az,as,ast,be,bem,ber,bg,bhb,bho,bi,bn,bo,br,brx,bs,byn,C,ca,ce,chr,cmn,crh,cs,csb,cv,cy,da,de,doi,dsb,dv,dz,el,en,eo,es,et,eu,fa,ff,fi,fil,fo,fr,fur,fy,ga,gd,gez,gl,gu,gv,ha,hak,he,hi,hif,hne,hr,hsb,ht,hu,hy,ia,id,ig,ik,is,it,iu,ja,ka,kab,kk,kl,km,kn,ko,kok,ks,ku,kw,ky,lb,lg,li,lij,ln,lo,lt,lv,lzh,mag,mai,mfe,mg,mhr,mi,miq,mjw,mk,ml,mn,mni,mr,ms,mt,my,nan,nb,nds,ne,nhn,niu,nl,nn,no,nr,nso,oc,om,or,os,pa,pap,pl,ps,pt,quz,raj,ro,ru,rw,sa,sah,sat,sc,sd,se,sgs,shn,shs,si,sid,sk,sl,sm,so,sq,sr,ss,st,sv,sw,szl,ta,tcy,te,tg,th,the,ti,tig,tk,tl,tn,to,tpi,tr,ts,tt,ug,uk,unm,ur,uz,ve,vi,wa,wae,wal,wo,xh,yi,yo,yue,yuw,zh,zu" --- -2.21.0 - -From f4463c0433c5f48a4fb2830e8c2ae9619fbb18d1 Mon Sep 17 00:00:00 2001 -From: fujiwarat -Date: Mon, 29 Jul 2019 19:05:43 +0900 -Subject: [PATCH] src/tests: Fix a fatal error with g_warning - -I set g_log_set_always_fatal() before gtk_init() in ibus-compose for -a compose warning of GtkIMContextSimple but actually the warning is -output during gtk_main() due to GtkIMContextSimple.set_client_window() -so I moved g_log_set_always_fatal() before gtk_main() in ibus-compose.c. - -Also set IFS in ibus-compose-locales to set the delimiter to '\n' for -for-loop arguments. ---- - src/tests/ibus-compose-locales.in | 8 ++++++++ - src/tests/ibus-compose.c | 21 ++++++++++----------- - 2 files changed, 18 insertions(+), 11 deletions(-) - -diff --git a/src/tests/ibus-compose-locales.in b/src/tests/ibus-compose-locales.in -index fad02965..f650b584 100755 ---- a/src/tests/ibus-compose-locales.in -+++ b/src/tests/ibus-compose-locales.in -@@ -7,19 +7,27 @@ BUILDDIR=`dirname $0` - export IBUS_COMPOSE_CACHE_DIR=$PWD - - retval=0 -+# Let for-loop notice '\n' as a delimiter -+IFS=$'\n' - for var in `cat $SRCDIR/ibus-compose.env` - do -+ # Revert IFS to recognize env a=foo b=foo -+ IFS=' ' - IS_COMMENT=`echo "$var" | grep "^#"` - if [ "x$IS_COMMENT" != x ] ; then - continue - fi -+ echo "# Starting $var $BUILDDIR/ibus-compose $SRCDIR $@" - env $var $BUILDDIR/ibus-compose $SRCDIR $@ - retval=`expr $retval + $?` -+ echo "# Finished $var $BUILDDIR/ibus-compose $SRCDIR $@ with $retval" - - CACHE_FILES=`ls *.cache` - if [ x"$CACHE_FILES" != x ] ; then - echo "Clean $CACHE_FILES" - rm $CACHE_FILES - fi -+ IFS=$'\n' - done -+IFS=' ' - exit $retval -diff --git a/src/tests/ibus-compose.c b/src/tests/ibus-compose.c -index db359477..4b4c56e7 100644 ---- a/src/tests/ibus-compose.c -+++ b/src/tests/ibus-compose.c -@@ -331,20 +331,28 @@ create_window () - static void - test_compose (void) - { -+ GLogLevelFlags flags; - if (!register_ibus_engine ()) { - g_test_fail (); - return; - } - - create_window (); -+ /* FIXME: -+ * IBusIMContext opens GtkIMContextSimple as the slave and -+ * GtkIMContextSimple opens the compose table on el_GR.UTF-8, and the -+ * multiple outputs in el_GR's compose causes a warning in gtkcomposetable -+ * and the warning always causes a fatal in GTest: -+ " "GTK+ supports to output one char only: " -+ */ -+ flags = g_log_set_always_fatal (G_LOG_LEVEL_CRITICAL); - gtk_main (); -- -+ g_log_set_always_fatal (flags); - } - - int - main (int argc, char *argv[]) - { -- GLogLevelFlags flags; - const gchar *test_name; - gchar *test_path; - -@@ -354,16 +362,7 @@ main (int argc, char *argv[]) - */ - g_setenv ("NO_AT_BRIDGE", "1", TRUE); - g_test_init (&argc, &argv, NULL); -- /* FIXME: -- * IBusIMContext opens GtkIMContextSimple as the slave and -- * GtkIMContextSimple opens the compose table on el_GR.UTF-8, and the -- * multiple outputs in el_GR's compose causes a warning in gtkcomposetable -- * and the warning always causes a fatal in GTest: -- " "GTK+ supports to output one char only: " -- */ -- flags = g_log_set_always_fatal (G_LOG_LEVEL_CRITICAL); - gtk_init (&argc, &argv); -- g_log_set_always_fatal (flags); - - m_srcdir = argc > 1 ? g_strdup (argv[1]) : g_strdup ("."); - m_compose_file = g_strdup (g_getenv ("COMPOSE_FILE")); --- -2.21.0 - -From 7dde99600777f195da614130950ecbd339439d35 Mon Sep 17 00:00:00 2001 -From: fujiwarat -Date: Wed, 31 Jul 2019 16:27:49 +0900 -Subject: [PATCH] src/tests: Fix wrong echo with direct runner in - ibus-desktop-testing-runner - -The wrong echo prevent from counting the test results in the direct -testing runner. ---- - src/tests/ibus-desktop-testing-runner.in | 33 +++++++++++++----------- - 1 file changed, 18 insertions(+), 15 deletions(-) - -diff --git a/src/tests/ibus-desktop-testing-runner.in b/src/tests/ibus-desktop-testing-runner.in -index b7a72285..3045d601 100755 ---- a/src/tests/ibus-desktop-testing-runner.in -+++ b/src/tests/ibus-desktop-testing-runner.in -@@ -153,7 +153,7 @@ _EOF - XDG_LANG_ORIG=`cat $XDG_LOCALE_FILE` - XDG_LANG_NEW=`echo $LANG | sed -e 's/\(.*\)\..*/\1/'` - if [ "$XDG_LANG_ORIG" != "$XDG_LANG_NEW" ] ; then -- echo "Overriding XDG locale $XDG_LANG_ORIG with $XDG_LANG_NEW" -+ echo "# Overriding XDG locale $XDG_LANG_ORIG with $XDG_LANG_NEW" - echo "$XDG_LANG_NEW" > $XDG_LOCALE_FILE - fi - fi -@@ -206,11 +206,9 @@ echo_case_result() - subtst=${3:-''} - - if test $retval -eq 0 ; then -- print_log -e "${GREEN}PASS${NC}: $tst $subtst" -+ echo "PASS: $tst $subtst" >>$TEST_LOG - else -- print_log -e "${RED}FAIL${NC}: $tst $subtst" -- print_log "======================" -- print_log "" -+ echo "FAIL: $tst $subtst" >>$TEST_LOG - fi - } - -@@ -232,32 +230,37 @@ EOF - echo_case_result $retval $tst - CACHE_FILES=`ls *.cache` - if [ x"$CACHE_FILES" != x ] ; then -- print_log "Clean $CACHE_FILES" -+ echo "# Clean $CACHE_FILES" >>$TEST_LOG - rm $CACHE_FILES - fi - else -- LANG_backup=$LANG - i=1 -+ # Let for-loop notice '\n' as a delimiter -+ IFS=$'\n' - for e in $ENVS; do -+ # Revert IFS to recognize env a=foo b=foo -+ IFS=' ' - first=`echo "$e" | grep '^#'` - if test x"$first" = x"#" ; then - continue - fi -- export $e -- $BUILDDIR/$tst $SRCDIR 2>>$TEST_LOG 1>>$TEST_LOG -+ echo "# Starting $e $BUILDDIR/$tst $SRCDIR" >>$TEST_LOG -+ env $e $BUILDDIR/$tst $SRCDIR 2>>$TEST_LOG 1>>$TEST_LOG - retval=$? -+ echo "# Finished $e $BUILDDIR/$tst $SRCDIR with $retval" >>$TEST_LOG - read pass fail << EOF - `count_case_result $retval $pass $fail` - EOF - echo_case_result $retval $tst $e - CACHE_FILES=`ls *.cache` - if [ x"$CACHE_FILES" != x ] ; then -- print_log "Clean $CACHE_FILES" -+ echo "# Clean $CACHE_FILES" >>$TEST_LOG - rm $CACHE_FILES - fi - i=`expr $i + 1` -+ IFS=$'\n' - done -- export LANG=$LANG_backup -+ IFS=' ' - fi - done - echo $pass $fail -@@ -325,24 +328,24 @@ EOF_RUNNER - if [ $TEST_LOG_STDOUT -eq 1 ] ; then - cat $TEST_LOG - else -- echo "See $TEST_LOG" -+ echo "# See $TEST_LOG" - fi - } - - finit() - { -- echo "Killing left gnome-session and Xorg" -+ echo "# Killing left gnome-session and Xorg" - kill $PID_GNOME_SESSION $PID_XORG - ibus exit - SUSER=`echo "$USER" | cut -c 1-7` - LEFT_CALENDAR=`ps -ef | grep gnome-shell-calendar-server | grep $SUSER | grep -v grep` - if [ x"$LEFT_CALENDAR" != x ] ; then -- echo "Killing left gnome-shell-calendar-server" -+ echo "# Killing left gnome-shell-calendar-server" - echo "$LEFT_CALENDAR" - echo "$LEFT_CALENDAR" | awk '{print $2}' | xargs kill - fi - -- echo "Finished $PROGNAME testing" -+ echo "# Finished $PROGNAME testing" - } - - main() --- -2.21.0 - -From 32572618cdcc36162b5769eb4c71964db9734061 Mon Sep 17 00:00:00 2001 -From: fujiwarat -Date: Tue, 6 Aug 2019 18:55:14 +0900 -Subject: [PATCH] bus: Exit ibus-daemon with parent's death - -ibus-daemon can be restarted unexpectedly during logging out the session -and double ibus-x11 prevent from enabling XIM in XGetSelectionOwner() -for the "ibus" atom. -ibus-daemon always will exit the process when the parent process dies -to avoid this problem. ---- - bus/main.c | 56 +++++++++++++++++++++++++++++++++++++++++++++++++++- - configure.ac | 3 +++ - 2 files changed, 58 insertions(+), 1 deletion(-) - -diff --git a/bus/main.c b/bus/main.c -index 3223d541..e11a5ebd 100644 ---- a/bus/main.c -+++ b/bus/main.c -@@ -33,6 +33,10 @@ - #include - #include - -+#ifdef HAVE_SYS_PRCTL_H -+#include -+#endif -+ - #include "global.h" - #include "ibusimpl.h" - #include "server.h" -@@ -161,6 +165,15 @@ daemon (gint nochdir, gint noclose) - } - #endif - -+#ifdef HAVE_SYS_PRCTL_H -+static void -+_sig_usr1_handler (int sig) -+{ -+ g_warning ("The parent process died."); -+ bus_server_quit (FALSE); -+} -+#endif -+ - gint - main (gint argc, gchar **argv) - { -@@ -201,7 +214,7 @@ main (gint argc, gchar **argv) - /* daemonize process */ - if (daemonize) { - if (daemon (1, 0) != 0) { -- g_printerr ("Can not daemonize ibus.\n"); -+ g_printerr ("Cannot daemonize ibus.\n"); - exit (-1); - } - } -@@ -299,6 +312,47 @@ main (gint argc, gchar **argv) - exit (-1); - } - -+ if (!daemonize) { -+ if (getppid () == 1) { -+ g_warning ("The parent process died."); -+ exit (0); -+ } -+#ifdef HAVE_SYS_PRCTL_H -+ /* Currently ibus-x11 detects XIOError and assume the error as the -+ * desktop session is closed and ibus-x11 calls Exit D-Bus method to -+ * exit ibus-daemon. But a few desktop sessions cause XError before -+ * XIOError and GTK does not allow to bind XError by applications and -+ * GTK calls gdk_x_error() with XError. -+ * -+ * E.g. GdkX11Screen calls XGetSelectionOwner() for "_XSETTINGS_S?" -+ * atoms during the logout but the selection owner already becomes -+ * NULL and the NULL window causes XError with -+ * gdk_x11_window_foreign_new_for_display(). -+ * -+ * Since ibus-x11 exits with XError before XIOError, gnome-shell -+ * can detects the exit of ibus-daemon a little earlier and -+ * gnome-shell restarts ibus-daemon but gnome-shell dies soon. -+ * Then gnome-shell dies but ibus-daemon is alive, it's a problem. -+ * Because it causes double ibus-x11 of GDM and a login user -+ * and double XSetSelectionOwner() is not allowed for the unique -+ * "ibus" atom and the user cannot use XIM but not GtkIMModule. -+ * -+ * Probably we could fix the ibus process problem if we would fix -+ * XError about the X selection owner or stop to restart ibus-daemon -+ * in gonme-shell when the session is logging out. -+ * Maybe using SessionManager.LogoutRemote() or -+ * global.screen.get_display().get_xdisplay() -+ * But I assume thereare other scenarios to causes the problem. -+ * -+ * And I decided ibus-daemon always exits with the parent's death here -+ * to avoid unexpected ibus restarts during the logout. -+ */ -+ if (prctl (PR_SET_PDEATHSIG, SIGUSR1)) -+ g_printerr ("Cannot bind SIGUSR1 for parent death\n"); -+ else -+ signal (SIGUSR1, _sig_usr1_handler); -+#endif -+ } - bus_server_run (); - return 0; - } -diff --git a/configure.ac b/configure.ac -index f1df3ac1..fdd316a9 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -140,6 +140,9 @@ AC_ISC_POSIX - AC_HEADER_STDC - LT_INIT - -+# Check header filess. -+AC_CHECK_HEADERS([sys/prctl.h]) -+ - # Check functions. - AC_CHECK_FUNCS(daemon) - --- -2.21.0 - -From 28c10d64d282fa9fbc35a7bc44a096f6137d5e46 Mon Sep 17 00:00:00 2001 -From: fujiwarat -Date: Tue, 13 Aug 2019 20:06:51 +0900 -Subject: [PATCH] src/tests: Set XDG_SESSION_TYPE in - ibus-desktop-testing-runner - -mutter 3.33.90 or later exits the session without loginctl. -Now ibus-desktop-testing-runner has XDG_SESSION_TYPE forcibly -not to exit gnome-shell. ---- - src/tests/ibus-desktop-testing-runner.in | 3 +++ - 1 file changed, 3 insertions(+) - -diff --git a/src/tests/ibus-desktop-testing-runner.in b/src/tests/ibus-desktop-testing-runner.in -index 3045d601..141e9b5b 100755 ---- a/src/tests/ibus-desktop-testing-runner.in -+++ b/src/tests/ibus-desktop-testing-runner.in -@@ -157,6 +157,8 @@ _EOF - echo "$XDG_LANG_NEW" > $XDG_LOCALE_FILE - fi - fi -+ # `su` command does not run loginctl -+ export XDG_SESSION_TYPE='x11' - } - - run_dbus_daemon() -@@ -175,6 +177,7 @@ run_desktop() - PID_XORG=$! - sleep 1 - export DISPLAY=$DISPLAY -+ echo "Running $DESKTOP_COMMAND with $USER in `tty`" - $DESKTOP_COMMAND & - PID_GNOME_SESSION=$! - sleep 30 --- -2.21.0 -