summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorfujiwarat <takao.fujiwara1@gmail.com>2013-11-01 11:19:39 +0900
committerfujiwarat <takao.fujiwara1@gmail.com>2013-11-01 11:19:39 +0900
commite64b25c0ab8fadeae97fe78dcfcbc3a5d0869c6b (patch)
tree7150775ce4a111e1b1176cff565348e14a70712e /src
parent9596aea2e2df4cd3ac9b795ad9f354723cf83317 (diff)
Update en-us compose table and add locale tables for xkb engines.
BUG=RH#1013651 TEST=engine/ibus-engine-simple, src/libibus.so Review URL: https://codereview.appspot.com/14465046
Diffstat (limited to 'src')
-rw-r--r--src/Makefile.am19
-rw-r--r--src/gencomposetable.c957
-rw-r--r--src/gtkimcontextsimpleseqs.h309
-rw-r--r--src/ibuscomposetable.h2658
-rw-r--r--src/ibusenginesimple.c48
-rw-r--r--src/ibusenginesimple.h25
-rw-r--r--src/ibuskeysyms.h7
7 files changed, 3972 insertions, 51 deletions
diff --git a/src/Makefile.am b/src/Makefile.am
index 811d0970..404e1d22 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -159,6 +159,7 @@ ibusinclude_HEADERS = \
$(ibus_public_headers) \
$(NULL)
ibus_privite_headers = \
+ ibuscomposetable.h \
ibusinternal.h \
keyname-table.h \
gtkimcontextsimpleseqs.h \
@@ -226,6 +227,24 @@ ibusmarshalers.c: ibusmarshalers.h ibusmarshalers.list
$(GLIB_GENMARSHAL) --prefix=_ibus_marshal $(srcdir)/ibusmarshalers.list --body --internal) > $@.tmp && \
mv $@.tmp $@
+ibuscomposetable.h:
+ $(AM_V_GEN) $(builddir)/gencomposetable > $@.tmp && \
+ mv $@.tmp $@
+ $(NULL)
+
+noinst_PROGRAMS = gencomposetable
+
+gencomposetable_SOURCES = \
+ gencomposetable.c \
+ $(NULL)
+gencomposetable_CFLAGS = \
+ @GLIB_CFLAGS@ \
+ $(NULL)
+gencomposetable_LDADD = \
+ $(libibus) \
+ @GLIB_LIBS@ \
+ $(NULL)
+
EXTRA_DIST = \
ibusversion.h.in \
ibusmarshalers.list \
diff --git a/src/gencomposetable.c b/src/gencomposetable.c
new file mode 100644
index 00000000..da929d0d
--- /dev/null
+++ b/src/gencomposetable.c
@@ -0,0 +1,957 @@
+/* -*- mode: C; c-basic-offset: 4; indent-tabs-mode: nil; -*- */
+/* ibus - The Input Bus
+ * Copyright (C) 2013 Peng Huang <shawn.p.huang@gmail.com>
+ * Copyright (C) 2013 Takao Fujiwara <takao.fujiwara1@gmail.com>
+ *
+ * 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
+ */
+
+#include <glib.h>
+#include <glib/gprintf.h>
+#include <locale.h>
+#include <stdlib.h>
+#include <string.h>
+#include <strings.h>
+
+#include "ibuserror.h"
+#include "ibuskeys.h"
+#include "ibuskeysyms.h"
+#include "ibustypes.h"
+#include "gtkimcontextsimpleseqs.h"
+
+#define HEADER \
+"/* -*- mode: C; c-basic-offset: 4; indent-tabs-mode: nil; -*- */\n" \
+"/* vim:set et sts=4: */\n" \
+"/* ibus - The Input Bus\n" \
+" * Copyright (C) 2013 Peng Huang <shawn.p.huang@gmail.com>\n" \
+" * Copyright (C) 2013 Takao Fujiwara <takao.fujiwara1@gmail.com>\n" \
+" *\n" \
+" * This library is free software; you can redistribute it and/or\n" \
+" * modify it under the terms of the GNU Lesser General Public\n" \
+" * License as published by the Free Software Foundation; either\n" \
+" * version 2.1 of the License, or (at your option) any later version.\n" \
+" *\n" \
+" * This library is distributed in the hope that it will be useful,\n" \
+" * but WITHOUT ANY WARRANTY; without even the implied warranty of\n" \
+" * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n" \
+" * Lesser General Public License for more details.\n" \
+" *\n" \
+" * You should have received a copy of the GNU Lesser General Public\n" \
+" * License along with this library; if not, write to the Free Software\n" \
+" * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301\n" \
+" * USA\n" \
+" */\n" \
+"\n" \
+"#ifndef __IBUS_COMPOSETABLE_H_\n" \
+"#define __IBUS_COMPOSETABLE_H_\n" \
+"\n" \
+"/* The table is generated by ibus/src/gencomposetable\n" \
+" *\n" \
+" * if ibus_compose_seqs_a[N - 1] is an outputed compose character,\n" \
+" * ibus_compose_seqs_a[N * 2 - 1] is also an outputed compose character.\n" \
+" * and ibus_compose_seqs_a[0] to ibus_compose_seqs_a[0 + N - 3] are the\n" \
+" * sequences and call ibus_engine_simple_add_table:\n" \
+" * ibus_engine_simple_add_table(engine, ibus_compose_seqs_a,\n" \
+" * N - 2, G_N_ELEMENTS(ibus_compose_seqs_a) / N)\n" \
+" * The compose sequences are allowed within G_MAXUINT16 */\n" \
+"\n" \
+"typedef struct _IBusComposeTable IBusComposeTable;\n" \
+"struct _IBusComposeTable\n" \
+"{\n" \
+" const guint16 *data;\n" \
+" gint max_seq_len;\n" \
+" gint n_seqs;\n" \
+"};\n" \
+"\n" \
+"typedef struct _IBusComposeTableLocaleList IBusComposeTableLocaleList;\n" \
+"struct _IBusComposeTableLocaleList\n" \
+"{\n" \
+" const gchar *locale;\n" \
+" const IBusComposeTable *table;\n" \
+"};\n" \
+""
+
+#define FOOTER \
+"#endif"
+
+#define AM_ET_ARRAY \
+"static const guint16 ibus_compose_seqs_am_et[] = {\n" \
+" /* Not sure if am_ET compose file is useful. It uses ASCII key\n" \
+" * at first but not compose keys.\n" \
+" * Comment out am_compose_seqs until get the request. */\n" \
+" 0\n" \
+"};\n" \
+"\n" \
+"static const IBusComposeTable ibus_compose_table_am_et = {\n" \
+" ibus_compose_seqs_am_et,\n" \
+" 0,\n" \
+" 0\n" \
+"};\n" \
+""
+
+#define PRINT_IBUS_COMPOSE_TABLE_LOCALE(locale, len) \
+ g_printf ( \
+"static const IBusComposeTable ibus_compose_table_" #locale " = {\n" \
+" ibus_compose_seqs_" #locale ",\n" \
+" %d,\n" \
+" G_N_ELEMENTS (ibus_compose_seqs_" #locale ") / (%d + 2)\n" \
+"};\n" \
+"\n" \
+"", len, len)
+
+#define PRINT_LOCALE_AND_IBUS_COMPOSE_TABLE(locale) \
+ g_printf ( \
+" { \"" #locale "\", &ibus_compose_table_" #locale " },\n") \
+
+#define IS_DEAD_KEY(k) \
+ ((k) >= IBUS_KEY_dead_grave && (k) <= (IBUS_KEY_dead_dasia + 1))
+
+#define GTK_MAX_COMPOSE_LEN 7
+
+int MAX_COMPOSE_LEN = 0;
+int N_INDEX_STRIDE = 0;
+
+const gchar *COMPOSE_FILES[] = {
+ "/usr/share/X11/locale/am_ET.UTF-8/Compose",
+ "/usr/share/X11/locale/el_GR.UTF-8/Compose",
+ "/usr/share/X11/locale/fi_FI.UTF-8/Compose",
+ "/usr/share/X11/locale/pt_BR.UTF-8/Compose",
+ NULL
+};
+
+typedef struct _IBusComposeTableCompact IBusComposeTableCompact;
+struct _IBusComposeTableCompact
+{
+ const guint16 *data;
+ gint max_seq_len;
+ gint n_index_size;
+ gint n_index_stride;
+};
+
+static const IBusComposeTableCompact ibus_compose_table_compact = {
+ gtk_compose_seqs_compact,
+ 5,
+ 25,
+ 6
+};
+
+GHashTable *en_keysym_table = NULL;
+
+static gboolean
+is_codepoint (const gchar *str)
+{
+ gboolean retval = (strlen (str) > 1 && *str == 'U');
+ int i;
+
+ if (!retval)
+ return FALSE;
+
+ for (i = 1; str[i] != '\0'; i++) {
+ if (g_ascii_isxdigit (str[i]))
+ continue;
+ else
+ return FALSE;
+ }
+
+ return TRUE;
+}
+
+static gint
+get_codepoint (const gchar *str)
+{
+ if (g_str_has_prefix (str, "IBUS_KEY_"))
+ return GPOINTER_TO_INT (g_hash_table_lookup (en_keysym_table, str));
+ if (*str == '0' && *(str + 1) == '\0')
+ return 0;
+ if (*str == '0' && *(str + 1) == 'x')
+ return (gint) g_ascii_strtoll (str, NULL, 16);
+
+ g_assert_not_reached ();
+ return 0;
+}
+
+static GHashTable *
+parse_keysym_file (const gchar *keysym_file)
+{
+ gchar *contents = NULL;
+ gchar **lines = NULL;
+ gsize length = 0;
+ GError *error = NULL;
+ GHashTable *table = NULL;
+ int i;
+
+ if (!g_file_get_contents (keysym_file, &contents, &length, &error)) {
+ g_error ("Specify $IBUS_KEYSYMS for the path of ibuskeysyms.h: %s",
+ error->message);
+ g_error_free (error);
+ }
+
+ table = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, NULL);
+
+ lines = g_strsplit (contents, "\n", -1);
+ g_free (contents);
+
+ for (i = 0; lines[i] != NULL; i++) {
+ const gchar *line = lines[i];
+ gchar **words;
+ gint length;
+ const gchar *key;
+ gint64 code;
+
+ if (!g_str_has_prefix (line, "#define"))
+ continue;
+
+ words = g_strsplit (line , " ", -1);
+ length = g_strv_length (words);
+
+ g_assert (length >= 2);
+
+ key = words[1];
+
+ /* In case of #define __IBUS_KEYSYMS_H__ */
+ if (length == 2) {
+ g_assert (!g_str_has_prefix (key, "IBUS_KEY"));
+ continue;
+ }
+
+ code = g_ascii_strtoll (words[2], NULL, 16);
+ g_hash_table_insert (table, g_strdup (key), GINT_TO_POINTER (code));
+ g_strfreev (words);
+ }
+
+ g_strfreev (lines);
+ return table;
+}
+
+static gboolean
+parse_compose_value (GArray *array, const gchar *val, GError **error)
+{
+ gchar **words = g_strsplit (val, "\"", 3);
+ gchar *result;
+ gunichar uch;
+
+ g_assert (g_strv_length (words) >= 3);
+
+ uch = g_utf8_get_char (words[1]);
+
+ if (uch == 0) {
+ g_set_error (error,
+ IBUS_ERROR,
+ IBUS_ERROR_FAILED,
+ "Invalid value: %s", val);
+ g_strfreev (words);
+ return FALSE;
+ }
+ 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, 0, 8);
+ /* If we need to handle other escape sequences. */
+ else if (uch != '\\')
+ g_assert_not_reached ();
+ }
+ else if (g_utf8_get_char (g_utf8_next_char (words[1])) > 0) {
+ g_set_error (error,
+ IBUS_ERROR,
+ IBUS_ERROR_FAILED,
+ "GTK+ supports to output one char only: %s", val);
+ g_strfreev (words);
+ return FALSE;
+ }
+
+
+ result = g_strdup_printf ("0x%04X", uch);
+ g_array_append_val (array, result);
+
+ if (uch == '"')
+ result = g_strdup (g_strstrip (words[2] + 1));
+ else
+ result = g_strdup (g_strstrip (words[2]));
+
+ g_array_append_val (array, result);
+ g_strfreev (words);
+
+ return TRUE;
+}
+
+static void
+parse_compose_sequence (GArray *array, const gchar *seq)
+{
+ gchar **words = g_strsplit (seq, "<", -1);
+ gchar *result;
+ int i;
+ int n = 0;
+
+ g_assert (g_strv_length (words) >= 2);
+
+ for (i = 1; words[i] != NULL; i++) {
+ gchar *start = words[i];
+ gchar *end = index (words[i], '>');
+ gchar *match;
+
+ if (words[i][0] == '\0')
+ continue;
+
+ g_assert (start != NULL && end != NULL && end > start);
+
+ match = g_strndup (start, end - start);
+
+ if (is_codepoint (match)) {
+ gint64 code = g_ascii_strtoll (match + 1, NULL, 16);
+ result = g_strdup_printf ("0x%04X", (unsigned int) code);
+ } else
+ result = g_strdup_printf ("IBUS_KEY_%s", match);
+
+ g_free (match);
+ g_array_append_val (array, result);
+ n++;
+ }
+
+ g_strfreev (words);
+ g_assert (0 < n && n < GTK_MAX_COMPOSE_LEN);
+
+ result = g_strdup ("0");
+ g_array_append_val (array, result);
+}
+
+static void
+clear_char_array (gpointer data)
+{
+ gchar **array = data;
+ g_free (*array);
+}
+
+static void
+parse_compose_line (GList **compose_table, const gchar *line)
+{
+ gchar **components = NULL;
+ GArray *array;
+ GError *error = NULL;
+
+ if (line[0] == '\0' || line[0] == '#')
+ return;
+
+ if (g_str_has_prefix (line, "include "))
+ return;
+
+ components = g_strsplit (line, ":", 2);
+
+ if (components[1] == NULL) {
+ g_warning ("No delimiter ':': %s", line);
+ g_strfreev (components);
+ return;
+ }
+
+ array = g_array_new (TRUE, TRUE, sizeof (gchar *));
+ g_array_set_clear_func (array, clear_char_array);
+
+ parse_compose_sequence (array, g_strstrip (components[0]));
+
+ if (!parse_compose_value (array, g_strstrip (components[1]), &error)) {
+ g_warning ("%s: %s", error->message, line);
+ g_clear_error (&error);
+ g_strfreev (components);
+ g_array_unref (array);
+ return;
+ }
+
+ g_strfreev (components);
+
+ *compose_table = g_list_append (*compose_table, array);
+}
+
+static GList *
+parse_compose_file (const gchar *compose_file)
+{
+ gchar *contents = NULL;
+ gchar **lines = NULL;
+ gsize length = 0;
+ GError *error = NULL;
+ GList *compose_table = NULL;
+ int i;
+
+ if (!g_file_get_contents (compose_file, &contents, &length, &error)) {
+ g_error ("%s", error->message);
+ g_error_free (error);
+ }
+
+ lines = g_strsplit (contents, "\n", -1);
+ g_free (contents);
+ for (i = 0; lines[i] != NULL; i++)
+ parse_compose_line (&compose_table, lines[i]);
+ g_strfreev (lines);
+
+ return compose_table;
+}
+
+static int
+compare_seq_index (const void *key, const void *value)
+{
+ const guint *keysyms = key;
+ const guint16 *seq = value;
+
+ if (keysyms[0] < seq[0])
+ return -1;
+ else if (keysyms[0] > seq[0])
+ return 1;
+ return 0;
+}
+
+static int
+compare_seq (const void *key, const void *value)
+{
+ int i = 0;
+ const guint *keysyms = key;
+ const guint16 *seq = value;
+
+ while (keysyms[i]) {
+ if (keysyms[i] < seq[i])
+ return -1;
+ else if (keysyms[i] > seq[i])
+ return 1;
+
+ i++;
+ }
+
+ return 0;
+}
+
+/* Implement check_compact_table() in ibus/src/ibusenginesimple.c
+ */
+static gboolean
+check_compact_table (const guint *compose_buffer,
+ const IBusComposeTableCompact *table,
+ gint n_compose)
+{
+ gint row_stride;
+ guint16 *seq_index;
+ guint16 *seq;
+ gint i;
+
+ seq_index = bsearch (compose_buffer,
+ table->data,
+ table->n_index_size,
+ sizeof (guint16) * table->n_index_stride,
+ compare_seq_index);
+
+ if (seq_index == NULL) {
+ // g_debug ("compact: no\n");
+ return FALSE;
+ }
+
+ seq = NULL;
+ i = n_compose - 1;
+
+ if (i >= table->max_seq_len) {
+ return FALSE;
+ }
+
+ row_stride = i + 1;
+
+ if (seq_index[i + 1] <= seq_index[i]) {
+ return FALSE;
+ }
+
+ 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) {
+ // g_debug ("no\n");
+ return FALSE;
+ }
+ else {
+ gunichar value = seq[row_stride - 1];
+ // g_debug ("U+%04X\n", value);
+ if (compose_buffer[n_compose + 1] == value)
+ return TRUE;
+ else
+ return FALSE;
+ }
+}
+
+static gboolean
+check_normalize_nfc (gunichar* combination_buffer, gint n_compose)
+{
+ gunichar combination_buffer_temp[GTK_MAX_COMPOSE_LEN];
+ gchar *combination_utf8_temp = NULL;
+ gchar *nfc_temp = NULL;
+ gint n_combinations;
+ gunichar temp_swap;
+ gint i;
+
+ n_combinations = 1;
+
+ for (i = 1; i < n_compose; i++ )
+ n_combinations *= i;
+
+ if (combination_buffer[0] >= 0x390 && combination_buffer[0] <= 0x3FF) {
+ for (i = 1; i < n_compose; i++ )
+ if (combination_buffer[i] == 0x303)
+ combination_buffer[i] = 0x342;
+ }
+
+ memcpy (combination_buffer_temp, combination_buffer,
+ GTK_MAX_COMPOSE_LEN * sizeof (gunichar) );
+
+ for (i = 0; i < n_combinations; i++ ) {
+ g_unicode_canonical_ordering (combination_buffer_temp, n_compose);
+ combination_utf8_temp = g_ucs4_to_utf8 (combination_buffer_temp,
+ -1, NULL, NULL, NULL);
+ nfc_temp = g_utf8_normalize (combination_utf8_temp, -1,
+ G_NORMALIZE_NFC);
+
+ if (g_utf8_strlen (nfc_temp, -1) == 1) {
+ memcpy (combination_buffer,
+ combination_buffer_temp,
+ GTK_MAX_COMPOSE_LEN * sizeof (gunichar) );
+
+ g_free (combination_utf8_temp);
+ g_free (nfc_temp);
+
+ return TRUE;
+ }
+
+ g_free (combination_utf8_temp);
+ g_free (nfc_temp);
+
+ if (n_compose > 2) {
+ temp_swap = combination_buffer_temp[i % (n_compose - 1) + 1];
+ combination_buffer_temp[i % (n_compose - 1) + 1] =
+ combination_buffer_temp[(i+1) % (n_compose - 1) + 1];
+ combination_buffer_temp[(i+1) % (n_compose - 1) + 1] = temp_swap;
+ }
+ else
+ break;
+ }
+
+ return FALSE;
+}
+
+/* Implement check_algorithmically() in ibus/src/ibusenginesimple.c
+ */
+static gboolean
+check_algorithmically (const guint *compose_buffer,
+ gint n_compose)
+{
+ int i = 0;
+ gunichar combination_buffer[GTK_MAX_COMPOSE_LEN];
+ gchar *combination_utf8, *nfc;
+
+ if (n_compose >= GTK_MAX_COMPOSE_LEN)
+ return FALSE;
+
+ for (i = 0; i < n_compose && IS_DEAD_KEY (compose_buffer[i]); i++)
+ ;
+ if (i == n_compose)
+ return FALSE;
+
+ if (i > 0 && i == n_compose - 1) {
+ combination_buffer[0] = ibus_keyval_to_unicode (compose_buffer[i]);
+ combination_buffer[n_compose] = 0;
+ i--;
+
+ while (i >= 0) {
+ switch (compose_buffer[i]) {
+#define CASE(keysym, unicode) \
+ case IBUS_KEY_dead_##keysym: combination_buffer[i+1] = unicode; \
+ break
+
+ CASE (grave, 0x0300);
+ CASE (acute, 0x0301);
+ CASE (circumflex, 0x0302);
+ CASE (tilde, 0x0303);
+ CASE (macron, 0x0304);
+ CASE (breve, 0x0306);
+ CASE (abovedot, 0x0307);
+ CASE (diaeresis, 0x0308);
+ CASE (hook, 0x0309);
+ CASE (abovering, 0x030A);
+ CASE (doubleacute, 0x030B);
+ CASE (caron, 0x030C);
+ CASE (abovecomma, 0x0313);
+ CASE (abovereversedcomma, 0x0314);
+ CASE (horn, 0x031B);
+ CASE (belowdot, 0x0323);
+ CASE (cedilla, 0x0327);
+ CASE (ogonek, 0x0328);
+ CASE (iota, 0x0345);
+ CASE (voiced_sound, 0x3099);
+ CASE (semivoiced_sound, 0x309A);
+
+ /* The following cases are to be removed once xkeyboard-config,
+ * xorg are fully updated.
+ */
+ /* Workaround for typo in 1.4.x xserver-xorg */
+ case 0xfe66: combination_buffer[i+1] = 0x314; break;
+ /* CASE (dasia, 0x314); */
+ /* CASE (perispomeni, 0x342); */
+ /* CASE (psili, 0x343); */
+#undef CASE
+ default:
+ combination_buffer[i+1] =
+ ibus_keyval_to_unicode (compose_buffer[i]);
+ }
+ i--;
+ }
+
+ if (check_normalize_nfc (combination_buffer, n_compose)) {
+ gunichar value;
+
+ combination_utf8 = g_ucs4_to_utf8 (combination_buffer,
+ -1, NULL, NULL, NULL);
+ nfc = g_utf8_normalize (combination_utf8, -1, G_NORMALIZE_NFC);
+
+ value = g_utf8_get_char (nfc);
+ g_free (combination_utf8);
+ g_free (nfc);
+
+ if (compose_buffer[n_compose + 1] == value)
+ return TRUE;
+ }
+ }
+
+ return FALSE;
+}
+
+static GList *
+check_duplicated_compose (GList *compose_table)
+{
+ GList *table;
+ GList *removed_table = NULL;
+
+ for (table = compose_table; table != NULL; table = table->next) {
+ GArray *array = (GArray *) table->data;
+ static guint keysyms[GTK_MAX_COMPOSE_LEN + 2];
+ int i;
+ int n_compose = 0;
+
+ for (i = 0; i <= GTK_MAX_COMPOSE_LEN + 2; i++) {
+ keysyms[i] = 0;
+ }
+
+ for (i = 0; i < array->len; i++) {
+ const gchar *data = g_array_index (array, const gchar *, i);
+ guint codepoint = (guint) get_codepoint (data);
+
+ keysyms[i] = codepoint;
+
+ if (codepoint == 0) {
+ data = g_array_index (array, const gchar *, i + 1);
+ codepoint = (guint) get_codepoint (data);
+ keysyms[i + 1] = codepoint;
+ break;
+ }
+
+ n_compose++;
+ }
+
+ if (check_compact_table (keysyms,
+ &ibus_compose_table_compact,
+ n_compose))
+ removed_table = g_list_append (removed_table, array);
+
+ else if (check_algorithmically (keysyms, n_compose))
+ removed_table = g_list_append (removed_table, array);
+ }
+
+ for (table = removed_table; table != NULL; table = table->next) {
+ GArray *array = (GArray *) table->data;
+ compose_table = g_list_remove (compose_table, array);
+ g_array_unref (array);
+ }
+
+ g_list_free (removed_table);
+
+ return compose_table;
+}
+
+static GList *
+check_uint16 (GList *compose_table)
+{
+ GList *table;
+ GList *removed_table = NULL;
+
+ for (table = compose_table; table != NULL; table = table->next) {
+ GArray *array = (GArray *) table->data;
+ int i;
+
+ for (i = 0; i < array->len; i++) {
+ const gchar *data = g_array_index (array, const gchar *, i);
+ guint codepoint = (guint) get_codepoint (data);
+
+ if (codepoint == 0)
+ break;
+
+ if (codepoint > 0xffff) {
+ removed_table = g_list_append (removed_table, array);
+ break;
+ }
+ }
+ }
+
+ for (table = removed_table; table != NULL; table = table->next) {
+ GArray *array = (GArray *) table->data;
+ compose_table = g_list_remove (compose_table, array);
+ g_array_unref (array);
+ }
+
+ g_list_free (removed_table);
+
+ return compose_table;
+}
+
+static GList *
+format_for_gtk (GList *compose_table)
+{
+ GList *table;
+ GList *new_table = NULL;
+ int i;
+ int j;
+
+ for (table = compose_table; table != NULL; table = table->next) {
+ GArray *array = (GArray *) table->data;
+
+ for (i = 0; i < array->len; i++) {
+ const gchar *data = g_array_index (array, const gchar *, i);
+ guint codepoint = (guint) get_codepoint (data);
+
+ if (codepoint == 0) {
+ if (MAX_COMPOSE_LEN < i)
+ MAX_COMPOSE_LEN = i;
+ break;
+ }
+ }
+ }
+
+ N_INDEX_STRIDE = MAX_COMPOSE_LEN + 2;
+
+ for (table = compose_table; table != NULL; table = table->next) {
+ GArray *array = (GArray *) table->data;
+ for (i = 0; i < array->len; i++) {
+ const gchar *data = g_array_index (array, const gchar *, i);
+ guint codepoint = (guint) get_codepoint (data);
+
+ if (codepoint == 0) {
+ gchar *value = g_strdup (g_array_index (array, const gchar *,
+ i + 1));
+ gchar *comment = g_strdup (g_array_index (array, const gchar *,
+ i + 2));
+ gchar *result;
+
+ g_array_remove_range (array, i, array->len - i);
+
+ for (j = i; j < MAX_COMPOSE_LEN; j++) {
+ result = g_strdup ("0");
+ g_array_append_val (array, result);
+ }
+
+ codepoint = (guint) get_codepoint (value);
+ g_free (value);
+
+ if (codepoint > 0xffff) {
+ result = g_strdup_printf ("0x%04X", codepoint / 0x10000);
+ g_array_append_val (array, result);
+ result = g_strdup_printf ("0x%04X",
+ codepoint - codepoint / 0x10000 * 0x10000);
+ g_array_append_val (array, result);
+ } else {
+ result = g_strdup ("0");
+ g_array_append_val (array, result);
+ result = g_strdup_printf ("0x%04X", codepoint);
+ g_array_append_val (array, result);
+ }
+
+ g_array_append_val (array, comment);
+ new_table = g_list_append (new_table, array);
+ break;
+ }
+ }
+ }
+
+ return new_table;
+}
+
+static gint
+compare_array (gpointer a, gpointer b)
+{
+ GArray *array_a = (GArray *) a;
+ GArray *array_b = (GArray *) b;
+ int i;
+ for (i = 0; i < MAX_COMPOSE_LEN; i++) {
+ const gchar *data_a = g_array_index (array_a, const gchar *, i);
+ const gchar *data_b = g_array_index (array_b, const gchar *, i);
+ gint code_a = get_codepoint (data_a);
+ gint code_b = get_codepoint (data_b);
+
+ if (code_a != code_b)
+ return code_a - code_b;
+ }
+ return 0;
+}
+
+static void
+print_compose_table (GList *compose_table)
+{
+ GList *table;
+ int i;
+ int TOTAL_SIZE = 0;
+
+ for (table = compose_table; table != NULL; table = table->next) {
+ GArray *array = (GArray *) table->data;
+ const gchar *data;
+ const gchar *upper;
+ const gchar *lower;
+ const gchar *comment;
+
+ g_assert (array->len >= MAX_COMPOSE_LEN + 2);
+
+ g_printf (" ");
+ for (i = 0; i < MAX_COMPOSE_LEN; i++) {
+ data = g_array_index (array, const gchar *, i);
+
+ if (i == MAX_COMPOSE_LEN -1)
+ g_printf ("%s,\n", data);
+ else
+ g_printf ("%s, ", data);
+ }
+ upper = g_array_index (array, const gchar *, i);
+ lower = g_array_index (array, const gchar *, i + 1);
+ comment = g_array_index (array, const gchar *, i + 2);
+
+ if (table == g_list_last (compose_table))
+ g_printf (" %s, %s /* %s */\n", upper, lower, comment);
+ else
+ g_printf (" %s, %s, /* %s */\n", upper, lower, comment);
+
+ TOTAL_SIZE += N_INDEX_STRIDE;
+ }
+
+ g_printerr ("TOTAL_SIZE: %d\nMAX_COMPOSE_LEN: %d\nN_INDEX_STRIDE: %d\n",
+ TOTAL_SIZE, MAX_COMPOSE_LEN, N_INDEX_STRIDE);
+}
+
+static void
+print_compose_table_locale_list (void) {
+ int i;
+
+#define HEADER_IBUS_COMPOSE_TABLE_LOCLE_LIST \
+ "static const IBusComposeTableLocaleList ibus_compose_table_locale_list[] = {"
+
+ g_printf ("%s\n", HEADER_IBUS_COMPOSE_TABLE_LOCLE_LIST);
+
+ for (i = 0; COMPOSE_FILES[i] != NULL; i++) {
+ const gchar *compose_file = COMPOSE_FILES[i];
+
+ if (g_strstr_len (compose_file, -1, "am_ET") != NULL)
+ continue;
+ else if (g_strstr_len (compose_file, -1, "el_GR") != NULL)
+ PRINT_LOCALE_AND_IBUS_COMPOSE_TABLE (el_gr);
+ else if (g_strstr_len (compose_file, -1, "fi_FI") != NULL)
+ PRINT_LOCALE_AND_IBUS_COMPOSE_TABLE (fi_fi);
+ else if (g_strstr_len (compose_file, -1, "pt_BR") != NULL)
+ PRINT_LOCALE_AND_IBUS_COMPOSE_TABLE (pt_br);
+ else
+ g_assert_not_reached ();
+ }
+
+ g_printf (" { NULL, NULL }\n};\n\n");
+};
+
+int
+main (int argc, char *argv[])
+{
+ int i;
+ const gchar *en_keysym_file;
+ const gchar *compose_file;
+ GList *compose_table = NULL;
+
+ setlocale (LC_ALL, "");
+
+ en_keysym_file = g_getenv ("IBUS_KEYSYMS");
+
+ if (en_keysym_file == NULL) {
+ en_keysym_file = "ibuskeysyms.h";
+ }
+
+ en_keysym_table = parse_keysym_file (en_keysym_file);
+
+ g_printf ("%s\n", HEADER);
+
+ for (i = 0; COMPOSE_FILES[i] != NULL; i++) {
+ compose_file = COMPOSE_FILES[i];
+
+ MAX_COMPOSE_LEN = 0;
+ N_INDEX_STRIDE = 0;
+
+ if (g_strstr_len (compose_file, -1, "am_ET") != NULL) {
+ g_printf ("%s\n", AM_ET_ARRAY);
+ continue;
+ }
+ else if (g_strstr_len (compose_file, -1, "el_GR") != NULL) {
+ g_printerr ("Generating ibus_compose_seqs_el_gr ...\n");
+ g_printf ("static const guint16 ibus_compose_seqs_el_gr[] = {\n");
+ }
+ else if (g_strstr_len (compose_file, -1, "fi_FI") != NULL) {
+ g_printerr ("Generating ibus_compose_seqs_fi_fi ...\n");
+ g_printf ("static const guint16 ibus_compose_seqs_fi_fi[] = {\n");
+ }
+ else if (g_strstr_len (compose_file, -1, "pt_BR") != NULL) {
+ g_printerr ("Generating ibus_compose_seqs_pt_br ...\n");
+ g_printf ("static const guint16 ibus_compose_seqs_pt_br[] = {\n");
+ }
+ else
+ g_assert_not_reached ();
+
+ compose_table = parse_compose_file (compose_file);
+ compose_table = check_duplicated_compose (compose_table);
+ compose_table = check_uint16 (compose_table);
+ compose_table = format_for_gtk (compose_table);
+ compose_table = g_list_sort (compose_table,
+ (GCompareFunc) compare_array);
+
+ print_compose_table (compose_table);
+
+ g_printf ("};\n\n");
+
+ if (g_strstr_len (compose_file, -1, "el_GR") != NULL)
+ PRINT_IBUS_COMPOSE_TABLE_LOCALE (el_gr, MAX_COMPOSE_LEN);
+ else if (g_strstr_len (compose_file, -1, "fi_FI") != NULL)
+ PRINT_IBUS_COMPOSE_TABLE_LOCALE (fi_fi, MAX_COMPOSE_LEN);
+ else if (g_strstr_len (compose_file, -1, "pt_BR") != NULL)
+ PRINT_IBUS_COMPOSE_TABLE_LOCALE (pt_br, MAX_COMPOSE_LEN);
+ else
+ g_assert_not_reached ();
+
+ g_list_free_full (compose_table, (GDestroyNotify) g_array_unref);
+ }
+
+ print_compose_table_locale_list ();
+
+ g_printf ("%s\n", FOOTER);
+
+ g_hash_table_destroy (en_keysym_table);
+
+ return 0;
+}
diff --git a/src/gtkimcontextsimpleseqs.h b/src/gtkimcontextsimpleseqs.h
index df09defe..4198a3a7 100644
--- a/src/gtkimcontextsimpleseqs.h
+++ b/src/gtkimcontextsimpleseqs.h
@@ -65,30 +65,31 @@
*/
static const guint16 gtk_compose_seqs_compact[] = {
-IBUS_KEY_dead_stroke, 144, 232, 241, 241, 241,
-IBUS_KEY_Greek_accentdieresis, 241, 245, 245, 245, 245,
-IBUS_KEY_dead_grave, 245, 307, 394, 606, 606,
-IBUS_KEY_dead_acute, 606, 670, 766, 1042, 1042,
-IBUS_KEY_dead_circumflex, 1042, 1166, 1166, 1366, 1366,
-IBUS_KEY_dead_tilde, 1366, 1450, 1513, 1653, 1653,
-IBUS_KEY_dead_macron, 1653, 1699, 1699, 1771, 1771,
-IBUS_KEY_dead_breve, 1771, 1821, 1821, 1845, 1845,
-IBUS_KEY_dead_abovedot, 1845, 1875, 1878, 1910, 1910,
-IBUS_KEY_dead_diaeresis, 1910, 1998, 2007, 2031, 2031,
-IBUS_KEY_dead_abovering, 2031, 2041, 2041, 2041, 2041,
-IBUS_KEY_dead_doubleacute, 2041, 2051, 2051, 2051, 2051,
-IBUS_KEY_dead_caron, 2051, 2093, 2093, 2101, 2101,
-IBUS_KEY_dead_cedilla, 2101, 2113, 2113, 2113, 2113,
-IBUS_KEY_dead_ogonek, 2113, 2123, 2123, 2123, 2123,
-IBUS_KEY_dead_iota, 2123, 2145, 2244, 2676, 3336,
-IBUS_KEY_dead_voiced_sound, 3336, 3382, 3382, 3382, 3382,
-IBUS_KEY_dead_semivoiced_sound, 3382, 3392, 3392, 3392, 3392,
-IBUS_KEY_dead_belowdot, 3392, 3408, 3408, 3424, 3424,
-IBUS_KEY_dead_hook, 3424, 3500, 3500, 3556, 3556,
-IBUS_KEY_dead_horn, 3556, 3566, 3566, 3566, 3566,
-IBUS_KEY_dead_psili, 3566, 3594, 3594, 3594, 3594,
-IBUS_KEY_dead_dasia, 3594, 3626, 3626, 3626, 3626,
-IBUS_KEY_Multi_key, 3626, 3626, 9566, 13274, 15139,
+IBUS_KEY_dead_stroke, 150, 238, 250, 250, 250,
+IBUS_KEY_Greek_accentdieresis, 250, 254, 254, 254, 254,
+IBUS_KEY_dead_grave, 254, 316, 403, 615, 615,
+IBUS_KEY_dead_acute, 615, 679, 775, 1051, 1051,
+IBUS_KEY_dead_circumflex, 1051, 1175, 1175, 1375, 1375,
+IBUS_KEY_dead_tilde, 1375, 1459, 1522, 1662, 1662,
+IBUS_KEY_dead_macron, 1662, 1708, 1726, 1798, 1798,
+IBUS_KEY_dead_breve, 1798, 1848, 1848, 1872, 1872,
+IBUS_KEY_dead_abovedot, 1872, 1902, 1905, 1941, 1941,
+IBUS_KEY_dead_diaeresis, 1941, 2029, 2038, 2062, 2062,
+IBUS_KEY_dead_abovering, 2062, 2072, 2072, 2072, 2072,
+IBUS_KEY_dead_doubleacute, 2072, 2082, 2082, 2082, 2082,
+IBUS_KEY_dead_caron, 2082, 2124, 2124, 2132, 2132,
+IBUS_KEY_dead_cedilla, 2132, 2144, 2144, 2144, 2144,
+IBUS_KEY_dead_ogonek, 2144, 2154, 2154, 2154, 2154,
+IBUS_KEY_dead_iota, 2154, 2176, 2275, 2707, 3367,
+IBUS_KEY_dead_voiced_sound, 3367, 3413, 3413, 3413, 3413,
+IBUS_KEY_dead_semivoiced_sound, 3413, 3423, 3423, 3423, 3423,
+IBUS_KEY_dead_belowdot, 3423, 3439, 3439, 3455, 3455,
+IBUS_KEY_dead_hook, 3455, 3533, 3536, 3592, 3592,
+IBUS_KEY_dead_horn, 3592, 3602, 3602, 3602, 3602,
+IBUS_KEY_dead_psili, 3602, 3630, 3630, 3630, 3630,
+IBUS_KEY_dead_dasia, 3630, 3662, 3662, 3662, 3662,
+IBUS_KEY_dead_greek, 3662, 3764, 3788, 3788, 3788,
+IBUS_KEY_Multi_key, 3788, 3788, 10241, 13949, 15824,
IBUS_KEY_space, 0x002F,
IBUS_KEY_2, 0x01BB,
IBUS_KEY_A, 0x023A,
@@ -136,6 +137,7 @@ IBUS_KEY_greaterthanequal, 0x2271,
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_iota, 0x0390,
IBUS_KEY_Greek_upsilon, 0x03B0,
IBUS_KEY_space, 0x0060,
@@ -617,6 +619,12 @@ 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,
@@ -688,6 +696,7 @@ 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,
@@ -1136,6 +1145,7 @@ 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,
@@ -1149,6 +1159,7 @@ IBUS_KEY_abreve, 0x1EB3,
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,
@@ -1198,6 +1209,65 @@ IBUS_KEY_Greek_omicron, 0x1F41,
IBUS_KEY_Greek_rho, 0x1FE5,
IBUS_KEY_Greek_upsilon, 0x1F51,
IBUS_KEY_Greek_omega, 0x1F61,
+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_stroke, IBUS_KEY_r, 0x03FC,
+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_space, IBUS_KEY_space, 0x00A0,
IBUS_KEY_space, IBUS_KEY_apostrophe, 0x0027,
IBUS_KEY_space, IBUS_KEY_parenleft, 0x02D8,
@@ -1255,7 +1325,6 @@ 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_slash, 0x301E,
IBUS_KEY_quotedbl, IBUS_KEY_less, 0x201C,
IBUS_KEY_quotedbl, IBUS_KEY_greater, 0x201D,
IBUS_KEY_quotedbl, IBUS_KEY_A, 0x00C4,
@@ -1267,7 +1336,6 @@ 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_backslash, 0x301D,
IBUS_KEY_quotedbl, IBUS_KEY_a, 0x00E4,
IBUS_KEY_quotedbl, IBUS_KEY_e, 0x00EB,
IBUS_KEY_quotedbl, IBUS_KEY_h, 0x1E27,
@@ -1316,8 +1384,12 @@ 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,
@@ -1433,6 +1505,7 @@ 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,
@@ -1479,6 +1552,8 @@ 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,
@@ -1523,6 +1598,7 @@ 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, 0x00C3,
@@ -1534,6 +1610,7 @@ IBUS_KEY_minus, IBUS_KEY_N, 0x00D1,
IBUS_KEY_minus, IBUS_KEY_O, 0x00D5,
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,
@@ -1544,8 +1621,12 @@ 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,
@@ -1597,6 +1678,8 @@ 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,
@@ -1622,6 +1705,7 @@ 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,
@@ -1633,7 +1717,9 @@ 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,
@@ -1641,12 +1727,15 @@ 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,
@@ -1665,14 +1754,18 @@ 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_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,
@@ -1686,6 +1779,7 @@ 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,
@@ -1695,6 +1789,7 @@ 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,
@@ -1705,6 +1800,7 @@ 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_C, 0x20AC,
IBUS_KEY_equal, IBUS_KEY_E, 0x20AC,
@@ -1714,7 +1810,9 @@ 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_l, 0x00A3,
IBUS_KEY_equal, IBUS_KEY_o, 0x0151,
@@ -1725,9 +1823,11 @@ 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,
@@ -1735,12 +1835,15 @@ 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,
@@ -1763,6 +1866,7 @@ 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,
@@ -1792,6 +1896,7 @@ 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,
@@ -1810,21 +1915,26 @@ 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_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,
@@ -1889,6 +1999,7 @@ 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,
@@ -1957,6 +2068,11 @@ 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,
@@ -2036,6 +2152,7 @@ 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,
@@ -2049,7 +2166,9 @@ 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,
@@ -2096,7 +2215,19 @@ 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,
@@ -2279,12 +2410,13 @@ 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_c, 0x01B7, 0x01EE,
-IBUS_KEY_c, 0x0292, 0x01EF,
-IBUS_KEY_d, IBUS_KEY_minus, 0x20AB,
+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,
@@ -2301,21 +2433,27 @@ 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,
@@ -2382,6 +2520,7 @@ 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,
@@ -2403,6 +2542,7 @@ 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,
@@ -2421,9 +2561,19 @@ 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,
@@ -2440,6 +2590,8 @@ 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,
@@ -2474,7 +2626,12 @@ 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,
@@ -2490,6 +2647,10 @@ 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,
@@ -2537,6 +2698,7 @@ 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,
@@ -2668,6 +2830,7 @@ 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,
@@ -3121,15 +3284,48 @@ IBUS_KEY_righttack, 0x0338, 0x22AC,
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,
@@ -3138,10 +3334,20 @@ IBUS_KEY_righttack, 0x0338, 0x22AC,
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,
@@ -3149,6 +3355,41 @@ IBUS_KEY_righttack, 0x0338, 0x22AC,
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,
@@ -3503,6 +3744,8 @@ 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,
@@ -3518,6 +3761,7 @@ 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,
@@ -3544,8 +3788,6 @@ 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_comma, IBUS_KEY_E, 0x1E1C,
-IBUS_KEY_U, IBUS_KEY_comma, IBUS_KEY_e, 0x1E1D,
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,
@@ -3748,8 +3990,6 @@ 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_o, IBUS_KEY_apostrophe, IBUS_KEY_A, 0x01FA,
-IBUS_KEY_o, IBUS_KEY_apostrophe, IBUS_KEY_a, 0x01FB,
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,
@@ -4105,6 +4345,7 @@ 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,
@@ -4311,6 +4552,8 @@ 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,
diff --git a/src/ibuscomposetable.h b/src/ibuscomposetable.h
new file mode 100644
index 00000000..ba8e3efc
--- /dev/null
+++ b/src/ibuscomposetable.h
@@ -0,0 +1,2658 @@
+/* -*- mode: C; c-basic-offset: 4; indent-tabs-mode: nil; -*- */
+/* vim:set et sts=4: */
+/* ibus - The Input Bus
+ * Copyright (C) 2013 Peng Huang <shawn.p.huang@gmail.com>
+ * Copyright (C) 2013 Takao Fujiwara <takao.fujiwara1@gmail.com>
+ *
+ * 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
+ */
+
+#ifndef __IBUS_COMPOSETABLE_H_
+#define __IBUS_COMPOSETABLE_H_
+
+/* The table is generated by ibus/src/gencomposetable
+ *
+ * if ibus_compose_seqs_a[N - 1] is an outputed compose character,
+ * ibus_compose_seqs_a[N * 2 - 1] is also an outputed compose character.
+ * and ibus_compose_seqs_a[0] to ibus_compose_seqs_a[0 + N - 3] are the
+ * sequences and call ibus_engine_simple_add_table:
+ * ibus_engine_simple_add_table(engine, ibus_compose_seqs_a,
+ * N - 2, G_N_ELEMENTS(ibus_compose_seqs_a) / N)
+ * The compose sequences are allowed within G_MAXUINT16 */
+
+typedef struct _IBusComposeTable IBusComposeTable;
+struct _IBusComposeTable
+{
+ const guint16 *data;
+ gint max_seq_len;
+ gint n_seqs;
+};
+
+typedef struct _IBusComposeTableLocaleList IBusComposeTableLocaleList;
+struct _IBusComposeTableLocaleList
+{
+ const gchar *locale;
+ const IBusComposeTable *table;
+};
+
+static const guint16 ibus_compose_seqs_am_et[] = {
+ /* Not sure if am_ET compose file is useful. It uses ASCII key
+ * at first but not compose keys.
+ * Comment out am_compose_seqs until get the request. */
+ 0
+};
+
+static const IBusComposeTable ibus_compose_table_am_et = {
+ ibus_compose_seqs_am_et,
+ 0,
+ 0
+};
+
+static const guint16 ibus_compose_seqs_el_gr[] = {
+ IBUS_KEY_dead_grave, IBUS_KEY_space, 0, 0, 0,
+ 0, 0x1FEF, /* U1fef */
+ IBUS_KEY_dead_grave, IBUS_KEY_underscore, 0, 0, 0,
+ 0, 0x0060, /* grave */
+ IBUS_KEY_dead_grave, IBUS_KEY_dead_grave, 0, 0, 0,
+ 0, 0x1FEF, /* U1fef */
+ IBUS_KEY_dead_grave, IBUS_KEY_dead_diaeresis, IBUS_KEY_space, 0, 0,
+ 0, 0x1FED, /* U1fed */
+ IBUS_KEY_dead_grave, IBUS_KEY_dead_ogonek, IBUS_KEY_space, 0, 0,
+ 0, 0x1FDD, /* U1fdd */
+ IBUS_KEY_dead_grave, IBUS_KEY_dead_ogonek, IBUS_KEY_Greek_ALPHA, 0, 0,
+ 0, 0x1F0B, /* U1f0b */
+ IBUS_KEY_dead_grave, IBUS_KEY_dead_ogonek, IBUS_KEY_Greek_EPSILON, 0, 0,
+ 0, 0x1F1B, /* U1f1b */
+ IBUS_KEY_dead_grave, IBUS_KEY_dead_ogonek, IBUS_KEY_Greek_ETA, 0, 0,
+ 0, 0x1F2B, /* U1f2b */
+ IBUS_KEY_dead_grave, IBUS_KEY_dead_ogonek, IBUS_KEY_Greek_IOTA, 0, 0,
+ 0, 0x1F3B, /* U1f3b */
+ IBUS_KEY_dead_grave, IBUS_KEY_dead_ogonek, IBUS_KEY_Greek_OMICRON, 0, 0,
+ 0, 0x1F4B, /* U1f4b */
+ IBUS_KEY_dead_grave, IBUS_KEY_dead_ogonek, IBUS_KEY_Greek_UPSILON, 0, 0,
+ 0, 0x1F5B, /* U1f5b */
+ IBUS_KEY_dead_grave, IBUS_KEY_dead_ogonek, IBUS_KEY_Greek_OMEGA, 0, 0,
+ 0, 0x1F6B, /* U1f6b */
+ IBUS_KEY_dead_grave, IBUS_KEY_dead_ogonek, IBUS_KEY_Greek_alpha, 0, 0,
+ 0, 0x1F03, /* U1f03 */
+ IBUS_KEY_dead_grave, IBUS_KEY_dead_ogonek, IBUS_KEY_Greek_epsilon, 0, 0,
+ 0, 0x1F13, /* U1f13 */
+ IBUS_KEY_dead_grave, IBUS_KEY_dead_ogonek, IBUS_KEY_Greek_eta, 0, 0,
+ 0, 0x1F23, /* U1f23 */
+ IBUS_KEY_dead_grave, IBUS_KEY_dead_ogonek, IBUS_KEY_Greek_iota, 0, 0,
+ 0, 0x1F33, /* U1f33 */
+ IBUS_KEY_dead_grave, IBUS_KEY_dead_ogonek, IBUS_KEY_Greek_omicron, 0, 0,
+ 0, 0x1F43, /* U1f43 */
+ IBUS_KEY_dead_grave, IBUS_KEY_dead_ogonek, IBUS_KEY_Greek_upsilon, 0, 0,
+ 0, 0x1F53, /* U1f53 */
+ IBUS_KEY_dead_grave, IBUS_KEY_dead_ogonek, IBUS_KEY_Greek_omega, 0, 0,
+ 0, 0x1F63, /* U1f63 */
+ IBUS_KEY_dead_grave, IBUS_KEY_dead_ogonek, IBUS_KEY_dead_iota, IBUS_KEY_Greek_ALPHA, 0,
+ 0, 0x1F8B, /* U1f8b */
+ IBUS_KEY_dead_grave, IBUS_KEY_dead_ogonek, IBUS_KEY_dead_iota, IBUS_KEY_Greek_ETA, 0,
+ 0, 0x1F9B, /* U1f9b */
+ IBUS_KEY_dead_grave, IBUS_KEY_dead_ogonek, IBUS_KEY_dead_iota, IBUS_KEY_Greek_OMEGA, 0,
+ 0, 0x1FAB, /* U1fab */
+ IBUS_KEY_dead_grave, IBUS_KEY_dead_ogonek, IBUS_KEY_dead_iota, IBUS_KEY_Greek_alpha, 0,
+ 0, 0x1F83, /* U1f83 */
+ IBUS_KEY_dead_grave, IBUS_KEY_dead_ogonek, IBUS_KEY_dead_iota, IBUS_KEY_Greek_eta, 0,
+ 0, 0x1F93, /* U1f93 */
+ IBUS_KEY_dead_grave, IBUS_KEY_dead_ogonek, IBUS_KEY_dead_iota, IBUS_KEY_Greek_omega, 0,
+ 0, 0x1FA3, /* U1fa3 */
+ IBUS_KEY_dead_grave, IBUS_KEY_dead_iota, IBUS_KEY_dead_ogonek, IBUS_KEY_Greek_ALPHA, 0,
+ 0, 0x1F8B, /* U1f8b */
+ IBUS_KEY_dead_grave, IBUS_KEY_dead_iota, IBUS_KEY_dead_ogonek, IBUS_KEY_Greek_ETA, 0,
+ 0, 0x1F9B, /* U1f9b */
+ IBUS_KEY_dead_grave, IBUS_KEY_dead_iota, IBUS_KEY_dead_ogonek, IBUS_KEY_Greek_OMEGA, 0,
+ 0, 0x1FAB, /* U1fab */
+ IBUS_KEY_dead_grave, IBUS_KEY_dead_iota, IBUS_KEY_dead_ogonek, IBUS_KEY_Greek_alpha, 0,
+ 0, 0x1F83, /* U1f83 */
+ IBUS_KEY_dead_grave, IBUS_KEY_dead_iota, IBUS_KEY_dead_ogonek, IBUS_KEY_Greek_eta, 0,
+ 0, 0x1F93, /* U1f93 */
+ IBUS_KEY_dead_grave, IBUS_KEY_dead_iota, IBUS_KEY_dead_ogonek, IBUS_KEY_Greek_omega, 0,
+ 0, 0x1FA3, /* U1fa3 */
+ IBUS_KEY_dead_grave, IBUS_KEY_dead_iota, IBUS_KEY_dead_horn, IBUS_KEY_Greek_ALPHA, 0,
+ 0, 0x1F8A, /* U1f8a */
+ IBUS_KEY_dead_grave, IBUS_KEY_dead_iota, IBUS_KEY_dead_horn, IBUS_KEY_Greek_ETA, 0,
+ 0, 0x1F9A, /* U1f9a */
+ IBUS_KEY_dead_grave, IBUS_KEY_dead_iota, IBUS_KEY_dead_horn, IBUS_KEY_Greek_OMEGA, 0,
+ 0, 0x1FAA, /* U1faa */
+ IBUS_KEY_dead_grave, IBUS_KEY_dead_iota, IBUS_KEY_dead_horn, IBUS_KEY_Greek_alpha, 0,
+ 0, 0x1F82, /* U1f82 */
+ IBUS_KEY_dead_grave, IBUS_KEY_dead_iota, IBUS_KEY_dead_horn, IBUS_KEY_Greek_eta, 0,
+ 0, 0x1F92, /* U1f92 */
+ IBUS_KEY_dead_grave, IBUS_KEY_dead_iota, IBUS_KEY_dead_horn, IBUS_KEY_Greek_omega, 0,
+ 0, 0x1FA2, /* U1fa2 */
+ IBUS_KEY_dead_grave, IBUS_KEY_dead_horn, IBUS_KEY_space, 0, 0,
+ 0, 0x1FCD, /* U1fcd */
+ IBUS_KEY_dead_grave, IBUS_KEY_dead_horn, IBUS_KEY_Greek_ALPHA, 0, 0,
+ 0, 0x1F0A, /* U1f0a */
+ IBUS_KEY_dead_grave, IBUS_KEY_dead_horn, IBUS_KEY_Greek_EPSILON, 0, 0,
+ 0, 0x1F1A, /* U1f1a */
+ IBUS_KEY_dead_grave, IBUS_KEY_dead_horn, IBUS_KEY_Greek_ETA, 0, 0,
+ 0, 0x1F2A, /* U1f2a */
+ IBUS_KEY_dead_grave, IBUS_KEY_dead_horn, IBUS_KEY_Greek_IOTA, 0, 0,
+ 0, 0x1F3A, /* U1f3a */
+ IBUS_KEY_dead_grave, IBUS_KEY_dead_horn, IBUS_KEY_Greek_OMICRON, 0, 0,
+ 0, 0x1F4A, /* U1f4a */
+ IBUS_KEY_dead_grave, IBUS_KEY_dead_horn, IBUS_KEY_Greek_OMEGA, 0, 0,
+ 0, 0x1F6A, /* U1f6a */
+ IBUS_KEY_dead_grave, IBUS_KEY_dead_horn, IBUS_KEY_Greek_alpha, 0, 0,
+ 0, 0x1F02, /* U1f02 */
+ IBUS_KEY_dead_grave, IBUS_KEY_dead_horn, IBUS_KEY_Greek_epsilon, 0, 0,
+ 0, 0x1F12, /* U1f12 */
+ IBUS_KEY_dead_grave, IBUS_KEY_dead_horn, IBUS_KEY_Greek_eta, 0, 0,
+ 0, 0x1F22, /* U1f22 */
+ IBUS_KEY_dead_grave, IBUS_KEY_dead_horn, IBUS_KEY_Greek_iota, 0, 0,
+ 0, 0x1F32, /* U1f32 */
+ IBUS_KEY_dead_grave, IBUS_KEY_dead_horn, IBUS_KEY_Greek_omicron, 0, 0,
+ 0, 0x1F42, /* U1f42 */
+ IBUS_KEY_dead_grave, IBUS_KEY_dead_horn, IBUS_KEY_Greek_upsilon, 0, 0,
+ 0, 0x1F52, /* U1f52 */
+ IBUS_KEY_dead_grave, IBUS_KEY_dead_horn, IBUS_KEY_Greek_omega, 0, 0,
+ 0, 0x1F62, /* U1f62 */
+ IBUS_KEY_dead_grave, IBUS_KEY_dead_horn, IBUS_KEY_dead_iota, IBUS_KEY_Greek_ALPHA, 0,
+ 0, 0x1F8A, /* U1f8a */
+ IBUS_KEY_dead_grave, IBUS_KEY_dead_horn, IBUS_KEY_dead_iota, IBUS_KEY_Greek_ETA, 0,
+ 0, 0x1F9A, /* U1f9a */
+ IBUS_KEY_dead_grave, IBUS_KEY_dead_horn, IBUS_KEY_dead_iota, IBUS_KEY_Greek_OMEGA, 0,
+ 0, 0x1FAA, /* U1faa */
+ IBUS_KEY_dead_grave, IBUS_KEY_dead_horn, IBUS_KEY_dead_iota, IBUS_KEY_Greek_alpha, 0,
+ 0, 0x1F82, /* U1f82 */
+ IBUS_KEY_dead_grave, IBUS_KEY_dead_horn, IBUS_KEY_dead_iota, IBUS_KEY_Greek_eta, 0,
+ 0, 0x1F92, /* U1f92 */
+ IBUS_KEY_dead_grave, IBUS_KEY_dead_horn, IBUS_KEY_dead_iota, IBUS_KEY_Greek_omega, 0,
+ 0, 0x1FA2, /* U1fa2 */
+ IBUS_KEY_dead_grave, IBUS_KEY_dead_psili, IBUS_KEY_space, 0, 0,
+ 0, 0x1FCD, /* U1fcd */
+ IBUS_KEY_dead_grave, IBUS_KEY_dead_dasia, IBUS_KEY_space, 0, 0,
+ 0, 0x1FDD, /* U1fdd */
+ IBUS_KEY_dead_acute, IBUS_KEY_space, 0, 0, 0,
+ 0, 0x0384, /* U0384 */
+ IBUS_KEY_dead_acute, IBUS_KEY_period, 0, 0, 0,
+ 0, 0x00B7, /* periodcentered */
+ IBUS_KEY_dead_acute, IBUS_KEY_less, 0, 0, 0,
+ 0, 0x00AB, /* guillemotleft */
+ IBUS_KEY_dead_acute, IBUS_KEY_greater, 0, 0, 0,
+ 0, 0x00BB, /* guillemotright */
+ IBUS_KEY_dead_acute, IBUS_KEY_underscore, 0, 0, 0,
+ 0, 0x00B4, /* acute */
+ IBUS_KEY_dead_acute, IBUS_KEY_dead_acute, 0, 0, 0,
+ 0, 0x0384, /* U0384 */
+ IBUS_KEY_dead_acute, IBUS_KEY_dead_ogonek, IBUS_KEY_space, 0, 0,
+ 0, 0x1FDE, /* U1fde */
+ IBUS_KEY_dead_acute, IBUS_KEY_dead_ogonek, IBUS_KEY_Greek_ALPHA, 0, 0,
+ 0, 0x1F0D, /* U1f0d */
+ IBUS_KEY_dead_acute, IBUS_KEY_dead_ogonek, IBUS_KEY_Greek_EPSILON, 0, 0,
+ 0, 0x1F1D, /* U1f1d */
+ IBUS_KEY_dead_acute, IBUS_KEY_dead_ogonek, IBUS_KEY_Greek_ETA, 0, 0,
+ 0, 0x1F2D, /* U1f2d */
+ IBUS_KEY_dead_acute, IBUS_KEY_dead_ogonek, IBUS_KEY_Greek_IOTA, 0, 0,
+ 0, 0x1F3D, /* U1f3d */
+ IBUS_KEY_dead_acute, IBUS_KEY_dead_ogonek, IBUS_KEY_Greek_OMICRON, 0, 0,
+ 0, 0x1F4D, /* U1f4d */
+ IBUS_KEY_dead_acute, IBUS_KEY_dead_ogonek, IBUS_KEY_Greek_UPSILON, 0, 0,
+ 0, 0x1F5D, /* U1f5d */
+ IBUS_KEY_dead_acute, IBUS_KEY_dead_ogonek, IBUS_KEY_Greek_OMEGA, 0, 0,
+ 0, 0x1F6D, /* U1f6d */
+ IBUS_KEY_dead_acute, IBUS_KEY_dead_ogonek, IBUS_KEY_Greek_alpha, 0, 0,
+ 0, 0x1F05, /* U1f05 */
+ IBUS_KEY_dead_acute, IBUS_KEY_dead_ogonek, IBUS_KEY_Greek_epsilon, 0, 0,
+ 0, 0x1F15, /* U1f15 */
+ IBUS_KEY_dead_acute, IBUS_KEY_dead_ogonek, IBUS_KEY_Greek_eta, 0, 0,
+ 0, 0x1F25, /* U1f25 */
+ IBUS_KEY_dead_acute, IBUS_KEY_dead_ogonek, IBUS_KEY_Greek_iota, 0, 0,
+ 0, 0x1F35, /* U1f35 */
+ IBUS_KEY_dead_acute, IBUS_KEY_dead_ogonek, IBUS_KEY_Greek_omicron, 0, 0,
+ 0, 0x1F45, /* U1f45 */
+ IBUS_KEY_dead_acute, IBUS_KEY_dead_ogonek, IBUS_KEY_Greek_upsilon, 0, 0,
+ 0, 0x1F55, /* U1f55 */
+ IBUS_KEY_dead_acute, IBUS_KEY_dead_ogonek, IBUS_KEY_Greek_omega, 0, 0,
+ 0, 0x1F65, /* U1f65 */
+ IBUS_KEY_dead_acute, IBUS_KEY_dead_ogonek, IBUS_KEY_dead_iota, IBUS_KEY_Greek_ALPHA, 0,
+ 0, 0x1F8D, /* U1f8d */
+ IBUS_KEY_dead_acute, IBUS_KEY_dead_ogonek, IBUS_KEY_dead_iota, IBUS_KEY_Greek_ETA, 0,
+ 0, 0x1F9D, /* U1f9d */
+ IBUS_KEY_dead_acute, IBUS_KEY_dead_ogonek, IBUS_KEY_dead_iota, IBUS_KEY_Greek_OMEGA, 0,
+ 0, 0x1FAD, /* U1fad */
+ IBUS_KEY_dead_acute, IBUS_KEY_dead_ogonek, IBUS_KEY_dead_iota, IBUS_KEY_Greek_alpha, 0,
+ 0, 0x1F85, /* U1f85 */
+ IBUS_KEY_dead_acute, IBUS_KEY_dead_ogonek, IBUS_KEY_dead_iota, IBUS_KEY_Greek_eta, 0,
+ 0, 0x1F95, /* U1f95 */
+ IBUS_KEY_dead_acute, IBUS_KEY_dead_ogonek, IBUS_KEY_dead_iota, IBUS_KEY_Greek_omega, 0,
+ 0, 0x1FA5, /* U1fa5 */
+ IBUS_KEY_dead_acute, IBUS_KEY_dead_iota, IBUS_KEY_dead_ogonek, IBUS_KEY_Greek_ALPHA, 0,
+ 0, 0x1F8D, /* U1f8d */
+ IBUS_KEY_dead_acute, IBUS_KEY_dead_iota, IBUS_KEY_dead_ogonek, IBUS_KEY_Greek_ETA, 0,
+ 0, 0x1F9D, /* U1f9d */
+ IBUS_KEY_dead_acute, IBUS_KEY_dead_iota, IBUS_KEY_dead_ogonek, IBUS_KEY_Greek_OMEGA, 0,
+ 0, 0x1FAD, /* U1fad */
+ IBUS_KEY_dead_acute, IBUS_KEY_dead_iota, IBUS_KEY_dead_ogonek, IBUS_KEY_Greek_alpha, 0,
+ 0, 0x1F85, /* U1f85 */
+ IBUS_KEY_dead_acute, IBUS_KEY_dead_iota, IBUS_KEY_dead_ogonek, IBUS_KEY_Greek_eta, 0,
+ 0, 0x1F95, /* U1f95 */
+ IBUS_KEY_dead_acute, IBUS_KEY_dead_iota, IBUS_KEY_dead_ogonek, IBUS_KEY_Greek_omega, 0,
+ 0, 0x1FA5, /* U1fa5 */
+ IBUS_KEY_dead_acute, IBUS_KEY_dead_iota, IBUS_KEY_dead_horn, IBUS_KEY_Greek_ALPHA, 0,
+ 0, 0x1F8C, /* U1f8c */
+ IBUS_KEY_dead_acute, IBUS_KEY_dead_iota, IBUS_KEY_dead_horn, IBUS_KEY_Greek_ETA, 0,
+ 0, 0x1F9C, /* U1f9c */
+ IBUS_KEY_dead_acute, IBUS_KEY_dead_iota, IBUS_KEY_dead_horn, IBUS_KEY_Greek_OMEGA, 0,
+ 0, 0x1FAC, /* U1fac */
+ IBUS_KEY_dead_acute, IBUS_KEY_dead_iota, IBUS_KEY_dead_horn, IBUS_KEY_Greek_alpha, 0,
+ 0, 0x1F84, /* U1f84 */
+ IBUS_KEY_dead_acute, IBUS_KEY_dead_iota, IBUS_KEY_dead_horn, IBUS_KEY_Greek_eta, 0,
+ 0, 0x1F94, /* U1f94 */
+ IBUS_KEY_dead_acute, IBUS_KEY_dead_iota, IBUS_KEY_dead_horn, IBUS_KEY_Greek_omega, 0,
+ 0, 0x1FA4, /* U1fa4 */
+ IBUS_KEY_dead_acute, IBUS_KEY_dead_horn, IBUS_KEY_space, 0, 0,
+ 0, 0x1FCE, /* U1fce */
+ IBUS_KEY_dead_acute, IBUS_KEY_dead_horn, IBUS_KEY_Greek_ALPHA, 0, 0,
+ 0, 0x1F0C, /* U1f0c */
+ IBUS_KEY_dead_acute, IBUS_KEY_dead_horn, IBUS_KEY_Greek_EPSILON, 0, 0,
+ 0, 0x1F1C, /* U1f1c */
+ IBUS_KEY_dead_acute, IBUS_KEY_dead_horn, IBUS_KEY_Greek_ETA, 0, 0,
+ 0, 0x1F2C, /* U1f2c */
+ IBUS_KEY_dead_acute, IBUS_KEY_dead_horn, IBUS_KEY_Greek_IOTA, 0, 0,
+ 0, 0x1F3C, /* U1f3c */
+ IBUS_KEY_dead_acute, IBUS_KEY_dead_horn, IBUS_KEY_Greek_OMICRON, 0, 0,
+ 0, 0x1F4C, /* U1f4c */
+ IBUS_KEY_dead_acute, IBUS_KEY_dead_horn, IBUS_KEY_Greek_OMEGA, 0, 0,
+ 0, 0x1F6C, /* U1f6c */
+ IBUS_KEY_dead_acute, IBUS_KEY_dead_horn, IBUS_KEY_Greek_alpha, 0, 0,
+ 0, 0x1F04, /* U1f04 */
+ IBUS_KEY_dead_acute, IBUS_KEY_dead_horn, IBUS_KEY_Greek_epsilon, 0, 0,
+ 0, 0x1F14, /* U1f14 */
+ IBUS_KEY_dead_acute, IBUS_KEY_dead_horn, IBUS_KEY_Greek_eta, 0, 0,
+ 0, 0x1F24, /* U1f24 */
+ IBUS_KEY_dead_acute, IBUS_KEY_dead_horn, IBUS_KEY_Greek_iota, 0, 0,
+ 0, 0x1F34, /* U1f34 */
+ IBUS_KEY_dead_acute, IBUS_KEY_dead_horn, IBUS_KEY_Greek_omicron, 0, 0,
+ 0, 0x1F44, /* U1f44 */
+ IBUS_KEY_dead_acute, IBUS_KEY_dead_horn, IBUS_KEY_Greek_upsilon, 0, 0,
+ 0, 0x1F54, /* U1f54 */
+ IBUS_KEY_dead_acute, IBUS_KEY_dead_horn, IBUS_KEY_Greek_omega, 0, 0,
+ 0, 0x1F64, /* U1f64 */
+ IBUS_KEY_dead_acute, IBUS_KEY_dead_horn, IBUS_KEY_dead_iota, IBUS_KEY_Greek_ALPHA, 0,
+ 0, 0x1F8C, /* U1f8c */
+ IBUS_KEY_dead_acute, IBUS_KEY_dead_horn, IBUS_KEY_dead_iota, IBUS_KEY_Greek_ETA, 0,
+ 0, 0x1F9C, /* U1f9c */
+ IBUS_KEY_dead_acute, IBUS_KEY_dead_horn, IBUS_KEY_dead_iota, IBUS_KEY_Greek_OMEGA, 0,
+ 0, 0x1FAC, /* U1fac */
+ IBUS_KEY_dead_acute, IBUS_KEY_dead_horn, IBUS_KEY_dead_iota, IBUS_KEY_Greek_alpha, 0,
+ 0, 0x1F84, /* U1f84 */
+ IBUS_KEY_dead_acute, IBUS_KEY_dead_horn, IBUS_KEY_dead_iota, IBUS_KEY_Greek_eta, 0,
+ 0, 0x1F94, /* U1f94 */
+ IBUS_KEY_dead_acute, IBUS_KEY_dead_horn, IBUS_KEY_dead_iota, IBUS_KEY_Greek_omega, 0,
+ 0, 0x1FA4, /* U1fa4 */
+ IBUS_KEY_dead_acute, IBUS_KEY_dead_psili, IBUS_KEY_space, 0, 0,
+ 0, 0x1FCE, /* U1fce */
+ IBUS_KEY_dead_acute, IBUS_KEY_dead_dasia, IBUS_KEY_space, 0, 0,
+ 0, 0x1FDE, /* U1fde */
+ IBUS_KEY_dead_tilde, IBUS_KEY_space, 0, 0, 0,
+ 0, 0x1FC0, /* U1fc0 */
+ IBUS_KEY_dead_tilde, IBUS_KEY_underscore, 0, 0, 0,
+ 0, 0x007E, /* asciitilde */
+ IBUS_KEY_dead_tilde, IBUS_KEY_dead_tilde, 0, 0, 0,
+ 0, 0x1FC0, /* U1fc0 */
+ IBUS_KEY_dead_tilde, IBUS_KEY_dead_diaeresis, IBUS_KEY_space, 0, 0,
+ 0, 0x1FC1, /* U1fc1 */
+ IBUS_KEY_dead_tilde, IBUS_KEY_dead_ogonek, IBUS_KEY_space, 0, 0,
+ 0, 0x1FDF, /* U1fdf */
+ IBUS_KEY_dead_tilde, IBUS_KEY_dead_ogonek, IBUS_KEY_Greek_ALPHA, 0, 0,
+ 0, 0x1F0F, /* U1f0f */
+ IBUS_KEY_dead_tilde, IBUS_KEY_dead_ogonek, IBUS_KEY_Greek_ETA, 0, 0,
+ 0, 0x1F2F, /* U1f2f */
+ IBUS_KEY_dead_tilde, IBUS_KEY_dead_ogonek, IBUS_KEY_Greek_IOTA, 0, 0,
+ 0, 0x1F3F, /* U1f3f */
+ IBUS_KEY_dead_tilde, IBUS_KEY_dead_ogonek, IBUS_KEY_Greek_UPSILON, 0, 0,
+ 0, 0x1F5F, /* U1f5f */
+ IBUS_KEY_dead_tilde, IBUS_KEY_dead_ogonek, IBUS_KEY_Greek_OMEGA, 0, 0,
+ 0, 0x1F6F, /* U1f6f */
+ IBUS_KEY_dead_tilde, IBUS_KEY_dead_ogonek, IBUS_KEY_Greek_alpha, 0, 0,
+ 0, 0x1F07, /* U1f07 */
+ IBUS_KEY_dead_tilde, IBUS_KEY_dead_ogonek, IBUS_KEY_Greek_eta, 0, 0,
+ 0, 0x1F27, /* U1f27 */
+ IBUS_KEY_dead_tilde, IBUS_KEY_dead_ogonek, IBUS_KEY_Greek_iota, 0, 0,
+ 0, 0x1F37, /* U1f37 */
+ IBUS_KEY_dead_tilde, IBUS_KEY_dead_ogonek, IBUS_KEY_Greek_upsilon, 0, 0,
+ 0, 0x1F57, /* U1f57 */
+ IBUS_KEY_dead_tilde, IBUS_KEY_dead_ogonek, IBUS_KEY_Greek_omega, 0, 0,
+ 0, 0x1F67, /* U1f67 */
+ IBUS_KEY_dead_tilde, IBUS_KEY_dead_ogonek, IBUS_KEY_dead_iota, IBUS_KEY_Greek_ALPHA, 0,
+ 0, 0x1F8F, /* U1f8f */
+ IBUS_KEY_dead_tilde, IBUS_KEY_dead_ogonek, IBUS_KEY_dead_iota, IBUS_KEY_Greek_ETA, 0,
+ 0, 0x1F9F, /* U1f9f */
+ IBUS_KEY_dead_tilde, IBUS_KEY_dead_ogonek, IBUS_KEY_dead_iota, IBUS_KEY_Greek_OMEGA, 0,
+ 0, 0x1FAF, /* U1faf */
+ IBUS_KEY_dead_tilde, IBUS_KEY_dead_ogonek, IBUS_KEY_dead_iota, IBUS_KEY_Greek_alpha, 0,
+ 0, 0x1F87, /* U1f87 */
+ IBUS_KEY_dead_tilde, IBUS_KEY_dead_ogonek, IBUS_KEY_dead_iota, IBUS_KEY_Greek_eta, 0,
+ 0, 0x1F97, /* U1f97 */
+ IBUS_KEY_dead_tilde, IBUS_KEY_dead_ogonek, IBUS_KEY_dead_iota, IBUS_KEY_Greek_omega, 0,
+ 0, 0x1FA7, /* U1fa7 */
+ IBUS_KEY_dead_tilde, IBUS_KEY_dead_iota, IBUS_KEY_dead_ogonek, IBUS_KEY_Greek_ALPHA, 0,
+ 0, 0x1F8F, /* U1f8f */
+ IBUS_KEY_dead_tilde, IBUS_KEY_dead_iota, IBUS_KEY_dead_ogonek, IBUS_KEY_Greek_ETA, 0,
+ 0, 0x1F9F, /* U1f9f */
+ IBUS_KEY_dead_tilde, IBUS_KEY_dead_iota, IBUS_KEY_dead_ogonek, IBUS_KEY_Greek_OMEGA, 0,
+ 0, 0x1FAF, /* U1faf */
+ IBUS_KEY_dead_tilde, IBUS_KEY_dead_iota, IBUS_KEY_dead_ogonek, IBUS_KEY_Greek_alpha, 0,
+ 0, 0x1F87, /* U1f87 */
+ IBUS_KEY_dead_tilde, IBUS_KEY_dead_iota, IBUS_KEY_dead_ogonek, IBUS_KEY_Greek_eta, 0,
+ 0, 0x1F97, /* U1f97 */
+ IBUS_KEY_dead_tilde, IBUS_KEY_dead_iota, IBUS_KEY_dead_ogonek, IBUS_KEY_Greek_omega, 0,
+ 0, 0x1FA7, /* U1fa7 */
+ IBUS_KEY_dead_tilde, IBUS_KEY_dead_iota, IBUS_KEY_dead_horn, IBUS_KEY_Greek_ALPHA, 0,
+ 0, 0x1F8E, /* U1f8e */
+ IBUS_KEY_dead_tilde, IBUS_KEY_dead_iota, IBUS_KEY_dead_horn, IBUS_KEY_Greek_ETA, 0,
+ 0, 0x1F9E, /* U1f9e */
+ IBUS_KEY_dead_tilde, IBUS_KEY_dead_iota, IBUS_KEY_dead_horn, IBUS_KEY_Greek_OMEGA, 0,
+ 0, 0x1FAE, /* U1fae */
+ IBUS_KEY_dead_tilde, IBUS_KEY_dead_iota, IBUS_KEY_dead_horn, IBUS_KEY_Greek_alpha, 0,
+ 0, 0x1F86, /* U1f86 */
+ IBUS_KEY_dead_tilde, IBUS_KEY_dead_iota, IBUS_KEY_dead_horn, IBUS_KEY_Greek_eta, 0,
+ 0, 0x1F96, /* U1f96 */
+ IBUS_KEY_dead_tilde, IBUS_KEY_dead_iota, IBUS_KEY_dead_horn, IBUS_KEY_Greek_omega, 0,
+ 0, 0x1FA6, /* U1fa6 */
+ IBUS_KEY_dead_tilde, IBUS_KEY_dead_horn, IBUS_KEY_space, 0, 0,
+ 0, 0x1FCF, /* U1fcf */
+ IBUS_KEY_dead_tilde, IBUS_KEY_dead_horn, IBUS_KEY_Greek_ALPHA, 0, 0,
+ 0, 0x1F0E, /* U1f0e */
+ IBUS_KEY_dead_tilde, IBUS_KEY_dead_horn, IBUS_KEY_Greek_ETA, 0, 0,
+ 0, 0x1F2E, /* U1f2e */
+ IBUS_KEY_dead_tilde, IBUS_KEY_dead_horn, IBUS_KEY_Greek_IOTA, 0, 0,
+ 0, 0x1F3E, /* U1f3e */
+ IBUS_KEY_dead_tilde, IBUS_KEY_dead_horn, IBUS_KEY_Greek_OMEGA, 0, 0,
+ 0, 0x1F6E, /* U1f6e */
+ IBUS_KEY_dead_tilde, IBUS_KEY_dead_horn, IBUS_KEY_Greek_alpha, 0, 0,
+ 0, 0x1F06, /* U1f06 */
+ IBUS_KEY_dead_tilde, IBUS_KEY_dead_horn, IBUS_KEY_Greek_eta, 0, 0,
+ 0, 0x1F26, /* U1f26 */
+ IBUS_KEY_dead_tilde, IBUS_KEY_dead_horn, IBUS_KEY_Greek_iota, 0, 0,
+ 0, 0x1F36, /* U1f36 */
+ IBUS_KEY_dead_tilde, IBUS_KEY_dead_horn, IBUS_KEY_Greek_upsilon, 0, 0,
+ 0, 0x1F56, /* U1f56 */
+ IBUS_KEY_dead_tilde, IBUS_KEY_dead_horn, IBUS_KEY_Greek_omega, 0, 0,
+ 0, 0x1F66, /* U1f66 */
+ IBUS_KEY_dead_tilde, IBUS_KEY_dead_horn, IBUS_KEY_dead_iota, IBUS_KEY_Greek_ALPHA, 0,
+ 0, 0x1F8E, /* U1f8e */
+ IBUS_KEY_dead_tilde, IBUS_KEY_dead_horn, IBUS_KEY_dead_iota, IBUS_KEY_Greek_ETA, 0,
+ 0, 0x1F9E, /* U1f9e */
+ IBUS_KEY_dead_tilde, IBUS_KEY_dead_horn, IBUS_KEY_dead_iota, IBUS_KEY_Greek_OMEGA, 0,
+ 0, 0x1FAE, /* U1fae */
+ IBUS_KEY_dead_tilde, IBUS_KEY_dead_horn, IBUS_KEY_dead_iota, IBUS_KEY_Greek_alpha, 0,
+ 0, 0x1F86, /* U1f86 */
+ IBUS_KEY_dead_tilde, IBUS_KEY_dead_horn, IBUS_KEY_dead_iota, IBUS_KEY_Greek_eta, 0,
+ 0, 0x1F96, /* U1f96 */
+ IBUS_KEY_dead_tilde, IBUS_KEY_dead_horn, IBUS_KEY_dead_iota, IBUS_KEY_Greek_omega, 0,
+ 0, 0x1FA6, /* U1fa6 */
+ IBUS_KEY_dead_tilde, IBUS_KEY_dead_psili, IBUS_KEY_space, 0, 0,
+ 0, 0x1FCF, /* U1fcf */
+ IBUS_KEY_dead_tilde, IBUS_KEY_dead_dasia, IBUS_KEY_space, 0, 0,
+ 0, 0x1FDF, /* U1fdf */
+ IBUS_KEY_dead_diaeresis, IBUS_KEY_space, 0, 0, 0,
+ 0, 0x00A8, /* diaeresis */
+ IBUS_KEY_dead_diaeresis, IBUS_KEY_period, 0, 0, 0,
+ 0, 0x00B7, /* periodcentered */
+ IBUS_KEY_dead_diaeresis, IBUS_KEY_less, 0, 0, 0,
+ 0, 0x00AB, /* guillemotleft */
+ IBUS_KEY_dead_diaeresis, IBUS_KEY_greater, 0, 0, 0,
+ 0, 0x00BB, /* guillemotright */
+ IBUS_KEY_dead_diaeresis, IBUS_KEY_dead_grave, IBUS_KEY_space, 0, 0,
+ 0, 0x1FED, /* U1fed */
+ IBUS_KEY_dead_diaeresis, IBUS_KEY_dead_tilde, IBUS_KEY_space, 0, 0,
+ 0, 0x1FC1, /* U1fc1 */
+ IBUS_KEY_dead_ogonek, IBUS_KEY_space, 0, 0, 0,
+ 0, 0x1FFE, /* U1ffe */
+ IBUS_KEY_dead_ogonek, IBUS_KEY_Greek_ALPHA, 0, 0, 0,
+ 0, 0x1F09, /* U1f09 */
+ IBUS_KEY_dead_ogonek, IBUS_KEY_Greek_EPSILON, 0, 0, 0,
+ 0, 0x1F19, /* U1f19 */
+ IBUS_KEY_dead_ogonek, IBUS_KEY_Greek_ETA, 0, 0, 0,
+ 0, 0x1F29, /* U1f29 */
+ IBUS_KEY_dead_ogonek, IBUS_KEY_Greek_IOTA, 0, 0, 0,
+ 0, 0x1F39, /* U1f39 */
+ IBUS_KEY_dead_ogonek, IBUS_KEY_Greek_OMICRON, 0, 0, 0,
+ 0, 0x1F49, /* U1f49 */
+ IBUS_KEY_dead_ogonek, IBUS_KEY_Greek_RHO, 0, 0, 0,
+ 0, 0x1FEC, /* U1fec */
+ IBUS_KEY_dead_ogonek, IBUS_KEY_Greek_UPSILON, 0, 0, 0,
+ 0, 0x1F59, /* U1f59 */
+ IBUS_KEY_dead_ogonek, IBUS_KEY_Greek_OMEGA, 0, 0, 0,
+ 0, 0x1F69, /* U1f69 */
+ IBUS_KEY_dead_ogonek, IBUS_KEY_Greek_alpha, 0, 0, 0,
+ 0, 0x1F01, /* U1f01 */
+ IBUS_KEY_dead_ogonek, IBUS_KEY_Greek_epsilon, 0, 0, 0,
+ 0, 0x1F11, /* U1f11 */
+ IBUS_KEY_dead_ogonek, IBUS_KEY_Greek_eta, 0, 0, 0,
+ 0, 0x1F21, /* U1f21 */
+ IBUS_KEY_dead_ogonek, IBUS_KEY_Greek_iota, 0, 0, 0,
+ 0, 0x1F31, /* U1f31 */
+ IBUS_KEY_dead_ogonek, IBUS_KEY_Greek_omicron, 0, 0, 0,
+ 0, 0x1F41, /* U1f41 */
+ IBUS_KEY_dead_ogonek, IBUS_KEY_Greek_rho, 0, 0, 0,
+ 0, 0x1FE5, /* U1fe5 */
+ IBUS_KEY_dead_ogonek, IBUS_KEY_Greek_upsilon, 0, 0, 0,
+ 0, 0x1F51, /* U1f51 */
+ IBUS_KEY_dead_ogonek, IBUS_KEY_Greek_omega, 0, 0, 0,
+ 0, 0x1F61, /* U1f61 */
+ IBUS_KEY_dead_ogonek, IBUS_KEY_dead_grave, IBUS_KEY_space, 0, 0,
+ 0, 0x1FDD, /* U1fdd */
+ IBUS_KEY_dead_ogonek, IBUS_KEY_dead_grave, IBUS_KEY_Greek_ALPHA, 0, 0,
+ 0, 0x1F0B, /* U1f0b */
+ IBUS_KEY_dead_ogonek, IBUS_KEY_dead_grave, IBUS_KEY_Greek_EPSILON, 0, 0,
+ 0, 0x1F1B, /* U1f1b */
+ IBUS_KEY_dead_ogonek, IBUS_KEY_dead_grave, IBUS_KEY_Greek_ETA, 0, 0,
+ 0, 0x1F2B, /* U1f2b */
+ IBUS_KEY_dead_ogonek, IBUS_KEY_dead_grave, IBUS_KEY_Greek_IOTA, 0, 0,
+ 0, 0x1F3B, /* U1f3b */
+ IBUS_KEY_dead_ogonek, IBUS_KEY_dead_grave, IBUS_KEY_Greek_OMICRON, 0, 0,
+ 0, 0x1F4B, /* U1f4b */
+ IBUS_KEY_dead_ogonek, IBUS_KEY_dead_grave, IBUS_KEY_Greek_UPSILON, 0, 0,
+ 0, 0x1F5B, /* U1f5b */
+ IBUS_KEY_dead_ogonek, IBUS_KEY_dead_grave, IBUS_KEY_Greek_OMEGA, 0, 0,
+ 0, 0x1F6B, /* U1f6b */
+ IBUS_KEY_dead_ogonek, IBUS_KEY_dead_grave, IBUS_KEY_Greek_alpha, 0, 0,
+ 0, 0x1F03, /* U1f03 */
+ IBUS_KEY_dead_ogonek, IBUS_KEY_dead_grave, IBUS_KEY_Greek_epsilon, 0, 0,
+ 0, 0x1F13, /* U1f13 */
+ IBUS_KEY_dead_ogonek, IBUS_KEY_dead_grave, IBUS_KEY_Greek_eta, 0, 0,
+ 0, 0x1F23, /* U1f23 */
+ IBUS_KEY_dead_ogonek, IBUS_KEY_dead_grave, IBUS_KEY_Greek_iota, 0, 0,
+ 0, 0x1F33, /* U1f33 */
+ IBUS_KEY_dead_ogonek, IBUS_KEY_dead_grave, IBUS_KEY_Greek_omicron, 0, 0,
+ 0, 0x1F43, /* U1f43 */
+ IBUS_KEY_dead_ogonek, IBUS_KEY_dead_grave, IBUS_KEY_Greek_upsilon, 0, 0,
+ 0, 0x1F53, /* U1f53 */
+ IBUS_KEY_dead_ogonek, IBUS_KEY_dead_grave, IBUS_KEY_Greek_omega, 0, 0,
+ 0, 0x1F63, /* U1f63 */
+ IBUS_KEY_dead_ogonek, IBUS_KEY_dead_grave, IBUS_KEY_dead_iota, IBUS_KEY_Greek_ALPHA, 0,
+ 0, 0x1F8B, /* U1f8b */
+ IBUS_KEY_dead_ogonek, IBUS_KEY_dead_grave, IBUS_KEY_dead_iota, IBUS_KEY_Greek_ETA, 0,
+ 0, 0x1F9B, /* U1f9b */
+ IBUS_KEY_dead_ogonek, IBUS_KEY_dead_grave, IBUS_KEY_dead_iota, IBUS_KEY_Greek_OMEGA, 0,
+ 0, 0x1FAB, /* U1fab */
+ IBUS_KEY_dead_ogonek, IBUS_KEY_dead_grave, IBUS_KEY_dead_iota, IBUS_KEY_Greek_alpha, 0,
+ 0, 0x1F83, /* U1f83 */
+ IBUS_KEY_dead_ogonek, IBUS_KEY_dead_grave, IBUS_KEY_dead_iota, IBUS_KEY_Greek_eta, 0,
+ 0, 0x1F93, /* U1f93 */
+ IBUS_KEY_dead_ogonek, IBUS_KEY_dead_grave, IBUS_KEY_dead_iota, IBUS_KEY_Greek_omega, 0,
+ 0, 0x1FA3, /* U1fa3 */
+ IBUS_KEY_dead_ogonek, IBUS_KEY_dead_acute, IBUS_KEY_space, 0, 0,
+ 0, 0x1FDE, /* U1fde */
+ IBUS_KEY_dead_ogonek, IBUS_KEY_dead_acute, IBUS_KEY_Greek_ALPHA, 0, 0,
+ 0, 0x1F0D, /* U1f0d */
+ IBUS_KEY_dead_ogonek, IBUS_KEY_dead_acute, IBUS_KEY_Greek_EPSILON, 0, 0,
+ 0, 0x1F1D, /* U1f1d */
+ IBUS_KEY_dead_ogonek, IBUS_KEY_dead_acute, IBUS_KEY_Greek_ETA, 0, 0,
+ 0, 0x1F2D, /* U1f2d */
+ IBUS_KEY_dead_ogonek, IBUS_KEY_dead_acute, IBUS_KEY_Greek_IOTA, 0, 0,
+ 0, 0x1F3D, /* U1f3d */
+ IBUS_KEY_dead_ogonek, IBUS_KEY_dead_acute, IBUS_KEY_Greek_OMICRON, 0, 0,
+ 0, 0x1F4D, /* U1f4d */
+ IBUS_KEY_dead_ogonek, IBUS_KEY_dead_acute, IBUS_KEY_Greek_UPSILON, 0, 0,
+ 0, 0x1F5D, /* U1f5d */
+ IBUS_KEY_dead_ogonek, IBUS_KEY_dead_acute, IBUS_KEY_Greek_OMEGA, 0, 0,
+ 0, 0x1F6D, /* U1f6d */
+ IBUS_KEY_dead_ogonek, IBUS_KEY_dead_acute, IBUS_KEY_Greek_alpha, 0, 0,
+ 0, 0x1F05, /* U1f05 */
+ IBUS_KEY_dead_ogonek, IBUS_KEY_dead_acute, IBUS_KEY_Greek_epsilon, 0, 0,
+ 0, 0x1F15, /* U1f15 */
+ IBUS_KEY_dead_ogonek, IBUS_KEY_dead_acute, IBUS_KEY_Greek_eta, 0, 0,
+ 0, 0x1F25, /* U1f25 */
+ IBUS_KEY_dead_ogonek, IBUS_KEY_dead_acute, IBUS_KEY_Greek_iota, 0, 0,
+ 0, 0x1F35, /* U1f35 */
+ IBUS_KEY_dead_ogonek, IBUS_KEY_dead_acute, IBUS_KEY_Greek_omicron, 0, 0,
+ 0, 0x1F45, /* U1f45 */
+ IBUS_KEY_dead_ogonek, IBUS_KEY_dead_acute, IBUS_KEY_Greek_upsilon, 0, 0,
+ 0, 0x1F55, /* U1f55 */
+ IBUS_KEY_dead_ogonek, IBUS_KEY_dead_acute, IBUS_KEY_Greek_omega, 0, 0,
+ 0, 0x1F65, /* U1f65 */
+ IBUS_KEY_dead_ogonek, IBUS_KEY_dead_acute, IBUS_KEY_dead_iota, IBUS_KEY_Greek_ALPHA, 0,
+ 0, 0x1F8D, /* U1f8d */
+ IBUS_KEY_dead_ogonek, IBUS_KEY_dead_acute, IBUS_KEY_dead_iota, IBUS_KEY_Greek_ETA, 0,
+ 0, 0x1F9D, /* U1f9d */
+ IBUS_KEY_dead_ogonek, IBUS_KEY_dead_acute, IBUS_KEY_dead_iota, IBUS_KEY_Greek_OMEGA, 0,
+ 0, 0x1FAD, /* U1fad */
+ IBUS_KEY_dead_ogonek, IBUS_KEY_dead_acute, IBUS_KEY_dead_iota, IBUS_KEY_Greek_alpha, 0,
+ 0, 0x1F85, /* U1f85 */
+ IBUS_KEY_dead_ogonek, IBUS_KEY_dead_acute, IBUS_KEY_dead_iota, IBUS_KEY_Greek_eta, 0,
+ 0, 0x1F95, /* U1f95 */
+ IBUS_KEY_dead_ogonek, IBUS_KEY_dead_acute, IBUS_KEY_dead_iota, IBUS_KEY_Greek_omega, 0,
+ 0, 0x1FA5, /* U1fa5 */
+ IBUS_KEY_dead_ogonek, IBUS_KEY_dead_tilde, IBUS_KEY_space, 0, 0,
+ 0, 0x1FDF, /* U1fdf */
+ IBUS_KEY_dead_ogonek, IBUS_KEY_dead_tilde, IBUS_KEY_Greek_ALPHA, 0, 0,
+ 0, 0x1F0F, /* U1f0f */
+ IBUS_KEY_dead_ogonek, IBUS_KEY_dead_tilde, IBUS_KEY_Greek_ETA, 0, 0,
+ 0, 0x1F2F, /* U1f2f */
+ IBUS_KEY_dead_ogonek, IBUS_KEY_dead_tilde, IBUS_KEY_Greek_IOTA, 0, 0,
+ 0, 0x1F3F, /* U1f3f */
+ IBUS_KEY_dead_ogonek, IBUS_KEY_dead_tilde, IBUS_KEY_Greek_UPSILON, 0, 0,
+ 0, 0x1F5F, /* U1f5f */
+ IBUS_KEY_dead_ogonek, IBUS_KEY_dead_tilde, IBUS_KEY_Greek_OMEGA, 0, 0,
+ 0, 0x1F6F, /* U1f6f */
+ IBUS_KEY_dead_ogonek, IBUS_KEY_dead_tilde, IBUS_KEY_Greek_alpha, 0, 0,
+ 0, 0x1F07, /* U1f07 */
+ IBUS_KEY_dead_ogonek, IBUS_KEY_dead_tilde, IBUS_KEY_Greek_eta, 0, 0,
+ 0, 0x1F27, /* U1f27 */
+ IBUS_KEY_dead_ogonek, IBUS_KEY_dead_tilde, IBUS_KEY_Greek_iota, 0, 0,
+ 0, 0x1F37, /* U1f37 */
+ IBUS_KEY_dead_ogonek, IBUS_KEY_dead_tilde, IBUS_KEY_Greek_upsilon, 0, 0,
+ 0, 0x1F57, /* U1f57 */
+ IBUS_KEY_dead_ogonek, IBUS_KEY_dead_tilde, IBUS_KEY_Greek_omega, 0, 0,
+ 0, 0x1F67, /* U1f67 */
+ IBUS_KEY_dead_ogonek, IBUS_KEY_dead_tilde, IBUS_KEY_dead_iota, IBUS_KEY_Greek_ALPHA, 0,
+ 0, 0x1F8F, /* U1f8f */
+ IBUS_KEY_dead_ogonek, IBUS_KEY_dead_tilde, IBUS_KEY_dead_iota, IBUS_KEY_Greek_ETA, 0,
+ 0, 0x1F9F, /* U1f9f */
+ IBUS_KEY_dead_ogonek, IBUS_KEY_dead_tilde, IBUS_KEY_dead_iota, IBUS_KEY_Greek_OMEGA, 0,
+ 0, 0x1FAF, /* U1faf */
+ IBUS_KEY_dead_ogonek, IBUS_KEY_dead_tilde, IBUS_KEY_dead_iota, IBUS_KEY_Greek_alpha, 0,
+ 0, 0x1F87, /* U1f87 */
+ IBUS_KEY_dead_ogonek, IBUS_KEY_dead_tilde, IBUS_KEY_dead_iota, IBUS_KEY_Greek_eta, 0,
+ 0, 0x1F97, /* U1f97 */
+ IBUS_KEY_dead_ogonek, IBUS_KEY_dead_tilde, IBUS_KEY_dead_iota, IBUS_KEY_Greek_omega, 0,
+ 0, 0x1FA7, /* U1fa7 */
+ IBUS_KEY_dead_ogonek, IBUS_KEY_dead_ogonek, 0, 0, 0,
+ 0, 0x1FFE, /* U1ffe */
+ IBUS_KEY_dead_ogonek, IBUS_KEY_dead_iota, IBUS_KEY_Greek_ALPHA, 0, 0,
+ 0, 0x1F89, /* U1f89 */
+ IBUS_KEY_dead_ogonek, IBUS_KEY_dead_iota, IBUS_KEY_Greek_ETA, 0, 0,
+ 0, 0x1F99, /* U1f99 */
+ IBUS_KEY_dead_ogonek, IBUS_KEY_dead_iota, IBUS_KEY_Greek_OMEGA, 0, 0,
+ 0, 0x1FA9, /* U1fa9 */
+ IBUS_KEY_dead_ogonek, IBUS_KEY_dead_iota, IBUS_KEY_Greek_alpha, 0, 0,
+ 0, 0x1F81, /* U1f81 */
+ IBUS_KEY_dead_ogonek, IBUS_KEY_dead_iota, IBUS_KEY_Greek_eta, 0, 0,
+ 0, 0x1F91, /* U1f91 */
+ IBUS_KEY_dead_ogonek, IBUS_KEY_dead_iota, IBUS_KEY_Greek_omega, 0, 0,
+ 0, 0x1FA1, /* U1fa1 */
+ IBUS_KEY_dead_ogonek, IBUS_KEY_dead_iota, IBUS_KEY_dead_grave, IBUS_KEY_Greek_ALPHA, 0,
+ 0, 0x1F8B, /* U1f8b */
+ IBUS_KEY_dead_ogonek, IBUS_KEY_dead_iota, IBUS_KEY_dead_grave, IBUS_KEY_Greek_ETA, 0,
+ 0, 0x1F9B, /* U1f9b */
+ IBUS_KEY_dead_ogonek, IBUS_KEY_dead_iota, IBUS_KEY_dead_grave, IBUS_KEY_Greek_OMEGA, 0,
+ 0, 0x1FAB, /* U1fab */
+ IBUS_KEY_dead_ogonek, IBUS_KEY_dead_iota, IBUS_KEY_dead_grave, IBUS_KEY_Greek_alpha, 0,
+ 0, 0x1F83, /* U1f83 */
+ IBUS_KEY_dead_ogonek, IBUS_KEY_dead_iota, IBUS_KEY_dead_grave, IBUS_KEY_Greek_eta, 0,
+ 0, 0x1F93, /* U1f93 */
+ IBUS_KEY_dead_ogonek, IBUS_KEY_dead_iota, IBUS_KEY_dead_grave, IBUS_KEY_Greek_omega, 0,
+ 0, 0x1FA3, /* U1fa3 */
+ IBUS_KEY_dead_ogonek, IBUS_KEY_dead_iota, IBUS_KEY_dead_acute, IBUS_KEY_Greek_ALPHA, 0,
+ 0, 0x1F8D, /* U1f8d */
+ IBUS_KEY_dead_ogonek, IBUS_KEY_dead_iota, IBUS_KEY_dead_acute, IBUS_KEY_Greek_ETA, 0,
+ 0, 0x1F9D, /* U1f9d */
+ IBUS_KEY_dead_ogonek, IBUS_KEY_dead_iota, IBUS_KEY_dead_acute, IBUS_KEY_Greek_OMEGA, 0,
+ 0, 0x1FAD, /* U1fad */
+ IBUS_KEY_dead_ogonek, IBUS_KEY_dead_iota, IBUS_KEY_dead_acute, IBUS_KEY_Greek_alpha, 0,
+ 0, 0x1F85, /* U1f85 */
+ IBUS_KEY_dead_ogonek, IBUS_KEY_dead_iota, IBUS_KEY_dead_acute, IBUS_KEY_Greek_eta, 0,
+ 0, 0x1F95, /* U1f95 */
+ IBUS_KEY_dead_ogonek, IBUS_KEY_dead_iota, IBUS_KEY_dead_acute, IBUS_KEY_Greek_omega, 0,
+ 0, 0x1FA5, /* U1fa5 */
+ IBUS_KEY_dead_ogonek, IBUS_KEY_dead_iota, IBUS_KEY_dead_tilde, IBUS_KEY_Greek_ALPHA, 0,
+ 0, 0x1F8F, /* U1f8f */
+ IBUS_KEY_dead_ogonek, IBUS_KEY_dead_iota, IBUS_KEY_dead_tilde, IBUS_KEY_Greek_ETA, 0,
+ 0, 0x1F9F, /* U1f9f */
+ IBUS_KEY_dead_ogonek, IBUS_KEY_dead_iota, IBUS_KEY_dead_tilde, IBUS_KEY_Greek_OMEGA, 0,
+ 0, 0x1FAF, /* U1faf */
+ IBUS_KEY_dead_ogonek, IBUS_KEY_dead_iota, IBUS_KEY_dead_tilde, IBUS_KEY_Greek_alpha, 0,
+ 0, 0x1F87, /* U1f87 */
+ IBUS_KEY_dead_ogonek, IBUS_KEY_dead_iota, IBUS_KEY_dead_tilde, IBUS_KEY_Greek_eta, 0,
+ 0, 0x1F97, /* U1f97 */
+ IBUS_KEY_dead_ogonek, IBUS_KEY_dead_iota, IBUS_KEY_dead_tilde, IBUS_KEY_Greek_omega, 0,
+ 0, 0x1FA7, /* U1fa7 */
+ IBUS_KEY_dead_iota, IBUS_KEY_underscore, 0, 0, 0,
+ 0, 0x1FBE, /* U1fbe */
+ IBUS_KEY_dead_iota, IBUS_KEY_dead_grave, IBUS_KEY_dead_ogonek, IBUS_KEY_Greek_ALPHA, 0,
+ 0, 0x1F8B, /* U1f8b */
+ IBUS_KEY_dead_iota, IBUS_KEY_dead_grave, IBUS_KEY_dead_ogonek, IBUS_KEY_Greek_ETA, 0,
+ 0, 0x1F9B, /* U1f9b */
+ IBUS_KEY_dead_iota, IBUS_KEY_dead_grave, IBUS_KEY_dead_ogonek, IBUS_KEY_Greek_OMEGA, 0,
+ 0, 0x1FAB, /* U1fab */
+ IBUS_KEY_dead_iota, IBUS_KEY_dead_grave, IBUS_KEY_dead_ogonek, IBUS_KEY_Greek_alpha, 0,
+ 0, 0x1F83, /* U1f83 */
+ IBUS_KEY_dead_iota, IBUS_KEY_dead_grave, IBUS_KEY_dead_ogonek, IBUS_KEY_Greek_eta, 0,
+ 0, 0x1F93, /* U1f93 */
+ IBUS_KEY_dead_iota, IBUS_KEY_dead_grave, IBUS_KEY_dead_ogonek, IBUS_KEY_Greek_omega, 0,
+ 0, 0x1FA3, /* U1fa3 */
+ IBUS_KEY_dead_iota, IBUS_KEY_dead_grave, IBUS_KEY_dead_horn, IBUS_KEY_Greek_ALPHA, 0,
+ 0, 0x1F8A, /* U1f8a */
+ IBUS_KEY_dead_iota, IBUS_KEY_dead_grave, IBUS_KEY_dead_horn, IBUS_KEY_Greek_ETA, 0,
+ 0, 0x1F9A, /* U1f9a */
+ IBUS_KEY_dead_iota, IBUS_KEY_dead_grave, IBUS_KEY_dead_horn, IBUS_KEY_Greek_OMEGA, 0,
+ 0, 0x1FAA, /* U1faa */
+ IBUS_KEY_dead_iota, IBUS_KEY_dead_grave, IBUS_KEY_dead_horn, IBUS_KEY_Greek_alpha, 0,
+ 0, 0x1F82, /* U1f82 */
+ IBUS_KEY_dead_iota, IBUS_KEY_dead_grave, IBUS_KEY_dead_horn, IBUS_KEY_Greek_eta, 0,
+ 0, 0x1F92, /* U1f92 */
+ IBUS_KEY_dead_iota, IBUS_KEY_dead_grave, IBUS_KEY_dead_horn, IBUS_KEY_Greek_omega, 0,
+ 0, 0x1FA2, /* U1fa2 */
+ IBUS_KEY_dead_iota, IBUS_KEY_dead_acute, IBUS_KEY_dead_ogonek, IBUS_KEY_Greek_ALPHA, 0,
+ 0, 0x1F8D, /* U1f8d */
+ IBUS_KEY_dead_iota, IBUS_KEY_dead_acute, IBUS_KEY_dead_ogonek, IBUS_KEY_Greek_ETA, 0,
+ 0, 0x1F9D, /* U1f9d */
+ IBUS_KEY_dead_iota, IBUS_KEY_dead_acute, IBUS_KEY_dead_ogonek, IBUS_KEY_Greek_OMEGA, 0,
+ 0, 0x1FAD, /* U1fad */
+ IBUS_KEY_dead_iota, IBUS_KEY_dead_acute, IBUS_KEY_dead_ogonek, IBUS_KEY_Greek_alpha, 0,
+ 0, 0x1F85, /* U1f85 */
+ IBUS_KEY_dead_iota, IBUS_KEY_dead_acute, IBUS_KEY_dead_ogonek, IBUS_KEY_Greek_eta, 0,
+ 0, 0x1F95, /* U1f95 */
+ IBUS_KEY_dead_iota, IBUS_KEY_dead_acute, IBUS_KEY_dead_ogonek, IBUS_KEY_Greek_omega, 0,
+ 0, 0x1FA5, /* U1fa5 */
+ IBUS_KEY_dead_iota, IBUS_KEY_dead_acute, IBUS_KEY_dead_horn, IBUS_KEY_Greek_ALPHA, 0,
+ 0, 0x1F8C, /* U1f8c */
+ IBUS_KEY_dead_iota, IBUS_KEY_dead_acute, IBUS_KEY_dead_horn, IBUS_KEY_Greek_ETA, 0,
+ 0, 0x1F9C, /* U1f9c */
+ IBUS_KEY_dead_iota, IBUS_KEY_dead_acute, IBUS_KEY_dead_horn, IBUS_KEY_Greek_OMEGA, 0,
+ 0, 0x1FAC, /* U1fac */
+ IBUS_KEY_dead_iota, IBUS_KEY_dead_acute, IBUS_KEY_dead_horn, IBUS_KEY_Greek_alpha, 0,
+ 0, 0x1F84, /* U1f84 */
+ IBUS_KEY_dead_iota, IBUS_KEY_dead_acute, IBUS_KEY_dead_horn, IBUS_KEY_Greek_eta, 0,
+ 0, 0x1F94, /* U1f94 */
+ IBUS_KEY_dead_iota, IBUS_KEY_dead_acute, IBUS_KEY_dead_horn, IBUS_KEY_Greek_omega, 0,
+ 0, 0x1FA4, /* U1fa4 */
+ IBUS_KEY_dead_iota, IBUS_KEY_dead_tilde, IBUS_KEY_dead_ogonek, IBUS_KEY_Greek_ALPHA, 0,
+ 0, 0x1F8F, /* U1f8f */
+ IBUS_KEY_dead_iota, IBUS_KEY_dead_tilde, IBUS_KEY_dead_ogonek, IBUS_KEY_Greek_ETA, 0,
+ 0, 0x1F9F, /* U1f9f */
+ IBUS_KEY_dead_iota, IBUS_KEY_dead_tilde, IBUS_KEY_dead_ogonek, IBUS_KEY_Greek_OMEGA, 0,
+ 0, 0x1FAF, /* U1faf */
+ IBUS_KEY_dead_iota, IBUS_KEY_dead_tilde, IBUS_KEY_dead_ogonek, IBUS_KEY_Greek_alpha, 0,
+ 0, 0x1F87, /* U1f87 */
+ IBUS_KEY_dead_iota, IBUS_KEY_dead_tilde, IBUS_KEY_dead_ogonek, IBUS_KEY_Greek_eta, 0,
+ 0, 0x1F97, /* U1f97 */
+ IBUS_KEY_dead_iota, IBUS_KEY_dead_tilde, IBUS_KEY_dead_ogonek, IBUS_KEY_Greek_omega, 0,
+ 0, 0x1FA7, /* U1fa7 */
+ IBUS_KEY_dead_iota, IBUS_KEY_dead_tilde, IBUS_KEY_dead_horn, IBUS_KEY_Greek_ALPHA, 0,
+ 0, 0x1F8E, /* U1f8e */
+ IBUS_KEY_dead_iota, IBUS_KEY_dead_tilde, IBUS_KEY_dead_horn, IBUS_KEY_Greek_ETA, 0,
+ 0, 0x1F9E, /* U1f9e */
+ IBUS_KEY_dead_iota, IBUS_KEY_dead_tilde, IBUS_KEY_dead_horn, IBUS_KEY_Greek_OMEGA, 0,
+ 0, 0x1FAE, /* U1fae */
+ IBUS_KEY_dead_iota, IBUS_KEY_dead_tilde, IBUS_KEY_dead_horn, IBUS_KEY_Greek_alpha, 0,
+ 0, 0x1F86, /* U1f86 */
+ IBUS_KEY_dead_iota, IBUS_KEY_dead_tilde, IBUS_KEY_dead_horn, IBUS_KEY_Greek_eta, 0,
+ 0, 0x1F96, /* U1f96 */
+ IBUS_KEY_dead_iota, IBUS_KEY_dead_tilde, IBUS_KEY_dead_horn, IBUS_KEY_Greek_omega, 0,
+ 0, 0x1FA6, /* U1fa6 */
+ IBUS_KEY_dead_iota, IBUS_KEY_dead_ogonek, IBUS_KEY_Greek_ALPHA, 0, 0,
+ 0, 0x1F89, /* U1f89 */
+ IBUS_KEY_dead_iota, IBUS_KEY_dead_ogonek, IBUS_KEY_Greek_ETA, 0, 0,
+ 0, 0x1F99, /* U1f99 */
+ IBUS_KEY_dead_iota, IBUS_KEY_dead_ogonek, IBUS_KEY_Greek_OMEGA, 0, 0,
+ 0, 0x1FA9, /* U1fa9 */
+ IBUS_KEY_dead_iota, IBUS_KEY_dead_ogonek, IBUS_KEY_Greek_alpha, 0, 0,
+ 0, 0x1F81, /* U1f81 */
+ IBUS_KEY_dead_iota, IBUS_KEY_dead_ogonek, IBUS_KEY_Greek_eta, 0, 0,
+ 0, 0x1F91, /* U1f91 */
+ IBUS_KEY_dead_iota, IBUS_KEY_dead_ogonek, IBUS_KEY_Greek_omega, 0, 0,
+ 0, 0x1FA1, /* U1fa1 */
+ IBUS_KEY_dead_iota, IBUS_KEY_dead_ogonek, IBUS_KEY_dead_grave, IBUS_KEY_Greek_ALPHA, 0,
+ 0, 0x1F8B, /* U1f8b */
+ IBUS_KEY_dead_iota, IBUS_KEY_dead_ogonek, IBUS_KEY_dead_grave, IBUS_KEY_Greek_ETA, 0,
+ 0, 0x1F9B, /* U1f9b */
+ IBUS_KEY_dead_iota, IBUS_KEY_dead_ogonek, IBUS_KEY_dead_grave, IBUS_KEY_Greek_OMEGA, 0,
+ 0, 0x1FAB, /* U1fab */
+ IBUS_KEY_dead_iota, IBUS_KEY_dead_ogonek, IBUS_KEY_dead_grave, IBUS_KEY_Greek_alpha, 0,
+ 0, 0x1F83, /* U1f83 */
+ IBUS_KEY_dead_iota, IBUS_KEY_dead_ogonek, IBUS_KEY_dead_grave, IBUS_KEY_Greek_eta, 0,
+ 0, 0x1F93, /* U1f93 */
+ IBUS_KEY_dead_iota, IBUS_KEY_dead_ogonek, IBUS_KEY_dead_grave, IBUS_KEY_Greek_omega, 0,
+ 0, 0x1FA3, /* U1fa3 */
+ IBUS_KEY_dead_iota, IBUS_KEY_dead_ogonek, IBUS_KEY_dead_acute, IBUS_KEY_Greek_ALPHA, 0,
+ 0, 0x1F8D, /* U1f8d */
+ IBUS_KEY_dead_iota, IBUS_KEY_dead_ogonek, IBUS_KEY_dead_acute, IBUS_KEY_Greek_ETA, 0,
+ 0, 0x1F9D, /* U1f9d */
+ IBUS_KEY_dead_iota, IBUS_KEY_dead_ogonek, IBUS_KEY_dead_acute, IBUS_KEY_Greek_OMEGA, 0,
+ 0, 0x1FAD, /* U1fad */
+ IBUS_KEY_dead_iota, IBUS_KEY_dead_ogonek, IBUS_KEY_dead_acute, IBUS_KEY_Greek_alpha, 0,
+ 0, 0x1F85, /* U1f85 */
+ IBUS_KEY_dead_iota, IBUS_KEY_dead_ogonek, IBUS_KEY_dead_acute, IBUS_KEY_Greek_eta, 0,
+ 0, 0x1F95, /* U1f95 */
+ IBUS_KEY_dead_iota, IBUS_KEY_dead_ogonek, IBUS_KEY_dead_acute, IBUS_KEY_Greek_omega, 0,
+ 0, 0x1FA5, /* U1fa5 */
+ IBUS_KEY_dead_iota, IBUS_KEY_dead_ogonek, IBUS_KEY_dead_tilde, IBUS_KEY_Greek_ALPHA, 0,
+ 0, 0x1F8F, /* U1f8f */
+ IBUS_KEY_dead_iota, IBUS_KEY_dead_ogonek, IBUS_KEY_dead_tilde, IBUS_KEY_Greek_ETA, 0,
+ 0, 0x1F9F, /* U1f9f */
+ IBUS_KEY_dead_iota, IBUS_KEY_dead_ogonek, IBUS_KEY_dead_tilde, IBUS_KEY_Greek_OMEGA, 0,
+ 0, 0x1FAF, /* U1faf */
+ IBUS_KEY_dead_iota, IBUS_KEY_dead_ogonek, IBUS_KEY_dead_tilde, IBUS_KEY_Greek_alpha, 0,
+ 0, 0x1F87, /* U1f87 */
+ IBUS_KEY_dead_iota, IBUS_KEY_dead_ogonek, IBUS_KEY_dead_tilde, IBUS_KEY_Greek_eta, 0,
+ 0, 0x1F97, /* U1f97 */
+ IBUS_KEY_dead_iota, IBUS_KEY_dead_ogonek, IBUS_KEY_dead_tilde, IBUS_KEY_Greek_omega, 0,
+ 0, 0x1FA7, /* U1fa7 */
+ IBUS_KEY_dead_iota, IBUS_KEY_dead_horn, IBUS_KEY_Greek_ALPHA, 0, 0,
+ 0, 0x1F88, /* U1f88 */
+ IBUS_KEY_dead_iota, IBUS_KEY_dead_horn, IBUS_KEY_Greek_ETA, 0, 0,
+ 0, 0x1F98, /* U1f98 */
+ IBUS_KEY_dead_iota, IBUS_KEY_dead_horn, IBUS_KEY_Greek_OMEGA, 0, 0,
+ 0, 0x1FA8, /* U1fa8 */
+ IBUS_KEY_dead_iota, IBUS_KEY_dead_horn, IBUS_KEY_Greek_alpha, 0, 0,
+ 0, 0x1F80, /* U1f80 */
+ IBUS_KEY_dead_iota, IBUS_KEY_dead_horn, IBUS_KEY_Greek_eta, 0, 0,
+ 0, 0x1F90, /* U1f90 */
+ IBUS_KEY_dead_iota, IBUS_KEY_dead_horn, IBUS_KEY_Greek_omega, 0, 0,
+ 0, 0x1FA0, /* U1fa0 */
+ IBUS_KEY_dead_iota, IBUS_KEY_dead_horn, IBUS_KEY_dead_grave, IBUS_KEY_Greek_ALPHA, 0,
+ 0, 0x1F8A, /* U1f8a */
+ IBUS_KEY_dead_iota, IBUS_KEY_dead_horn, IBUS_KEY_dead_grave, IBUS_KEY_Greek_ETA, 0,
+ 0, 0x1F9A, /* U1f9a */
+ IBUS_KEY_dead_iota, IBUS_KEY_dead_horn, IBUS_KEY_dead_grave, IBUS_KEY_Greek_OMEGA, 0,
+ 0, 0x1FAA, /* U1faa */
+ IBUS_KEY_dead_iota, IBUS_KEY_dead_horn, IBUS_KEY_dead_grave, IBUS_KEY_Greek_alpha, 0,
+ 0, 0x1F82, /* U1f82 */
+ IBUS_KEY_dead_iota, IBUS_KEY_dead_horn, IBUS_KEY_dead_grave, IBUS_KEY_Greek_eta, 0,
+ 0, 0x1F92, /* U1f92 */
+ IBUS_KEY_dead_iota, IBUS_KEY_dead_horn, IBUS_KEY_dead_grave, IBUS_KEY_Greek_omega, 0,
+ 0, 0x1FA2, /* U1fa2 */
+ IBUS_KEY_dead_iota, IBUS_KEY_dead_horn, IBUS_KEY_dead_acute, IBUS_KEY_Greek_ALPHA, 0,
+ 0, 0x1F8C, /* U1f8c */
+ IBUS_KEY_dead_iota, IBUS_KEY_dead_horn, IBUS_KEY_dead_acute, IBUS_KEY_Greek_ETA, 0,
+ 0, 0x1F9C, /* U1f9c */
+ IBUS_KEY_dead_iota, IBUS_KEY_dead_horn, IBUS_KEY_dead_acute, IBUS_KEY_Greek_OMEGA, 0,
+ 0, 0x1FAC, /* U1fac */
+ IBUS_KEY_dead_iota, IBUS_KEY_dead_horn, IBUS_KEY_dead_acute, IBUS_KEY_Greek_alpha, 0,
+ 0, 0x1F84, /* U1f84 */
+ IBUS_KEY_dead_iota, IBUS_KEY_dead_horn, IBUS_KEY_dead_acute, IBUS_KEY_Greek_eta, 0,
+ 0, 0x1F94, /* U1f94 */
+ IBUS_KEY_dead_iota, IBUS_KEY_dead_horn, IBUS_KEY_dead_acute, IBUS_KEY_Greek_omega, 0,
+ 0, 0x1FA4, /* U1fa4 */
+ IBUS_KEY_dead_iota, IBUS_KEY_dead_horn, IBUS_KEY_dead_tilde, IBUS_KEY_Greek_ALPHA, 0,
+ 0, 0x1F8E, /* U1f8e */
+ IBUS_KEY_dead_iota, IBUS_KEY_dead_horn, IBUS_KEY_dead_tilde, IBUS_KEY_Greek_ETA, 0,
+ 0, 0x1F9E, /* U1f9e */
+ IBUS_KEY_dead_iota, IBUS_KEY_dead_horn, IBUS_KEY_dead_tilde, IBUS_KEY_Greek_OMEGA, 0,
+ 0, 0x1FAE, /* U1fae */
+ IBUS_KEY_dead_iota, IBUS_KEY_dead_horn, IBUS_KEY_dead_tilde, IBUS_KEY_Greek_alpha, 0,
+ 0, 0x1F86, /* U1f86 */
+ IBUS_KEY_dead_iota, IBUS_KEY_dead_horn, IBUS_KEY_dead_tilde, IBUS_KEY_Greek_eta, 0,
+ 0, 0x1F96, /* U1f96 */
+ IBUS_KEY_dead_iota, IBUS_KEY_dead_horn, IBUS_KEY_dead_tilde, IBUS_KEY_Greek_omega, 0,
+ 0, 0x1FA6, /* U1fa6 */
+ IBUS_KEY_dead_horn, IBUS_KEY_space, 0, 0, 0,
+ 0, 0x1FBF, /* U1fbf */
+ IBUS_KEY_dead_horn, IBUS_KEY_underscore, 0, 0, 0,
+ 0, 0x1FBD, /* U1fbd */
+ IBUS_KEY_dead_horn, IBUS_KEY_Greek_ALPHA, 0, 0, 0,
+ 0, 0x1F08, /* U1f08 */
+ IBUS_KEY_dead_horn, IBUS_KEY_Greek_EPSILON, 0, 0, 0,
+ 0, 0x1F18, /* U1f18 */
+ IBUS_KEY_dead_horn, IBUS_KEY_Greek_ETA, 0, 0, 0,
+ 0, 0x1F28, /* U1f28 */
+ IBUS_KEY_dead_horn, IBUS_KEY_Greek_IOTA, 0, 0, 0,
+ 0, 0x1F38, /* U1f38 */
+ IBUS_KEY_dead_horn, IBUS_KEY_Greek_OMICRON, 0, 0, 0,
+ 0, 0x1F48, /* U1f48 */
+ IBUS_KEY_dead_horn, IBUS_KEY_Greek_OMEGA, 0, 0, 0,
+ 0, 0x1F68, /* U1f68 */
+ IBUS_KEY_dead_horn, IBUS_KEY_Greek_alpha, 0, 0, 0,
+ 0, 0x1F00, /* U1f00 */
+ IBUS_KEY_dead_horn, IBUS_KEY_Greek_epsilon, 0, 0, 0,
+ 0, 0x1F10, /* U1f10 */
+ IBUS_KEY_dead_horn, IBUS_KEY_Greek_eta, 0, 0, 0,
+ 0, 0x1F20, /* U1f20 */
+ IBUS_KEY_dead_horn, IBUS_KEY_Greek_iota, 0, 0, 0,
+ 0, 0x1F30, /* U1f30 */
+ IBUS_KEY_dead_horn, IBUS_KEY_Greek_omicron, 0, 0, 0,
+ 0, 0x1F40, /* U1f40 */
+ IBUS_KEY_dead_horn, IBUS_KEY_Greek_rho, 0, 0, 0,
+ 0, 0x1FE4, /* U1fe4 */
+ IBUS_KEY_dead_horn, IBUS_KEY_Greek_upsilon, 0, 0, 0,
+ 0, 0x1F50, /* U1f50 */
+ IBUS_KEY_dead_horn, IBUS_KEY_Greek_omega, 0, 0, 0,
+ 0, 0x1F60, /* U1f60 */
+ IBUS_KEY_dead_horn, IBUS_KEY_dead_grave, IBUS_KEY_space, 0, 0,
+ 0, 0x1FCD, /* U1fcd */
+ IBUS_KEY_dead_horn, IBUS_KEY_dead_grave, IBUS_KEY_Greek_ALPHA, 0, 0,
+ 0, 0x1F0A, /* U1f0a */
+ IBUS_KEY_dead_horn, IBUS_KEY_dead_grave, IBUS_KEY_Greek_EPSILON, 0, 0,
+ 0, 0x1F1A, /* U1f1a */
+ IBUS_KEY_dead_horn, IBUS_KEY_dead_grave, IBUS_KEY_Greek_ETA, 0, 0,
+ 0, 0x1F2A, /* U1f2a */
+ IBUS_KEY_dead_horn, IBUS_KEY_dead_grave, IBUS_KEY_Greek_IOTA, 0, 0,
+ 0, 0x1F3A, /* U1f3a */
+ IBUS_KEY_dead_horn, IBUS_KEY_dead_grave, IBUS_KEY_Greek_OMICRON, 0, 0,
+ 0, 0x1F4A, /* U1f4a */
+ IBUS_KEY_dead_horn, IBUS_KEY_dead_grave, IBUS_KEY_Greek_OMEGA, 0, 0,
+ 0, 0x1F6A, /* U1f6a */
+ IBUS_KEY_dead_horn, IBUS_KEY_dead_grave, IBUS_KEY_Greek_alpha, 0, 0,
+ 0, 0x1F02, /* U1f02 */
+ IBUS_KEY_dead_horn, IBUS_KEY_dead_grave, IBUS_KEY_Greek_epsilon, 0, 0,
+ 0, 0x1F12, /* U1f12 */
+ IBUS_KEY_dead_horn, IBUS_KEY_dead_grave, IBUS_KEY_Greek_eta, 0, 0,
+ 0, 0x1F22, /* U1f22 */
+ IBUS_KEY_dead_horn, IBUS_KEY_dead_grave, IBUS_KEY_Greek_iota, 0, 0,
+ 0, 0x1F32, /* U1f32 */
+ IBUS_KEY_dead_horn, IBUS_KEY_dead_grave, IBUS_KEY_Greek_omicron, 0, 0,
+ 0, 0x1F42, /* U1f42 */
+ IBUS_KEY_dead_horn, IBUS_KEY_dead_grave, IBUS_KEY_Greek_upsilon, 0, 0,
+ 0, 0x1F52, /* U1f52 */
+ IBUS_KEY_dead_horn, IBUS_KEY_dead_grave, IBUS_KEY_Greek_omega, 0, 0,
+ 0, 0x1F62, /* U1f62 */
+ IBUS_KEY_dead_horn, IBUS_KEY_dead_grave, IBUS_KEY_dead_iota, IBUS_KEY_Greek_ALPHA, 0,
+ 0, 0x1F8A, /* U1f8a */
+ IBUS_KEY_dead_horn, IBUS_KEY_dead_grave, IBUS_KEY_dead_iota, IBUS_KEY_Greek_ETA, 0,
+ 0, 0x1F9A, /* U1f9a */
+ IBUS_KEY_dead_horn, IBUS_KEY_dead_grave, IBUS_KEY_dead_iota, IBUS_KEY_Greek_OMEGA, 0,
+ 0, 0x1FAA, /* U1faa */
+ IBUS_KEY_dead_horn, IBUS_KEY_dead_grave, IBUS_KEY_dead_iota, IBUS_KEY_Greek_alpha, 0,
+ 0, 0x1F82, /* U1f82 */
+ IBUS_KEY_dead_horn, IBUS_KEY_dead_grave, IBUS_KEY_dead_iota, IBUS_KEY_Greek_eta, 0,
+ 0, 0x1F92, /* U1f92 */
+ IBUS_KEY_dead_horn, IBUS_KEY_dead_grave, IBUS_KEY_dead_iota, IBUS_KEY_Greek_omega, 0,
+ 0, 0x1FA2, /* U1fa2 */
+ IBUS_KEY_dead_horn, IBUS_KEY_dead_acute, IBUS_KEY_space, 0, 0,
+ 0, 0x1FCE, /* U1fce */
+ IBUS_KEY_dead_horn, IBUS_KEY_dead_acute, IBUS_KEY_Greek_ALPHA, 0, 0,
+ 0, 0x1F0C, /* U1f0c */
+ IBUS_KEY_dead_horn, IBUS_KEY_dead_acute, IBUS_KEY_Greek_EPSILON, 0, 0,
+ 0, 0x1F1C, /* U1f1c */
+ IBUS_KEY_dead_horn, IBUS_KEY_dead_acute, IBUS_KEY_Greek_ETA, 0, 0,
+ 0, 0x1F2C, /* U1f2c */
+ IBUS_KEY_dead_horn, IBUS_KEY_dead_acute, IBUS_KEY_Greek_IOTA, 0, 0,
+ 0, 0x1F3C, /* U1f3c */
+ IBUS_KEY_dead_horn, IBUS_KEY_dead_acute, IBUS_KEY_Greek_OMICRON, 0, 0,
+ 0, 0x1F4C, /* U1f4c */
+ IBUS_KEY_dead_horn, IBUS_KEY_dead_acute, IBUS_KEY_Greek_OMEGA, 0, 0,
+ 0, 0x1F6C, /* U1f6c */
+ IBUS_KEY_dead_horn, IBUS_KEY_dead_acute, IBUS_KEY_Greek_alpha, 0, 0,
+ 0, 0x1F04, /* U1f04 */
+ IBUS_KEY_dead_horn, IBUS_KEY_dead_acute, IBUS_KEY_Greek_epsilon, 0, 0,
+ 0, 0x1F14, /* U1f14 */
+ IBUS_KEY_dead_horn, IBUS_KEY_dead_acute, IBUS_KEY_Greek_eta, 0, 0,
+ 0, 0x1F24, /* U1f24 */
+ IBUS_KEY_dead_horn, IBUS_KEY_dead_acute, IBUS_KEY_Greek_iota, 0, 0,
+ 0, 0x1F34, /* U1f34 */
+ IBUS_KEY_dead_horn, IBUS_KEY_dead_acute, IBUS_KEY_Greek_omicron, 0, 0,
+ 0, 0x1F44, /* U1f44 */
+ IBUS_KEY_dead_horn, IBUS_KEY_dead_acute, IBUS_KEY_Greek_upsilon, 0, 0,
+ 0, 0x1F54, /* U1f54 */
+ IBUS_KEY_dead_horn, IBUS_KEY_dead_acute, IBUS_KEY_Greek_omega, 0, 0,
+ 0, 0x1F64, /* U1f64 */
+ IBUS_KEY_dead_horn, IBUS_KEY_dead_acute, IBUS_KEY_dead_iota, IBUS_KEY_Greek_ALPHA, 0,
+ 0, 0x1F8C, /* U1f8c */
+ IBUS_KEY_dead_horn, IBUS_KEY_dead_acute, IBUS_KEY_dead_iota, IBUS_KEY_Greek_ETA, 0,
+ 0, 0x1F9C, /* U1f9c */
+ IBUS_KEY_dead_horn, IBUS_KEY_dead_acute, IBUS_KEY_dead_iota, IBUS_KEY_Greek_OMEGA, 0,
+ 0, 0x1FAC, /* U1fac */
+ IBUS_KEY_dead_horn, IBUS_KEY_dead_acute, IBUS_KEY_dead_iota, IBUS_KEY_Greek_alpha, 0,
+ 0, 0x1F84, /* U1f84 */
+ IBUS_KEY_dead_horn, IBUS_KEY_dead_acute, IBUS_KEY_dead_iota, IBUS_KEY_Greek_eta, 0,
+ 0, 0x1F94, /* U1f94 */
+ IBUS_KEY_dead_horn, IBUS_KEY_dead_acute, IBUS_KEY_dead_iota, IBUS_KEY_Greek_omega, 0,
+ 0, 0x1FA4, /* U1fa4 */
+ IBUS_KEY_dead_horn, IBUS_KEY_dead_tilde, IBUS_KEY_space, 0, 0,
+ 0, 0x1FCF, /* U1fcf */
+ IBUS_KEY_dead_horn, IBUS_KEY_dead_tilde, IBUS_KEY_Greek_ALPHA, 0, 0,
+ 0, 0x1F0E, /* U1f0e */
+ IBUS_KEY_dead_horn, IBUS_KEY_dead_tilde, IBUS_KEY_Greek_ETA, 0, 0,
+ 0, 0x1F2E, /* U1f2e */
+ IBUS_KEY_dead_horn, IBUS_KEY_dead_tilde, IBUS_KEY_Greek_IOTA, 0, 0,
+ 0, 0x1F3E, /* U1f3e */
+ IBUS_KEY_dead_horn, IBUS_KEY_dead_tilde, IBUS_KEY_Greek_OMEGA, 0, 0,
+ 0, 0x1F6E, /* U1f6e */
+ IBUS_KEY_dead_horn, IBUS_KEY_dead_tilde, IBUS_KEY_Greek_alpha, 0, 0,
+ 0, 0x1F06, /* U1f06 */
+ IBUS_KEY_dead_horn, IBUS_KEY_dead_tilde, IBUS_KEY_Greek_eta, 0, 0,
+ 0, 0x1F26, /* U1f26 */
+ IBUS_KEY_dead_horn, IBUS_KEY_dead_tilde, IBUS_KEY_Greek_iota, 0, 0,
+ 0, 0x1F36, /* U1f36 */
+ IBUS_KEY_dead_horn, IBUS_KEY_dead_tilde, IBUS_KEY_Greek_upsilon, 0, 0,
+ 0, 0x1F56, /* U1f56 */
+ IBUS_KEY_dead_horn, IBUS_KEY_dead_tilde, IBUS_KEY_Greek_omega, 0, 0,
+ 0, 0x1F66, /* U1f66 */
+ IBUS_KEY_dead_horn, IBUS_KEY_dead_tilde, IBUS_KEY_dead_iota, IBUS_KEY_Greek_ALPHA, 0,
+ 0, 0x1F8E, /* U1f8e */
+ IBUS_KEY_dead_horn, IBUS_KEY_dead_tilde, IBUS_KEY_dead_iota, IBUS_KEY_Greek_ETA, 0,
+ 0, 0x1F9E, /* U1f9e */
+ IBUS_KEY_dead_horn, IBUS_KEY_dead_tilde, IBUS_KEY_dead_iota, IBUS_KEY_Greek_OMEGA, 0,
+ 0, 0x1FAE, /* U1fae */
+ IBUS_KEY_dead_horn, IBUS_KEY_dead_tilde, IBUS_KEY_dead_iota, IBUS_KEY_Greek_alpha, 0,
+ 0, 0x1F86, /* U1f86 */
+ IBUS_KEY_dead_horn, IBUS_KEY_dead_tilde, IBUS_KEY_dead_iota, IBUS_KEY_Greek_eta, 0,
+ 0, 0x1F96, /* U1f96 */
+ IBUS_KEY_dead_horn, IBUS_KEY_dead_tilde, IBUS_KEY_dead_iota, IBUS_KEY_Greek_omega, 0,
+ 0, 0x1FA6, /* U1fa6 */
+ IBUS_KEY_dead_horn, IBUS_KEY_dead_iota, IBUS_KEY_Greek_ALPHA, 0, 0,
+ 0, 0x1F88, /* U1f88 */
+ IBUS_KEY_dead_horn, IBUS_KEY_dead_iota, IBUS_KEY_Greek_ETA, 0, 0,
+ 0, 0x1F98, /* U1f98 */
+ IBUS_KEY_dead_horn, IBUS_KEY_dead_iota, IBUS_KEY_Greek_OMEGA, 0, 0,
+ 0, 0x1FA8, /* U1fa8 */
+ IBUS_KEY_dead_horn, IBUS_KEY_dead_iota, IBUS_KEY_Greek_alpha, 0, 0,
+ 0, 0x1F80, /* U1f80 */
+ IBUS_KEY_dead_horn, IBUS_KEY_dead_iota, IBUS_KEY_Greek_eta, 0, 0,
+ 0, 0x1F90, /* U1f90 */
+ IBUS_KEY_dead_horn, IBUS_KEY_dead_iota, IBUS_KEY_Greek_omega, 0, 0,
+ 0, 0x1FA0, /* U1fa0 */
+ IBUS_KEY_dead_horn, IBUS_KEY_dead_iota, IBUS_KEY_dead_grave, IBUS_KEY_Greek_ALPHA, 0,
+ 0, 0x1F8A, /* U1f8a */
+ IBUS_KEY_dead_horn, IBUS_KEY_dead_iota, IBUS_KEY_dead_grave, IBUS_KEY_Greek_ETA, 0,
+ 0, 0x1F9A, /* U1f9a */
+ IBUS_KEY_dead_horn, IBUS_KEY_dead_iota, IBUS_KEY_dead_grave, IBUS_KEY_Greek_OMEGA, 0,
+ 0, 0x1FAA, /* U1faa */
+ IBUS_KEY_dead_horn, IBUS_KEY_dead_iota, IBUS_KEY_dead_grave, IBUS_KEY_Greek_alpha, 0,
+ 0, 0x1F82, /* U1f82 */
+ IBUS_KEY_dead_horn, IBUS_KEY_dead_iota, IBUS_KEY_dead_grave, IBUS_KEY_Greek_eta, 0,
+ 0, 0x1F92, /* U1f92 */
+ IBUS_KEY_dead_horn, IBUS_KEY_dead_iota, IBUS_KEY_dead_grave, IBUS_KEY_Greek_omega, 0,
+ 0, 0x1FA2, /* U1fa2 */
+ IBUS_KEY_dead_horn, IBUS_KEY_dead_iota, IBUS_KEY_dead_acute, IBUS_KEY_Greek_ALPHA, 0,
+ 0, 0x1F8C, /* U1f8c */
+ IBUS_KEY_dead_horn, IBUS_KEY_dead_iota, IBUS_KEY_dead_acute, IBUS_KEY_Greek_ETA, 0,
+ 0, 0x1F9C, /* U1f9c */
+ IBUS_KEY_dead_horn, IBUS_KEY_dead_iota, IBUS_KEY_dead_acute, IBUS_KEY_Greek_OMEGA, 0,
+ 0, 0x1FAC, /* U1fac */
+ IBUS_KEY_dead_horn, IBUS_KEY_dead_iota, IBUS_KEY_dead_acute, IBUS_KEY_Greek_alpha, 0,
+ 0, 0x1F84, /* U1f84 */
+ IBUS_KEY_dead_horn, IBUS_KEY_dead_iota, IBUS_KEY_dead_acute, IBUS_KEY_Greek_eta, 0,
+ 0, 0x1F94, /* U1f94 */
+ IBUS_KEY_dead_horn, IBUS_KEY_dead_iota, IBUS_KEY_dead_acute, IBUS_KEY_Greek_omega, 0,
+ 0, 0x1FA4, /* U1fa4 */
+ IBUS_KEY_dead_horn, IBUS_KEY_dead_iota, IBUS_KEY_dead_tilde, IBUS_KEY_Greek_ALPHA, 0,
+ 0, 0x1F8E, /* U1f8e */
+ IBUS_KEY_dead_horn, IBUS_KEY_dead_iota, IBUS_KEY_dead_tilde, IBUS_KEY_Greek_ETA, 0,
+ 0, 0x1F9E, /* U1f9e */
+ IBUS_KEY_dead_horn, IBUS_KEY_dead_iota, IBUS_KEY_dead_tilde, IBUS_KEY_Greek_OMEGA, 0,
+ 0, 0x1FAE, /* U1fae */
+ IBUS_KEY_dead_horn, IBUS_KEY_dead_iota, IBUS_KEY_dead_tilde, IBUS_KEY_Greek_alpha, 0,
+ 0, 0x1F86, /* U1f86 */
+ IBUS_KEY_dead_horn, IBUS_KEY_dead_iota, IBUS_KEY_dead_tilde, IBUS_KEY_Greek_eta, 0,
+ 0, 0x1F96, /* U1f96 */
+ IBUS_KEY_dead_horn, IBUS_KEY_dead_iota, IBUS_KEY_dead_tilde, IBUS_KEY_Greek_omega, 0,
+ 0, 0x1FA6, /* U1fa6 */
+ IBUS_KEY_dead_horn, IBUS_KEY_dead_horn, 0, 0, 0,
+ 0, 0x1FBF, /* U1fbf */
+ IBUS_KEY_dead_psili, IBUS_KEY_space, 0, 0, 0,
+ 0, 0x1FBF, /* U1fbf */
+ IBUS_KEY_dead_psili, IBUS_KEY_underscore, 0, 0, 0,
+ 0, 0x1FBD, /* U1fbd */
+ IBUS_KEY_dead_psili, IBUS_KEY_dead_grave, IBUS_KEY_space, 0, 0,
+ 0, 0x1FCD, /* U1fcd */
+ IBUS_KEY_dead_psili, IBUS_KEY_dead_acute, IBUS_KEY_space, 0, 0,
+ 0, 0x1FCE, /* U1fce */
+ IBUS_KEY_dead_psili, IBUS_KEY_dead_tilde, IBUS_KEY_space, 0, 0,
+ 0, 0x1FCF, /* U1fcf */
+ IBUS_KEY_dead_psili, IBUS_KEY_dead_horn, 0, 0, 0,
+ 0, 0x1FBF, /* U1fbf */
+ IBUS_KEY_dead_dasia, IBUS_KEY_space, 0, 0, 0,
+ 0, 0x1FFE, /* U1ffe */
+ IBUS_KEY_dead_dasia, IBUS_KEY_dead_grave, IBUS_KEY_space, 0, 0,
+ 0, 0x1FDD, /* U1fdd */
+ IBUS_KEY_dead_dasia, IBUS_KEY_dead_acute, IBUS_KEY_space, 0, 0,
+ 0, 0x1FDE, /* U1fde */
+ IBUS_KEY_dead_dasia, IBUS_KEY_dead_tilde, IBUS_KEY_space, 0, 0,
+ 0, 0x1FDF, /* U1fdf */
+ IBUS_KEY_dead_dasia, IBUS_KEY_dead_ogonek, 0, 0, 0,
+ 0, 0x1FFE, /* U1ffe */
+ IBUS_KEY_Multi_key, IBUS_KEY_exclam, IBUS_KEY_S, 0, 0,
+ 0, 0x00A7, /* section */
+ IBUS_KEY_Multi_key, IBUS_KEY_exclam, IBUS_KEY_s, 0, 0,
+ 0, 0x00A7, /* section */
+ IBUS_KEY_Multi_key, IBUS_KEY_quotedbl, IBUS_KEY_grave, IBUS_KEY_Greek_iota, 0,
+ 0, 0x1FD2, /* U1fd2 */
+ IBUS_KEY_Multi_key, IBUS_KEY_quotedbl, IBUS_KEY_grave, IBUS_KEY_Greek_upsilon, 0,
+ 0, 0x1FE2, /* U1fe2 */
+ IBUS_KEY_Multi_key, IBUS_KEY_quotedbl, IBUS_KEY_asciitilde, IBUS_KEY_Greek_iota, 0,
+ 0, 0x1FD7, /* U1fd7 */
+ IBUS_KEY_Multi_key, IBUS_KEY_quotedbl, IBUS_KEY_asciitilde, IBUS_KEY_Greek_upsilon, 0,
+ 0, 0x1FE7, /* U1fe7 */
+ IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, IBUS_KEY_less, IBUS_KEY_space, 0,
+ 0, 0x2018, /* leftsinglequotemark */
+ IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, IBUS_KEY_less, IBUS_KEY_bar, IBUS_KEY_Greek_ALPHA,
+ 0, 0x1F8D, /* U1f8d */
+ IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, IBUS_KEY_less, IBUS_KEY_bar, IBUS_KEY_Greek_ETA,
+ 0, 0x1F9D, /* U1f9d */
+ IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, IBUS_KEY_less, IBUS_KEY_bar, IBUS_KEY_Greek_OMEGA,
+ 0, 0x1FAD, /* U1fad */
+ IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, IBUS_KEY_less, IBUS_KEY_bar, IBUS_KEY_Greek_alpha,
+ 0, 0x1F85, /* U1f85 */
+ IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, IBUS_KEY_less, IBUS_KEY_bar, IBUS_KEY_Greek_eta,
+ 0, 0x1F95, /* U1f95 */
+ IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, IBUS_KEY_less, IBUS_KEY_bar, IBUS_KEY_Greek_omega,
+ 0, 0x1FA5, /* U1fa5 */
+ IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, IBUS_KEY_less, IBUS_KEY_Greek_ALPHA, 0,
+ 0, 0x1F0D, /* U1f0d */
+ IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, IBUS_KEY_less, IBUS_KEY_Greek_EPSILON, 0,
+ 0, 0x1F1D, /* U1f1d */
+ IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, IBUS_KEY_less, IBUS_KEY_Greek_ETA, 0,
+ 0, 0x1F2D, /* U1f2d */
+ IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, IBUS_KEY_less, IBUS_KEY_Greek_IOTA, 0,
+ 0, 0x1F3D, /* U1f3d */
+ IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, IBUS_KEY_less, IBUS_KEY_Greek_OMICRON, 0,
+ 0, 0x1F4D, /* U1f4d */
+ IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, IBUS_KEY_less, IBUS_KEY_Greek_UPSILON, 0,
+ 0, 0x1F5D, /* U1f5d */
+ IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, IBUS_KEY_less, IBUS_KEY_Greek_OMEGA, 0,
+ 0, 0x1F6D, /* U1f6d */
+ IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, IBUS_KEY_less, IBUS_KEY_Greek_alpha, 0,
+ 0, 0x1F05, /* U1f05 */
+ IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, IBUS_KEY_less, IBUS_KEY_Greek_epsilon, 0,
+ 0, 0x1F15, /* U1f15 */
+ IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, IBUS_KEY_less, IBUS_KEY_Greek_eta, 0,
+ 0, 0x1F25, /* U1f25 */
+ IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, IBUS_KEY_less, IBUS_KEY_Greek_iota, 0,
+ 0, 0x1F35, /* U1f35 */
+ IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, IBUS_KEY_less, IBUS_KEY_Greek_omicron, 0,
+ 0, 0x1F45, /* U1f45 */
+ IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, IBUS_KEY_less, IBUS_KEY_Greek_upsilon, 0,
+ 0, 0x1F55, /* U1f55 */
+ IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, IBUS_KEY_less, IBUS_KEY_Greek_omega, 0,
+ 0, 0x1F65, /* U1f65 */
+ IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, IBUS_KEY_greater, IBUS_KEY_space, 0,
+ 0, 0x2019, /* rightsinglequotemark */
+ IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, IBUS_KEY_greater, IBUS_KEY_bar, IBUS_KEY_Greek_ALPHA,
+ 0, 0x1F8C, /* U1f8c */
+ IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, IBUS_KEY_greater, IBUS_KEY_bar, IBUS_KEY_Greek_ETA,
+ 0, 0x1F9C, /* U1f9c */
+ IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, IBUS_KEY_greater, IBUS_KEY_bar, IBUS_KEY_Greek_OMEGA,
+ 0, 0x1FAC, /* U1fac */
+ IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, IBUS_KEY_greater, IBUS_KEY_bar, IBUS_KEY_Greek_alpha,
+ 0, 0x1F84, /* U1f84 */
+ IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, IBUS_KEY_greater, IBUS_KEY_bar, IBUS_KEY_Greek_eta,
+ 0, 0x1F94, /* U1f94 */
+ IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, IBUS_KEY_greater, IBUS_KEY_bar, IBUS_KEY_Greek_omega,
+ 0, 0x1FA4, /* U1fa4 */
+ IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, IBUS_KEY_greater, IBUS_KEY_Greek_ALPHA, 0,
+ 0, 0x1F0C, /* U1f0c */
+ IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, IBUS_KEY_greater, IBUS_KEY_Greek_EPSILON, 0,
+ 0, 0x1F1C, /* U1f1c */
+ IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, IBUS_KEY_greater, IBUS_KEY_Greek_ETA, 0,
+ 0, 0x1F2C, /* U1f2c */
+ IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, IBUS_KEY_greater, IBUS_KEY_Greek_IOTA, 0,
+ 0, 0x1F3C, /* U1f3c */
+ IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, IBUS_KEY_greater, IBUS_KEY_Greek_OMICRON, 0,
+ 0, 0x1F4C, /* U1f4c */
+ IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, IBUS_KEY_greater, IBUS_KEY_Greek_OMEGA, 0,
+ 0, 0x1F6C, /* U1f6c */
+ IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, IBUS_KEY_greater, IBUS_KEY_Greek_alpha, 0,
+ 0, 0x1F04, /* U1f04 */
+ IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, IBUS_KEY_greater, IBUS_KEY_Greek_epsilon, 0,
+ 0, 0x1F14, /* U1f14 */
+ IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, IBUS_KEY_greater, IBUS_KEY_Greek_eta, 0,
+ 0, 0x1F24, /* U1f24 */
+ IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, IBUS_KEY_greater, IBUS_KEY_Greek_iota, 0,
+ 0, 0x1F34, /* U1f34 */
+ IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, IBUS_KEY_greater, IBUS_KEY_Greek_omicron, 0,
+ 0, 0x1F44, /* U1f44 */
+ IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, IBUS_KEY_greater, IBUS_KEY_Greek_upsilon, 0,
+ 0, 0x1F54, /* U1f54 */
+ IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, IBUS_KEY_greater, IBUS_KEY_Greek_omega, 0,
+ 0, 0x1F64, /* U1f64 */
+ IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, IBUS_KEY_bar, IBUS_KEY_less, IBUS_KEY_Greek_ALPHA,
+ 0, 0x1F8D, /* U1f8d */
+ IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, IBUS_KEY_bar, IBUS_KEY_less, IBUS_KEY_Greek_ETA,
+ 0, 0x1F9D, /* U1f9d */
+ IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, IBUS_KEY_bar, IBUS_KEY_less, IBUS_KEY_Greek_OMEGA,
+ 0, 0x1FAD, /* U1fad */
+ IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, IBUS_KEY_bar, IBUS_KEY_less, IBUS_KEY_Greek_alpha,
+ 0, 0x1F85, /* U1f85 */
+ IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, IBUS_KEY_bar, IBUS_KEY_less, IBUS_KEY_Greek_eta,
+ 0, 0x1F95, /* U1f95 */
+ IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, IBUS_KEY_bar, IBUS_KEY_less, IBUS_KEY_Greek_omega,
+ 0, 0x1FA5, /* U1fa5 */
+ IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, IBUS_KEY_bar, IBUS_KEY_greater, IBUS_KEY_Greek_ALPHA,
+ 0, 0x1F8C, /* U1f8c */
+ IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, IBUS_KEY_bar, IBUS_KEY_greater, IBUS_KEY_Greek_ETA,
+ 0, 0x1F9C, /* U1f9c */
+ IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, IBUS_KEY_bar, IBUS_KEY_greater, IBUS_KEY_Greek_OMEGA,
+ 0, 0x1FAC, /* U1fac */
+ IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, IBUS_KEY_bar, IBUS_KEY_greater, IBUS_KEY_Greek_alpha,
+ 0, 0x1F84, /* U1f84 */
+ IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, IBUS_KEY_bar, IBUS_KEY_greater, IBUS_KEY_Greek_eta,
+ 0, 0x1F94, /* U1f94 */
+ IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, IBUS_KEY_bar, IBUS_KEY_greater, IBUS_KEY_Greek_omega,
+ 0, 0x1FA4, /* U1fa4 */
+ IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, IBUS_KEY_bar, IBUS_KEY_Greek_alpha, 0,
+ 0, 0x1FB4, /* U1fb4 */
+ IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, IBUS_KEY_bar, IBUS_KEY_Greek_eta, 0,
+ 0, 0x1FC4, /* U1fc4 */
+ IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, IBUS_KEY_bar, IBUS_KEY_Greek_omega, 0,
+ 0, 0x1FF4, /* U1ff4 */
+ IBUS_KEY_Multi_key, IBUS_KEY_minus, IBUS_KEY_minus, 0, 0,
+ 0, 0x00AD, /* hyphen */
+ IBUS_KEY_Multi_key, IBUS_KEY_minus, IBUS_KEY_D, 0, 0,
+ 0, 0x00D0, /* ETH */
+ IBUS_KEY_Multi_key, IBUS_KEY_minus, IBUS_KEY_a, 0, 0,
+ 0, 0x00E3, /* atilde */
+ IBUS_KEY_Multi_key, IBUS_KEY_minus, IBUS_KEY_d, 0, 0,
+ 0, 0x00F0, /* eth */
+ IBUS_KEY_Multi_key, IBUS_KEY_minus, IBUS_KEY_o, 0, 0,
+ 0, 0x00F5, /* otilde */
+ IBUS_KEY_Multi_key, IBUS_KEY_slash, IBUS_KEY_slash, 0, 0,
+ 0, 0x0374, /* U0374 */
+ IBUS_KEY_Multi_key, IBUS_KEY_slash, IBUS_KEY_C, 0, 0,
+ 0, 0x00A2, /* cent */
+ IBUS_KEY_Multi_key, IBUS_KEY_colon, IBUS_KEY_colon, 0, 0,
+ 0, 0x0387, /* U0387 */
+ IBUS_KEY_Multi_key, IBUS_KEY_semicolon, IBUS_KEY_semicolon, 0, 0,
+ 0, 0x037E, /* U037e */
+ IBUS_KEY_Multi_key, IBUS_KEY_less, IBUS_KEY_apostrophe, IBUS_KEY_space, 0,
+ 0, 0x2018, /* leftsinglequotemark */
+ IBUS_KEY_Multi_key, IBUS_KEY_less, IBUS_KEY_apostrophe, IBUS_KEY_bar, IBUS_KEY_Greek_ALPHA,
+ 0, 0x1F8D, /* U1f8d */
+ IBUS_KEY_Multi_key, IBUS_KEY_less, IBUS_KEY_apostrophe, IBUS_KEY_bar, IBUS_KEY_Greek_ETA,
+ 0, 0x1F9D, /* U1f9d */
+ IBUS_KEY_Multi_key, IBUS_KEY_less, IBUS_KEY_apostrophe, IBUS_KEY_bar, IBUS_KEY_Greek_OMEGA,
+ 0, 0x1FAD, /* U1fad */
+ IBUS_KEY_Multi_key, IBUS_KEY_less, IBUS_KEY_apostrophe, IBUS_KEY_bar, IBUS_KEY_Greek_alpha,
+ 0, 0x1F85, /* U1f85 */
+ IBUS_KEY_Multi_key, IBUS_KEY_less, IBUS_KEY_apostrophe, IBUS_KEY_bar, IBUS_KEY_Greek_eta,
+ 0, 0x1F95, /* U1f95 */
+ IBUS_KEY_Multi_key, IBUS_KEY_less, IBUS_KEY_apostrophe, IBUS_KEY_bar, IBUS_KEY_Greek_omega,
+ 0, 0x1FA5, /* U1fa5 */
+ IBUS_KEY_Multi_key, IBUS_KEY_less, IBUS_KEY_apostrophe, IBUS_KEY_Greek_ALPHA, 0,
+ 0, 0x1F0D, /* U1f0d */
+ IBUS_KEY_Multi_key, IBUS_KEY_less, IBUS_KEY_apostrophe, IBUS_KEY_Greek_EPSILON, 0,
+ 0, 0x1F1D, /* U1f1d */
+ IBUS_KEY_Multi_key, IBUS_KEY_less, IBUS_KEY_apostrophe, IBUS_KEY_Greek_ETA, 0,
+ 0, 0x1F2D, /* U1f2d */
+ IBUS_KEY_Multi_key, IBUS_KEY_less, IBUS_KEY_apostrophe, IBUS_KEY_Greek_IOTA, 0,
+ 0, 0x1F3D, /* U1f3d */
+ IBUS_KEY_Multi_key, IBUS_KEY_less, IBUS_KEY_apostrophe, IBUS_KEY_Greek_OMICRON, 0,
+ 0, 0x1F4D, /* U1f4d */
+ IBUS_KEY_Multi_key, IBUS_KEY_less, IBUS_KEY_apostrophe, IBUS_KEY_Greek_UPSILON, 0,
+ 0, 0x1F5D, /* U1f5d */
+ IBUS_KEY_Multi_key, IBUS_KEY_less, IBUS_KEY_apostrophe, IBUS_KEY_Greek_OMEGA, 0,
+ 0, 0x1F6D, /* U1f6d */
+ IBUS_KEY_Multi_key, IBUS_KEY_less, IBUS_KEY_apostrophe, IBUS_KEY_Greek_alpha, 0,
+ 0, 0x1F05, /* U1f05 */
+ IBUS_KEY_Multi_key, IBUS_KEY_less, IBUS_KEY_apostrophe, IBUS_KEY_Greek_epsilon, 0,
+ 0, 0x1F15, /* U1f15 */
+ IBUS_KEY_Multi_key, IBUS_KEY_less, IBUS_KEY_apostrophe, IBUS_KEY_Greek_eta, 0,
+ 0, 0x1F25, /* U1f25 */
+ IBUS_KEY_Multi_key, IBUS_KEY_less, IBUS_KEY_apostrophe, IBUS_KEY_Greek_iota, 0,
+ 0, 0x1F35, /* U1f35 */
+ IBUS_KEY_Multi_key, IBUS_KEY_less, IBUS_KEY_apostrophe, IBUS_KEY_Greek_omicron, 0,
+ 0, 0x1F45, /* U1f45 */
+ IBUS_KEY_Multi_key, IBUS_KEY_less, IBUS_KEY_apostrophe, IBUS_KEY_Greek_upsilon, 0,
+ 0, 0x1F55, /* U1f55 */
+ IBUS_KEY_Multi_key, IBUS_KEY_less, IBUS_KEY_apostrophe, IBUS_KEY_Greek_omega, 0,
+ 0, 0x1F65, /* U1f65 */
+ IBUS_KEY_Multi_key, IBUS_KEY_less, IBUS_KEY_grave, IBUS_KEY_bar, IBUS_KEY_Greek_ALPHA,
+ 0, 0x1F8B, /* U1f8b */
+ IBUS_KEY_Multi_key, IBUS_KEY_less, IBUS_KEY_grave, IBUS_KEY_bar, IBUS_KEY_Greek_ETA,
+ 0, 0x1F9B, /* U1f9b */
+ IBUS_KEY_Multi_key, IBUS_KEY_less, IBUS_KEY_grave, IBUS_KEY_bar, IBUS_KEY_Greek_OMEGA,
+ 0, 0x1FAB, /* U1fab */
+ IBUS_KEY_Multi_key, IBUS_KEY_less, IBUS_KEY_grave, IBUS_KEY_bar, IBUS_KEY_Greek_alpha,
+ 0, 0x1F83, /* U1f83 */
+ IBUS_KEY_Multi_key, IBUS_KEY_less, IBUS_KEY_grave, IBUS_KEY_bar, IBUS_KEY_Greek_eta,
+ 0, 0x1F93, /* U1f93 */
+ IBUS_KEY_Multi_key, IBUS_KEY_less, IBUS_KEY_grave, IBUS_KEY_bar, IBUS_KEY_Greek_omega,
+ 0, 0x1FA3, /* U1fa3 */
+ IBUS_KEY_Multi_key, IBUS_KEY_less, IBUS_KEY_grave, IBUS_KEY_Greek_ALPHA, 0,
+ 0, 0x1F0B, /* U1f0b */
+ IBUS_KEY_Multi_key, IBUS_KEY_less, IBUS_KEY_grave, IBUS_KEY_Greek_EPSILON, 0,
+ 0, 0x1F1B, /* U1f1b */
+ IBUS_KEY_Multi_key, IBUS_KEY_less, IBUS_KEY_grave, IBUS_KEY_Greek_ETA, 0,
+ 0, 0x1F2B, /* U1f2b */
+ IBUS_KEY_Multi_key, IBUS_KEY_less, IBUS_KEY_grave, IBUS_KEY_Greek_IOTA, 0,
+ 0, 0x1F3B, /* U1f3b */
+ IBUS_KEY_Multi_key, IBUS_KEY_less, IBUS_KEY_grave, IBUS_KEY_Greek_OMICRON, 0,
+ 0, 0x1F4B, /* U1f4b */
+ IBUS_KEY_Multi_key, IBUS_KEY_less, IBUS_KEY_grave, IBUS_KEY_Greek_UPSILON, 0,
+ 0, 0x1F5B, /* U1f5b */
+ IBUS_KEY_Multi_key, IBUS_KEY_less, IBUS_KEY_grave, IBUS_KEY_Greek_OMEGA, 0,
+ 0, 0x1F6B, /* U1f6b */
+ IBUS_KEY_Multi_key, IBUS_KEY_less, IBUS_KEY_grave, IBUS_KEY_Greek_alpha, 0,
+ 0, 0x1F03, /* U1f03 */
+ IBUS_KEY_Multi_key, IBUS_KEY_less, IBUS_KEY_grave, IBUS_KEY_Greek_epsilon, 0,
+ 0, 0x1F13, /* U1f13 */
+ IBUS_KEY_Multi_key, IBUS_KEY_less, IBUS_KEY_grave, IBUS_KEY_Greek_eta, 0,
+ 0, 0x1F23, /* U1f23 */
+ IBUS_KEY_Multi_key, IBUS_KEY_less, IBUS_KEY_grave, IBUS_KEY_Greek_iota, 0,
+ 0, 0x1F33, /* U1f33 */
+ IBUS_KEY_Multi_key, IBUS_KEY_less, IBUS_KEY_grave, IBUS_KEY_Greek_omicron, 0,
+ 0, 0x1F43, /* U1f43 */
+ IBUS_KEY_Multi_key, IBUS_KEY_less, IBUS_KEY_grave, IBUS_KEY_Greek_upsilon, 0,
+ 0, 0x1F53, /* U1f53 */
+ IBUS_KEY_Multi_key, IBUS_KEY_less, IBUS_KEY_grave, IBUS_KEY_Greek_omega, 0,
+ 0, 0x1F63, /* U1f63 */
+ IBUS_KEY_Multi_key, IBUS_KEY_less, IBUS_KEY_bar, IBUS_KEY_apostrophe, IBUS_KEY_Greek_ALPHA,
+ 0, 0x1F8D, /* U1f8d */
+ IBUS_KEY_Multi_key, IBUS_KEY_less, IBUS_KEY_bar, IBUS_KEY_apostrophe, IBUS_KEY_Greek_ETA,
+ 0, 0x1F9D, /* U1f9d */
+ IBUS_KEY_Multi_key, IBUS_KEY_less, IBUS_KEY_bar, IBUS_KEY_apostrophe, IBUS_KEY_Greek_OMEGA,
+ 0, 0x1FAD, /* U1fad */
+ IBUS_KEY_Multi_key, IBUS_KEY_less, IBUS_KEY_bar, IBUS_KEY_apostrophe, IBUS_KEY_Greek_alpha,
+ 0, 0x1F85, /* U1f85 */
+ IBUS_KEY_Multi_key, IBUS_KEY_less, IBUS_KEY_bar, IBUS_KEY_apostrophe, IBUS_KEY_Greek_eta,
+ 0, 0x1F95, /* U1f95 */
+ IBUS_KEY_Multi_key, IBUS_KEY_less, IBUS_KEY_bar, IBUS_KEY_apostrophe, IBUS_KEY_Greek_omega,
+ 0, 0x1FA5, /* U1fa5 */
+ IBUS_KEY_Multi_key, IBUS_KEY_less, IBUS_KEY_bar, IBUS_KEY_grave, IBUS_KEY_Greek_ALPHA,
+ 0, 0x1F8B, /* U1f8b */
+ IBUS_KEY_Multi_key, IBUS_KEY_less, IBUS_KEY_bar, IBUS_KEY_grave, IBUS_KEY_Greek_ETA,
+ 0, 0x1F9B, /* U1f9b */
+ IBUS_KEY_Multi_key, IBUS_KEY_less, IBUS_KEY_bar, IBUS_KEY_grave, IBUS_KEY_Greek_OMEGA,
+ 0, 0x1FAB, /* U1fab */
+ IBUS_KEY_Multi_key, IBUS_KEY_less, IBUS_KEY_bar, IBUS_KEY_grave, IBUS_KEY_Greek_alpha,
+ 0, 0x1F83, /* U1f83 */
+ IBUS_KEY_Multi_key, IBUS_KEY_less, IBUS_KEY_bar, IBUS_KEY_grave, IBUS_KEY_Greek_eta,
+ 0, 0x1F93, /* U1f93 */
+ IBUS_KEY_Multi_key, IBUS_KEY_less, IBUS_KEY_bar, IBUS_KEY_grave, IBUS_KEY_Greek_omega,
+ 0, 0x1FA3, /* U1fa3 */
+ IBUS_KEY_Multi_key, IBUS_KEY_less, IBUS_KEY_bar, IBUS_KEY_asciitilde, IBUS_KEY_Greek_ALPHA,
+ 0, 0x1F8F, /* U1f8f */
+ IBUS_KEY_Multi_key, IBUS_KEY_less, IBUS_KEY_bar, IBUS_KEY_asciitilde, IBUS_KEY_Greek_ETA,
+ 0, 0x1F9F, /* U1f9f */
+ IBUS_KEY_Multi_key, IBUS_KEY_less, IBUS_KEY_bar, IBUS_KEY_asciitilde, IBUS_KEY_Greek_OMEGA,
+ 0, 0x1FAF, /* U1faf */
+ IBUS_KEY_Multi_key, IBUS_KEY_less, IBUS_KEY_bar, IBUS_KEY_asciitilde, IBUS_KEY_Greek_alpha,
+ 0, 0x1F87, /* U1f87 */
+ IBUS_KEY_Multi_key, IBUS_KEY_less, IBUS_KEY_bar, IBUS_KEY_asciitilde, IBUS_KEY_Greek_eta,
+ 0, 0x1F97, /* U1f97 */
+ IBUS_KEY_Multi_key, IBUS_KEY_less, IBUS_KEY_bar, IBUS_KEY_asciitilde, IBUS_KEY_Greek_omega,
+ 0, 0x1FA7, /* U1fa7 */
+ IBUS_KEY_Multi_key, IBUS_KEY_less, IBUS_KEY_bar, IBUS_KEY_Greek_ALPHA, 0,
+ 0, 0x1F89, /* U1f89 */
+ IBUS_KEY_Multi_key, IBUS_KEY_less, IBUS_KEY_bar, IBUS_KEY_Greek_ETA, 0,
+ 0, 0x1F99, /* U1f99 */
+ IBUS_KEY_Multi_key, IBUS_KEY_less, IBUS_KEY_bar, IBUS_KEY_Greek_OMEGA, 0,
+ 0, 0x1FA9, /* U1fa9 */
+ IBUS_KEY_Multi_key, IBUS_KEY_less, IBUS_KEY_bar, IBUS_KEY_Greek_alpha, 0,
+ 0, 0x1F81, /* U1f81 */
+ IBUS_KEY_Multi_key, IBUS_KEY_less, IBUS_KEY_bar, IBUS_KEY_Greek_eta, 0,
+ 0, 0x1F91, /* U1f91 */
+ IBUS_KEY_Multi_key, IBUS_KEY_less, IBUS_KEY_bar, IBUS_KEY_Greek_omega, 0,
+ 0, 0x1FA1, /* U1fa1 */
+ IBUS_KEY_Multi_key, IBUS_KEY_less, IBUS_KEY_asciitilde, IBUS_KEY_bar, IBUS_KEY_Greek_ALPHA,
+ 0, 0x1F8F, /* U1f8f */
+ IBUS_KEY_Multi_key, IBUS_KEY_less, IBUS_KEY_asciitilde, IBUS_KEY_bar, IBUS_KEY_Greek_ETA,
+ 0, 0x1F9F, /* U1f9f */
+ IBUS_KEY_Multi_key, IBUS_KEY_less, IBUS_KEY_asciitilde, IBUS_KEY_bar, IBUS_KEY_Greek_OMEGA,
+ 0, 0x1FAF, /* U1faf */
+ IBUS_KEY_Multi_key, IBUS_KEY_less, IBUS_KEY_asciitilde, IBUS_KEY_bar, IBUS_KEY_Greek_alpha,
+ 0, 0x1F87, /* U1f87 */
+ IBUS_KEY_Multi_key, IBUS_KEY_less, IBUS_KEY_asciitilde, IBUS_KEY_bar, IBUS_KEY_Greek_eta,
+ 0, 0x1F97, /* U1f97 */
+ IBUS_KEY_Multi_key, IBUS_KEY_less, IBUS_KEY_asciitilde, IBUS_KEY_bar, IBUS_KEY_Greek_omega,
+ 0, 0x1FA7, /* U1fa7 */
+ IBUS_KEY_Multi_key, IBUS_KEY_less, IBUS_KEY_asciitilde, IBUS_KEY_Greek_ALPHA, 0,
+ 0, 0x1F0F, /* U1f0f */
+ IBUS_KEY_Multi_key, IBUS_KEY_less, IBUS_KEY_asciitilde, IBUS_KEY_Greek_ETA, 0,
+ 0, 0x1F2F, /* U1f2f */
+ IBUS_KEY_Multi_key, IBUS_KEY_less, IBUS_KEY_asciitilde, IBUS_KEY_Greek_IOTA, 0,
+ 0, 0x1F3F, /* U1f3f */
+ IBUS_KEY_Multi_key, IBUS_KEY_less, IBUS_KEY_asciitilde, IBUS_KEY_Greek_UPSILON, 0,
+ 0, 0x1F5F, /* U1f5f */
+ IBUS_KEY_Multi_key, IBUS_KEY_less, IBUS_KEY_asciitilde, IBUS_KEY_Greek_OMEGA, 0,
+ 0, 0x1F6F, /* U1f6f */
+ IBUS_KEY_Multi_key, IBUS_KEY_less, IBUS_KEY_asciitilde, IBUS_KEY_Greek_alpha, 0,
+ 0, 0x1F07, /* U1f07 */
+ IBUS_KEY_Multi_key, IBUS_KEY_less, IBUS_KEY_asciitilde, IBUS_KEY_Greek_eta, 0,
+ 0, 0x1F27, /* U1f27 */
+ IBUS_KEY_Multi_key, IBUS_KEY_less, IBUS_KEY_asciitilde, IBUS_KEY_Greek_iota, 0,
+ 0, 0x1F37, /* U1f37 */
+ IBUS_KEY_Multi_key, IBUS_KEY_less, IBUS_KEY_asciitilde, IBUS_KEY_Greek_upsilon, 0,
+ 0, 0x1F57, /* U1f57 */
+ IBUS_KEY_Multi_key, IBUS_KEY_less, IBUS_KEY_asciitilde, IBUS_KEY_Greek_omega, 0,
+ 0, 0x1F67, /* U1f67 */
+ IBUS_KEY_Multi_key, IBUS_KEY_less, IBUS_KEY_Greek_ALPHA, 0, 0,
+ 0, 0x1F09, /* U1f09 */
+ IBUS_KEY_Multi_key, IBUS_KEY_less, IBUS_KEY_Greek_EPSILON, 0, 0,
+ 0, 0x1F19, /* U1f19 */
+ IBUS_KEY_Multi_key, IBUS_KEY_less, IBUS_KEY_Greek_ETA, 0, 0,
+ 0, 0x1F29, /* U1f29 */
+ IBUS_KEY_Multi_key, IBUS_KEY_less, IBUS_KEY_Greek_IOTA, 0, 0,
+ 0, 0x1F39, /* U1f39 */
+ IBUS_KEY_Multi_key, IBUS_KEY_less, IBUS_KEY_Greek_OMICRON, 0, 0,
+ 0, 0x1F49, /* U1f49 */
+ IBUS_KEY_Multi_key, IBUS_KEY_less, IBUS_KEY_Greek_RHO, 0, 0,
+ 0, 0x1FEC, /* U1fec */
+ IBUS_KEY_Multi_key, IBUS_KEY_less, IBUS_KEY_Greek_UPSILON, 0, 0,
+ 0, 0x1F59, /* U1f59 */
+ IBUS_KEY_Multi_key, IBUS_KEY_less, IBUS_KEY_Greek_OMEGA, 0, 0,
+ 0, 0x1F69, /* U1f69 */
+ IBUS_KEY_Multi_key, IBUS_KEY_less, IBUS_KEY_Greek_alpha, 0, 0,
+ 0, 0x1F01, /* U1f01 */
+ IBUS_KEY_Multi_key, IBUS_KEY_less, IBUS_KEY_Greek_epsilon, 0, 0,
+ 0, 0x1F11, /* U1f11 */
+ IBUS_KEY_Multi_key, IBUS_KEY_less, IBUS_KEY_Greek_eta, 0, 0,
+ 0, 0x1F21, /* U1f21 */
+ IBUS_KEY_Multi_key, IBUS_KEY_less, IBUS_KEY_Greek_iota, 0, 0,
+ 0, 0x1F31, /* U1f31 */
+ IBUS_KEY_Multi_key, IBUS_KEY_less, IBUS_KEY_Greek_omicron, 0, 0,
+ 0, 0x1F41, /* U1f41 */
+ IBUS_KEY_Multi_key, IBUS_KEY_less, IBUS_KEY_Greek_rho, 0, 0,
+ 0, 0x1FE5, /* U1fe5 */
+ IBUS_KEY_Multi_key, IBUS_KEY_less, IBUS_KEY_Greek_upsilon, 0, 0,
+ 0, 0x1F51, /* U1f51 */
+ IBUS_KEY_Multi_key, IBUS_KEY_less, IBUS_KEY_Greek_omega, 0, 0,
+ 0, 0x1F61, /* U1f61 */
+ IBUS_KEY_Multi_key, IBUS_KEY_equal, IBUS_KEY_L, 0, 0,
+ 0, 0x00A3, /* sterling */
+ IBUS_KEY_Multi_key, IBUS_KEY_equal, IBUS_KEY_Greek_EPSILON, 0, 0,
+ 0, 0x20AC, /* EuroSign */
+ IBUS_KEY_Multi_key, IBUS_KEY_equal, IBUS_KEY_Greek_epsilon, 0, 0,
+ 0, 0x20AC, /* EuroSign */
+ IBUS_KEY_Multi_key, IBUS_KEY_greater, IBUS_KEY_apostrophe, IBUS_KEY_space, 0,
+ 0, 0x2019, /* rightsinglequotemark */
+ IBUS_KEY_Multi_key, IBUS_KEY_greater, IBUS_KEY_apostrophe, IBUS_KEY_bar, IBUS_KEY_Greek_ALPHA,
+ 0, 0x1F8C, /* U1f8c */
+ IBUS_KEY_Multi_key, IBUS_KEY_greater, IBUS_KEY_apostrophe, IBUS_KEY_bar, IBUS_KEY_Greek_ETA,
+ 0, 0x1F9C, /* U1f9c */
+ IBUS_KEY_Multi_key, IBUS_KEY_greater, IBUS_KEY_apostrophe, IBUS_KEY_bar, IBUS_KEY_Greek_OMEGA,
+ 0, 0x1FAC, /* U1fac */
+ IBUS_KEY_Multi_key, IBUS_KEY_greater, IBUS_KEY_apostrophe, IBUS_KEY_bar, IBUS_KEY_Greek_alpha,
+ 0, 0x1F84, /* U1f84 */
+ IBUS_KEY_Multi_key, IBUS_KEY_greater, IBUS_KEY_apostrophe, IBUS_KEY_bar, IBUS_KEY_Greek_eta,
+ 0, 0x1F94, /* U1f94 */
+ IBUS_KEY_Multi_key, IBUS_KEY_greater, IBUS_KEY_apostrophe, IBUS_KEY_bar, IBUS_KEY_Greek_omega,
+ 0, 0x1FA4, /* U1fa4 */
+ IBUS_KEY_Multi_key, IBUS_KEY_greater, IBUS_KEY_apostrophe, IBUS_KEY_Greek_ALPHA, 0,
+ 0, 0x1F0C, /* U1f0c */
+ IBUS_KEY_Multi_key, IBUS_KEY_greater, IBUS_KEY_apostrophe, IBUS_KEY_Greek_EPSILON, 0,
+ 0, 0x1F1C, /* U1f1c */
+ IBUS_KEY_Multi_key, IBUS_KEY_greater, IBUS_KEY_apostrophe, IBUS_KEY_Greek_ETA, 0,
+ 0, 0x1F2C, /* U1f2c */
+ IBUS_KEY_Multi_key, IBUS_KEY_greater, IBUS_KEY_apostrophe, IBUS_KEY_Greek_IOTA, 0,
+ 0, 0x1F3C, /* U1f3c */
+ IBUS_KEY_Multi_key, IBUS_KEY_greater, IBUS_KEY_apostrophe, IBUS_KEY_Greek_OMICRON, 0,
+ 0, 0x1F4C, /* U1f4c */
+ IBUS_KEY_Multi_key, IBUS_KEY_greater, IBUS_KEY_apostrophe, IBUS_KEY_Greek_OMEGA, 0,
+ 0, 0x1F6C, /* U1f6c */
+ IBUS_KEY_Multi_key, IBUS_KEY_greater, IBUS_KEY_apostrophe, IBUS_KEY_Greek_alpha, 0,
+ 0, 0x1F04, /* U1f04 */
+ IBUS_KEY_Multi_key, IBUS_KEY_greater, IBUS_KEY_apostrophe, IBUS_KEY_Greek_epsilon, 0,
+ 0, 0x1F14, /* U1f14 */
+ IBUS_KEY_Multi_key, IBUS_KEY_greater, IBUS_KEY_apostrophe, IBUS_KEY_Greek_eta, 0,
+ 0, 0x1F24, /* U1f24 */
+ IBUS_KEY_Multi_key, IBUS_KEY_greater, IBUS_KEY_apostrophe, IBUS_KEY_Greek_iota, 0,
+ 0, 0x1F34, /* U1f34 */
+ IBUS_KEY_Multi_key, IBUS_KEY_greater, IBUS_KEY_apostrophe, IBUS_KEY_Greek_omicron, 0,
+ 0, 0x1F44, /* U1f44 */
+ IBUS_KEY_Multi_key, IBUS_KEY_greater, IBUS_KEY_apostrophe, IBUS_KEY_Greek_upsilon, 0,
+ 0, 0x1F54, /* U1f54 */
+ IBUS_KEY_Multi_key, IBUS_KEY_greater, IBUS_KEY_apostrophe, IBUS_KEY_Greek_omega, 0,
+ 0, 0x1F64, /* U1f64 */
+ IBUS_KEY_Multi_key, IBUS_KEY_greater, IBUS_KEY_grave, IBUS_KEY_bar, IBUS_KEY_Greek_ALPHA,
+ 0, 0x1F8A, /* U1f8a */
+ IBUS_KEY_Multi_key, IBUS_KEY_greater, IBUS_KEY_grave, IBUS_KEY_bar, IBUS_KEY_Greek_ETA,
+ 0, 0x1F9A, /* U1f9a */
+ IBUS_KEY_Multi_key, IBUS_KEY_greater, IBUS_KEY_grave, IBUS_KEY_bar, IBUS_KEY_Greek_OMEGA,
+ 0, 0x1FAA, /* U1faa */
+ IBUS_KEY_Multi_key, IBUS_KEY_greater, IBUS_KEY_grave, IBUS_KEY_bar, IBUS_KEY_Greek_alpha,
+ 0, 0x1F82, /* U1f82 */
+ IBUS_KEY_Multi_key, IBUS_KEY_greater, IBUS_KEY_grave, IBUS_KEY_bar, IBUS_KEY_Greek_eta,
+ 0, 0x1F92, /* U1f92 */
+ IBUS_KEY_Multi_key, IBUS_KEY_greater, IBUS_KEY_grave, IBUS_KEY_bar, IBUS_KEY_Greek_omega,
+ 0, 0x1FA2, /* U1fa2 */
+ IBUS_KEY_Multi_key, IBUS_KEY_greater, IBUS_KEY_grave, IBUS_KEY_Greek_ALPHA, 0,
+ 0, 0x1F0A, /* U1f0a */
+ IBUS_KEY_Multi_key, IBUS_KEY_greater, IBUS_KEY_grave, IBUS_KEY_Greek_EPSILON, 0,
+ 0, 0x1F1A, /* U1f1a */
+ IBUS_KEY_Multi_key, IBUS_KEY_greater, IBUS_KEY_grave, IBUS_KEY_Greek_ETA, 0,
+ 0, 0x1F2A, /* U1f2a */
+ IBUS_KEY_Multi_key, IBUS_KEY_greater, IBUS_KEY_grave, IBUS_KEY_Greek_IOTA, 0,
+ 0, 0x1F3A, /* U1f3a */
+ IBUS_KEY_Multi_key, IBUS_KEY_greater, IBUS_KEY_grave, IBUS_KEY_Greek_OMICRON, 0,
+ 0, 0x1F4A, /* U1f4a */
+ IBUS_KEY_Multi_key, IBUS_KEY_greater, IBUS_KEY_grave, IBUS_KEY_Greek_OMEGA, 0,
+ 0, 0x1F6A, /* U1f6a */
+ IBUS_KEY_Multi_key, IBUS_KEY_greater, IBUS_KEY_grave, IBUS_KEY_Greek_alpha, 0,
+ 0, 0x1F02, /* U1f02 */
+ IBUS_KEY_Multi_key, IBUS_KEY_greater, IBUS_KEY_grave, IBUS_KEY_Greek_epsilon, 0,
+ 0, 0x1F12, /* U1f12 */
+ IBUS_KEY_Multi_key, IBUS_KEY_greater, IBUS_KEY_grave, IBUS_KEY_Greek_eta, 0,
+ 0, 0x1F22, /* U1f22 */
+ IBUS_KEY_Multi_key, IBUS_KEY_greater, IBUS_KEY_grave, IBUS_KEY_Greek_iota, 0,
+ 0, 0x1F32, /* U1f32 */
+ IBUS_KEY_Multi_key, IBUS_KEY_greater, IBUS_KEY_grave, IBUS_KEY_Greek_omicron, 0,
+ 0, 0x1F42, /* U1f42 */
+ IBUS_KEY_Multi_key, IBUS_KEY_greater, IBUS_KEY_grave, IBUS_KEY_Greek_upsilon, 0,
+ 0, 0x1F52, /* U1f52 */
+ IBUS_KEY_Multi_key, IBUS_KEY_greater, IBUS_KEY_grave, IBUS_KEY_Greek_omega, 0,
+ 0, 0x1F62, /* U1f62 */
+ IBUS_KEY_Multi_key, IBUS_KEY_greater, IBUS_KEY_bar, IBUS_KEY_apostrophe, IBUS_KEY_Greek_ALPHA,
+ 0, 0x1F8C, /* U1f8c */
+ IBUS_KEY_Multi_key, IBUS_KEY_greater, IBUS_KEY_bar, IBUS_KEY_apostrophe, IBUS_KEY_Greek_ETA,
+ 0, 0x1F9C, /* U1f9c */
+ IBUS_KEY_Multi_key, IBUS_KEY_greater, IBUS_KEY_bar, IBUS_KEY_apostrophe, IBUS_KEY_Greek_OMEGA,
+ 0, 0x1FAC, /* U1fac */
+ IBUS_KEY_Multi_key, IBUS_KEY_greater, IBUS_KEY_bar, IBUS_KEY_apostrophe, IBUS_KEY_Greek_alpha,
+ 0, 0x1F84, /* U1f84 */
+ IBUS_KEY_Multi_key, IBUS_KEY_greater, IBUS_KEY_bar, IBUS_KEY_apostrophe, IBUS_KEY_Greek_eta,
+ 0, 0x1F94, /* U1f94 */
+ IBUS_KEY_Multi_key, IBUS_KEY_greater, IBUS_KEY_bar, IBUS_KEY_apostrophe, IBUS_KEY_Greek_omega,
+ 0, 0x1FA4, /* U1fa4 */
+ IBUS_KEY_Multi_key, IBUS_KEY_greater, IBUS_KEY_bar, IBUS_KEY_grave, IBUS_KEY_Greek_ALPHA,
+ 0, 0x1F8A, /* U1f8a */
+ IBUS_KEY_Multi_key, IBUS_KEY_greater, IBUS_KEY_bar, IBUS_KEY_grave, IBUS_KEY_Greek_ETA,
+ 0, 0x1F9A, /* U1f9a */
+ IBUS_KEY_Multi_key, IBUS_KEY_greater, IBUS_KEY_bar, IBUS_KEY_grave, IBUS_KEY_Greek_OMEGA,
+ 0, 0x1FAA, /* U1faa */
+ IBUS_KEY_Multi_key, IBUS_KEY_greater, IBUS_KEY_bar, IBUS_KEY_grave, IBUS_KEY_Greek_alpha,
+ 0, 0x1F82, /* U1f82 */
+ IBUS_KEY_Multi_key, IBUS_KEY_greater, IBUS_KEY_bar, IBUS_KEY_grave, IBUS_KEY_Greek_eta,
+ 0, 0x1F92, /* U1f92 */
+ IBUS_KEY_Multi_key, IBUS_KEY_greater, IBUS_KEY_bar, IBUS_KEY_grave, IBUS_KEY_Greek_omega,
+ 0, 0x1FA2, /* U1fa2 */
+ IBUS_KEY_Multi_key, IBUS_KEY_greater, IBUS_KEY_bar, IBUS_KEY_asciitilde, IBUS_KEY_Greek_ALPHA,
+ 0, 0x1F8E, /* U1f8e */
+ IBUS_KEY_Multi_key, IBUS_KEY_greater, IBUS_KEY_bar, IBUS_KEY_asciitilde, IBUS_KEY_Greek_ETA,
+ 0, 0x1F9E, /* U1f9e */
+ IBUS_KEY_Multi_key, IBUS_KEY_greater, IBUS_KEY_bar, IBUS_KEY_asciitilde, IBUS_KEY_Greek_OMEGA,
+ 0, 0x1FAE, /* U1fae */
+ IBUS_KEY_Multi_key, IBUS_KEY_greater, IBUS_KEY_bar, IBUS_KEY_asciitilde, IBUS_KEY_Greek_alpha,
+ 0, 0x1F86, /* U1f86 */
+ IBUS_KEY_Multi_key, IBUS_KEY_greater, IBUS_KEY_bar, IBUS_KEY_asciitilde, IBUS_KEY_Greek_eta,
+ 0, 0x1F96, /* U1f96 */
+ IBUS_KEY_Multi_key, IBUS_KEY_greater, IBUS_KEY_bar, IBUS_KEY_asciitilde, IBUS_KEY_Greek_omega,
+ 0, 0x1FA6, /* U1fa6 */
+ IBUS_KEY_Multi_key, IBUS_KEY_greater, IBUS_KEY_bar, IBUS_KEY_Greek_ALPHA, 0,
+ 0, 0x1F88, /* U1f88 */
+ IBUS_KEY_Multi_key, IBUS_KEY_greater, IBUS_KEY_bar, IBUS_KEY_Greek_ETA, 0,
+ 0, 0x1F98, /* U1f98 */
+ IBUS_KEY_Multi_key, IBUS_KEY_greater, IBUS_KEY_bar, IBUS_KEY_Greek_OMEGA, 0,
+ 0, 0x1FA8, /* U1fa8 */
+ IBUS_KEY_Multi_key, IBUS_KEY_greater, IBUS_KEY_bar, IBUS_KEY_Greek_alpha, 0,
+ 0, 0x1F80, /* U1f80 */
+ IBUS_KEY_Multi_key, IBUS_KEY_greater, IBUS_KEY_bar, IBUS_KEY_Greek_eta, 0,
+ 0, 0x1F90, /* U1f90 */
+ IBUS_KEY_Multi_key, IBUS_KEY_greater, IBUS_KEY_bar, IBUS_KEY_Greek_omega, 0,
+ 0, 0x1FA0, /* U1fa0 */
+ IBUS_KEY_Multi_key, IBUS_KEY_greater, IBUS_KEY_asciitilde, IBUS_KEY_bar, IBUS_KEY_Greek_ALPHA,
+ 0, 0x1F8E, /* U1f8e */
+ IBUS_KEY_Multi_key, IBUS_KEY_greater, IBUS_KEY_asciitilde, IBUS_KEY_bar, IBUS_KEY_Greek_ETA,
+ 0, 0x1F9E, /* U1f9e */
+ IBUS_KEY_Multi_key, IBUS_KEY_greater, IBUS_KEY_asciitilde, IBUS_KEY_bar, IBUS_KEY_Greek_OMEGA,
+ 0, 0x1FAE, /* U1fae */
+ IBUS_KEY_Multi_key, IBUS_KEY_greater, IBUS_KEY_asciitilde, IBUS_KEY_bar, IBUS_KEY_Greek_alpha,
+ 0, 0x1F86, /* U1f86 */
+ IBUS_KEY_Multi_key, IBUS_KEY_greater, IBUS_KEY_asciitilde, IBUS_KEY_bar, IBUS_KEY_Greek_eta,
+ 0, 0x1F96, /* U1f96 */
+ IBUS_KEY_Multi_key, IBUS_KEY_greater, IBUS_KEY_asciitilde, IBUS_KEY_bar, IBUS_KEY_Greek_omega,
+ 0, 0x1FA6, /* U1fa6 */
+ IBUS_KEY_Multi_key, IBUS_KEY_greater, IBUS_KEY_asciitilde, IBUS_KEY_Greek_ALPHA, 0,
+ 0, 0x1F0E, /* U1f0e */
+ IBUS_KEY_Multi_key, IBUS_KEY_greater, IBUS_KEY_asciitilde, IBUS_KEY_Greek_ETA, 0,
+ 0, 0x1F2E, /* U1f2e */
+ IBUS_KEY_Multi_key, IBUS_KEY_greater, IBUS_KEY_asciitilde, IBUS_KEY_Greek_IOTA, 0,
+ 0, 0x1F3E, /* U1f3e */
+ IBUS_KEY_Multi_key, IBUS_KEY_greater, IBUS_KEY_asciitilde, IBUS_KEY_Greek_OMEGA, 0,
+ 0, 0x1F6E, /* U1f6e */
+ IBUS_KEY_Multi_key, IBUS_KEY_greater, IBUS_KEY_asciitilde, IBUS_KEY_Greek_alpha, 0,
+ 0, 0x1F06, /* U1f06 */
+ IBUS_KEY_Multi_key, IBUS_KEY_greater, IBUS_KEY_asciitilde, IBUS_KEY_Greek_eta, 0,
+ 0, 0x1F26, /* U1f26 */
+ IBUS_KEY_Multi_key, IBUS_KEY_greater, IBUS_KEY_asciitilde, IBUS_KEY_Greek_iota, 0,
+ 0, 0x1F36, /* U1f36 */
+ IBUS_KEY_Multi_key, IBUS_KEY_greater, IBUS_KEY_asciitilde, IBUS_KEY_Greek_upsilon, 0,
+ 0, 0x1F56, /* U1f56 */
+ IBUS_KEY_Multi_key, IBUS_KEY_greater, IBUS_KEY_asciitilde, IBUS_KEY_Greek_omega, 0,
+ 0, 0x1F66, /* U1f66 */
+ IBUS_KEY_Multi_key, IBUS_KEY_greater, IBUS_KEY_Greek_ALPHA, 0, 0,
+ 0, 0x1F08, /* U1f08 */
+ IBUS_KEY_Multi_key, IBUS_KEY_greater, IBUS_KEY_Greek_EPSILON, 0, 0,
+ 0, 0x1F18, /* U1f18 */
+ IBUS_KEY_Multi_key, IBUS_KEY_greater, IBUS_KEY_Greek_ETA, 0, 0,
+ 0, 0x1F28, /* U1f28 */
+ IBUS_KEY_Multi_key, IBUS_KEY_greater, IBUS_KEY_Greek_IOTA, 0, 0,
+ 0, 0x1F38, /* U1f38 */
+ IBUS_KEY_Multi_key, IBUS_KEY_greater, IBUS_KEY_Greek_OMICRON, 0, 0,
+ 0, 0x1F48, /* U1f48 */
+ IBUS_KEY_Multi_key, IBUS_KEY_greater, IBUS_KEY_Greek_OMEGA, 0, 0,
+ 0, 0x1F68, /* U1f68 */
+ IBUS_KEY_Multi_key, IBUS_KEY_greater, IBUS_KEY_Greek_alpha, 0, 0,
+ 0, 0x1F00, /* U1f00 */
+ IBUS_KEY_Multi_key, IBUS_KEY_greater, IBUS_KEY_Greek_epsilon, 0, 0,
+ 0, 0x1F10, /* U1f10 */
+ IBUS_KEY_Multi_key, IBUS_KEY_greater, IBUS_KEY_Greek_eta, 0, 0,
+ 0, 0x1F20, /* U1f20 */
+ IBUS_KEY_Multi_key, IBUS_KEY_greater, IBUS_KEY_Greek_iota, 0, 0,
+ 0, 0x1F30, /* U1f30 */
+ IBUS_KEY_Multi_key, IBUS_KEY_greater, IBUS_KEY_Greek_omicron, 0, 0,
+ 0, 0x1F40, /* U1f40 */
+ IBUS_KEY_Multi_key, IBUS_KEY_greater, IBUS_KEY_Greek_rho, 0, 0,
+ 0, 0x1FE4, /* U1fe4 */
+ IBUS_KEY_Multi_key, IBUS_KEY_greater, IBUS_KEY_Greek_upsilon, 0, 0,
+ 0, 0x1F50, /* U1f50 */
+ IBUS_KEY_Multi_key, IBUS_KEY_greater, IBUS_KEY_Greek_omega, 0, 0,
+ 0, 0x1F60, /* U1f60 */
+ IBUS_KEY_Multi_key, IBUS_KEY_question, IBUS_KEY_exclam, 0, 0,
+ 0, 0x203D, /* U203D # INTERROBANG */
+ IBUS_KEY_Multi_key, IBUS_KEY_A, IBUS_KEY_O, 0, 0,
+ 0, 0x00C5, /* Aring */
+ IBUS_KEY_Multi_key, IBUS_KEY_B, IBUS_KEY_V, 0, 0,
+ 0, 0x00A6, /* brokenbar */
+ IBUS_KEY_Multi_key, IBUS_KEY_C, IBUS_KEY_slash, 0, 0,
+ 0, 0x00A2, /* cent */
+ IBUS_KEY_Multi_key, IBUS_KEY_C, IBUS_KEY_cedilla, 0, 0,
+ 0, 0x00C7, /* Ccedilla */
+ IBUS_KEY_Multi_key, IBUS_KEY_D, IBUS_KEY_minus, 0, 0,
+ 0, 0x00D0, /* ETH */
+ IBUS_KEY_Multi_key, IBUS_KEY_V, IBUS_KEY_B, 0, 0,
+ 0, 0x00A6, /* brokenbar */
+ IBUS_KEY_Multi_key, IBUS_KEY_backslash, IBUS_KEY_backslash, 0, 0,
+ 0, 0x0375, /* U0375 */
+ IBUS_KEY_Multi_key, IBUS_KEY_asciicircum, IBUS_KEY_exclam, 0, 0,
+ 0, 0x00A6, /* brokenbar */
+ IBUS_KEY_Multi_key, IBUS_KEY_asciicircum, IBUS_KEY_0, 0, 0,
+ 0, 0x00B0, /* degree */
+ IBUS_KEY_Multi_key, IBUS_KEY_asciicircum, IBUS_KEY_asciicircum, 0, 0,
+ 0, 0x02D8, /* breve */
+ IBUS_KEY_Multi_key, IBUS_KEY_underscore, IBUS_KEY_A, 0, 0,
+ 0, 0x00AA, /* ordfeminine */
+ IBUS_KEY_Multi_key, IBUS_KEY_underscore, IBUS_KEY_O, 0, 0,
+ 0, 0x00BA, /* masculine */
+ IBUS_KEY_Multi_key, IBUS_KEY_underscore, IBUS_KEY_a, 0, 0,
+ 0, 0x00AA, /* ordfeminine */
+ IBUS_KEY_Multi_key, IBUS_KEY_underscore, IBUS_KEY_o, 0, 0,
+ 0, 0x00BA, /* masculine */
+ IBUS_KEY_Multi_key, IBUS_KEY_grave, IBUS_KEY_less, IBUS_KEY_bar, IBUS_KEY_Greek_ALPHA,
+ 0, 0x1F8B, /* U1f8b */
+ IBUS_KEY_Multi_key, IBUS_KEY_grave, IBUS_KEY_less, IBUS_KEY_bar, IBUS_KEY_Greek_ETA,
+ 0, 0x1F9B, /* U1f9b */
+ IBUS_KEY_Multi_key, IBUS_KEY_grave, IBUS_KEY_less, IBUS_KEY_bar, IBUS_KEY_Greek_OMEGA,
+ 0, 0x1FAB, /* U1fab */
+ IBUS_KEY_Multi_key, IBUS_KEY_grave, IBUS_KEY_less, IBUS_KEY_bar, IBUS_KEY_Greek_alpha,
+ 0, 0x1F83, /* U1f83 */
+ IBUS_KEY_Multi_key, IBUS_KEY_grave, IBUS_KEY_less, IBUS_KEY_bar, IBUS_KEY_Greek_eta,
+ 0, 0x1F93, /* U1f93 */
+ IBUS_KEY_Multi_key, IBUS_KEY_grave, IBUS_KEY_less, IBUS_KEY_bar, IBUS_KEY_Greek_omega,
+ 0, 0x1FA3, /* U1fa3 */
+ IBUS_KEY_Multi_key, IBUS_KEY_grave, IBUS_KEY_less, IBUS_KEY_Greek_ALPHA, 0,
+ 0, 0x1F0B, /* U1f0b */
+ IBUS_KEY_Multi_key, IBUS_KEY_grave, IBUS_KEY_less, IBUS_KEY_Greek_EPSILON, 0,
+ 0, 0x1F1B, /* U1f1b */
+ IBUS_KEY_Multi_key, IBUS_KEY_grave, IBUS_KEY_less, IBUS_KEY_Greek_ETA, 0,
+ 0, 0x1F2B, /* U1f2b */
+ IBUS_KEY_Multi_key, IBUS_KEY_grave, IBUS_KEY_less, IBUS_KEY_Greek_IOTA, 0,
+ 0, 0x1F3B, /* U1f3b */
+ IBUS_KEY_Multi_key, IBUS_KEY_grave, IBUS_KEY_less, IBUS_KEY_Greek_OMICRON, 0,
+ 0, 0x1F4B, /* U1f4b */
+ IBUS_KEY_Multi_key, IBUS_KEY_grave, IBUS_KEY_less, IBUS_KEY_Greek_UPSILON, 0,
+ 0, 0x1F5B, /* U1f5b */
+ IBUS_KEY_Multi_key, IBUS_KEY_grave, IBUS_KEY_less, IBUS_KEY_Greek_OMEGA, 0,
+ 0, 0x1F6B, /* U1f6b */
+ IBUS_KEY_Multi_key, IBUS_KEY_grave, IBUS_KEY_less, IBUS_KEY_Greek_alpha, 0,
+ 0, 0x1F03, /* U1f03 */
+ IBUS_KEY_Multi_key, IBUS_KEY_grave, IBUS_KEY_less, IBUS_KEY_Greek_epsilon, 0,
+ 0, 0x1F13, /* U1f13 */
+ IBUS_KEY_Multi_key, IBUS_KEY_grave, IBUS_KEY_less, IBUS_KEY_Greek_eta, 0,
+ 0, 0x1F23, /* U1f23 */
+ IBUS_KEY_Multi_key, IBUS_KEY_grave, IBUS_KEY_less, IBUS_KEY_Greek_iota, 0,
+ 0, 0x1F33, /* U1f33 */
+ IBUS_KEY_Multi_key, IBUS_KEY_grave, IBUS_KEY_less, IBUS_KEY_Greek_omicron, 0,
+ 0, 0x1F43, /* U1f43 */
+ IBUS_KEY_Multi_key, IBUS_KEY_grave, IBUS_KEY_less, IBUS_KEY_Greek_upsilon, 0,
+ 0, 0x1F53, /* U1f53 */
+ IBUS_KEY_Multi_key, IBUS_KEY_grave, IBUS_KEY_less, IBUS_KEY_Greek_omega, 0,
+ 0, 0x1F63, /* U1f63 */
+ IBUS_KEY_Multi_key, IBUS_KEY_grave, IBUS_KEY_greater, IBUS_KEY_bar, IBUS_KEY_Greek_ALPHA,
+ 0, 0x1F8A, /* U1f8a */
+ IBUS_KEY_Multi_key, IBUS_KEY_grave, IBUS_KEY_greater, IBUS_KEY_bar, IBUS_KEY_Greek_ETA,
+ 0, 0x1F9A, /* U1f9a */
+ IBUS_KEY_Multi_key, IBUS_KEY_grave, IBUS_KEY_greater, IBUS_KEY_bar, IBUS_KEY_Greek_OMEGA,
+ 0, 0x1FAA, /* U1faa */
+ IBUS_KEY_Multi_key, IBUS_KEY_grave, IBUS_KEY_greater, IBUS_KEY_bar, IBUS_KEY_Greek_alpha,
+ 0, 0x1F82, /* U1f82 */
+ IBUS_KEY_Multi_key, IBUS_KEY_grave, IBUS_KEY_greater, IBUS_KEY_bar, IBUS_KEY_Greek_eta,
+ 0, 0x1F92, /* U1f92 */
+ IBUS_KEY_Multi_key, IBUS_KEY_grave, IBUS_KEY_greater, IBUS_KEY_bar, IBUS_KEY_Greek_omega,
+ 0, 0x1FA2, /* U1fa2 */
+ IBUS_KEY_Multi_key, IBUS_KEY_grave, IBUS_KEY_greater, IBUS_KEY_Greek_ALPHA, 0,
+ 0, 0x1F0A, /* U1f0a */
+ IBUS_KEY_Multi_key, IBUS_KEY_grave, IBUS_KEY_greater, IBUS_KEY_Greek_EPSILON, 0,
+ 0, 0x1F1A, /* U1f1a */
+ IBUS_KEY_Multi_key, IBUS_KEY_grave, IBUS_KEY_greater, IBUS_KEY_Greek_ETA, 0,
+ 0, 0x1F2A, /* U1f2a */
+ IBUS_KEY_Multi_key, IBUS_KEY_grave, IBUS_KEY_greater, IBUS_KEY_Greek_IOTA, 0,
+ 0, 0x1F3A, /* U1f3a */
+ IBUS_KEY_Multi_key, IBUS_KEY_grave, IBUS_KEY_greater, IBUS_KEY_Greek_OMICRON, 0,
+ 0, 0x1F4A, /* U1f4a */
+ IBUS_KEY_Multi_key, IBUS_KEY_grave, IBUS_KEY_greater, IBUS_KEY_Greek_OMEGA, 0,
+ 0, 0x1F6A, /* U1f6a */
+ IBUS_KEY_Multi_key, IBUS_KEY_grave, IBUS_KEY_greater, IBUS_KEY_Greek_alpha, 0,
+ 0, 0x1F02, /* U1f02 */
+ IBUS_KEY_Multi_key, IBUS_KEY_grave, IBUS_KEY_greater, IBUS_KEY_Greek_epsilon, 0,
+ 0, 0x1F12, /* U1f12 */
+ IBUS_KEY_Multi_key, IBUS_KEY_grave, IBUS_KEY_greater, IBUS_KEY_Greek_eta, 0,
+ 0, 0x1F22, /* U1f22 */
+ IBUS_KEY_Multi_key, IBUS_KEY_grave, IBUS_KEY_greater, IBUS_KEY_Greek_iota, 0,
+ 0, 0x1F32, /* U1f32 */
+ IBUS_KEY_Multi_key, IBUS_KEY_grave, IBUS_KEY_greater, IBUS_KEY_Greek_omicron, 0,
+ 0, 0x1F42, /* U1f42 */
+ IBUS_KEY_Multi_key, IBUS_KEY_grave, IBUS_KEY_greater, IBUS_KEY_Greek_upsilon, 0,
+ 0, 0x1F52, /* U1f52 */
+ IBUS_KEY_Multi_key, IBUS_KEY_grave, IBUS_KEY_greater, IBUS_KEY_Greek_omega, 0,
+ 0, 0x1F62, /* U1f62 */
+ IBUS_KEY_Multi_key, IBUS_KEY_grave, IBUS_KEY_bar, IBUS_KEY_less, IBUS_KEY_Greek_ALPHA,
+ 0, 0x1F8B, /* U1f8b */
+ IBUS_KEY_Multi_key, IBUS_KEY_grave, IBUS_KEY_bar, IBUS_KEY_less, IBUS_KEY_Greek_ETA,
+ 0, 0x1F9B, /* U1f9b */
+ IBUS_KEY_Multi_key, IBUS_KEY_grave, IBUS_KEY_bar, IBUS_KEY_less, IBUS_KEY_Greek_OMEGA,
+ 0, 0x1FAB, /* U1fab */
+ IBUS_KEY_Multi_key, IBUS_KEY_grave, IBUS_KEY_bar, IBUS_KEY_less, IBUS_KEY_Greek_alpha,
+ 0, 0x1F83, /* U1f83 */
+ IBUS_KEY_Multi_key, IBUS_KEY_grave, IBUS_KEY_bar, IBUS_KEY_less, IBUS_KEY_Greek_eta,
+ 0, 0x1F93, /* U1f93 */
+ IBUS_KEY_Multi_key, IBUS_KEY_grave, IBUS_KEY_bar, IBUS_KEY_less, IBUS_KEY_Greek_omega,
+ 0, 0x1FA3, /* U1fa3 */
+ IBUS_KEY_Multi_key, IBUS_KEY_grave, IBUS_KEY_bar, IBUS_KEY_greater, IBUS_KEY_Greek_ALPHA,
+ 0, 0x1F8A, /* U1f8a */
+ IBUS_KEY_Multi_key, IBUS_KEY_grave, IBUS_KEY_bar, IBUS_KEY_greater, IBUS_KEY_Greek_ETA,
+ 0, 0x1F9A, /* U1f9a */
+ IBUS_KEY_Multi_key, IBUS_KEY_grave, IBUS_KEY_bar, IBUS_KEY_greater, IBUS_KEY_Greek_OMEGA,
+ 0, 0x1FAA, /* U1faa */
+ IBUS_KEY_Multi_key, IBUS_KEY_grave, IBUS_KEY_bar, IBUS_KEY_greater, IBUS_KEY_Greek_alpha,
+ 0, 0x1F82, /* U1f82 */
+ IBUS_KEY_Multi_key, IBUS_KEY_grave, IBUS_KEY_bar, IBUS_KEY_greater, IBUS_KEY_Greek_eta,
+ 0, 0x1F92, /* U1f92 */
+ IBUS_KEY_Multi_key, IBUS_KEY_grave, IBUS_KEY_bar, IBUS_KEY_greater, IBUS_KEY_Greek_omega,
+ 0, 0x1FA2, /* U1fa2 */
+ IBUS_KEY_Multi_key, IBUS_KEY_grave, IBUS_KEY_bar, IBUS_KEY_Greek_alpha, 0,
+ 0, 0x1FB2, /* U1fb2 */
+ IBUS_KEY_Multi_key, IBUS_KEY_grave, IBUS_KEY_bar, IBUS_KEY_Greek_eta, 0,
+ 0, 0x1FC2, /* U1fc2 */
+ IBUS_KEY_Multi_key, IBUS_KEY_grave, IBUS_KEY_bar, IBUS_KEY_Greek_omega, 0,
+ 0, 0x1FF2, /* U1ff2 */
+ IBUS_KEY_Multi_key, IBUS_KEY_a, IBUS_KEY_minus, 0, 0,
+ 0, 0x00E3, /* atilde */
+ IBUS_KEY_Multi_key, IBUS_KEY_a, IBUS_KEY_o, 0, 0,
+ 0, 0x00E5, /* aring */
+ IBUS_KEY_Multi_key, IBUS_KEY_b, IBUS_KEY_v, 0, 0,
+ 0, 0x00A6, /* brokenbar */
+ IBUS_KEY_Multi_key, IBUS_KEY_c, IBUS_KEY_O, 0, 0,
+ 0, 0x00A9, /* copyright */
+ IBUS_KEY_Multi_key, IBUS_KEY_c, IBUS_KEY_o, 0, 0,
+ 0, 0x00A9, /* copyright */
+ IBUS_KEY_Multi_key, IBUS_KEY_c, IBUS_KEY_cedilla, 0, 0,
+ 0, 0x00E7, /* ccedilla */
+ IBUS_KEY_Multi_key, IBUS_KEY_d, IBUS_KEY_minus, 0, 0,
+ 0, 0x00F0, /* eth */
+ IBUS_KEY_Multi_key, IBUS_KEY_o, IBUS_KEY_minus, 0, 0,
+ 0, 0x00F5, /* otilde */
+ IBUS_KEY_Multi_key, IBUS_KEY_v, IBUS_KEY_b, 0, 0,
+ 0, 0x00A6, /* brokenbar */
+ IBUS_KEY_Multi_key, IBUS_KEY_bar, IBUS_KEY_apostrophe, IBUS_KEY_less, IBUS_KEY_Greek_ALPHA,
+ 0, 0x1F8D, /* U1f8d */
+ IBUS_KEY_Multi_key, IBUS_KEY_bar, IBUS_KEY_apostrophe, IBUS_KEY_less, IBUS_KEY_Greek_ETA,
+ 0, 0x1F9D, /* U1f9d */
+ IBUS_KEY_Multi_key, IBUS_KEY_bar, IBUS_KEY_apostrophe, IBUS_KEY_less, IBUS_KEY_Greek_OMEGA,
+ 0, 0x1FAD, /* U1fad */
+ IBUS_KEY_Multi_key, IBUS_KEY_bar, IBUS_KEY_apostrophe, IBUS_KEY_less, IBUS_KEY_Greek_alpha,
+ 0, 0x1F85, /* U1f85 */
+ IBUS_KEY_Multi_key, IBUS_KEY_bar, IBUS_KEY_apostrophe, IBUS_KEY_less, IBUS_KEY_Greek_eta,
+ 0, 0x1F95, /* U1f95 */
+ IBUS_KEY_Multi_key, IBUS_KEY_bar, IBUS_KEY_apostrophe, IBUS_KEY_less, IBUS_KEY_Greek_omega,
+ 0, 0x1FA5, /* U1fa5 */
+ IBUS_KEY_Multi_key, IBUS_KEY_bar, IBUS_KEY_apostrophe, IBUS_KEY_greater, IBUS_KEY_Greek_ALPHA,
+ 0, 0x1F8C, /* U1f8c */
+ IBUS_KEY_Multi_key, IBUS_KEY_bar, IBUS_KEY_apostrophe, IBUS_KEY_greater, IBUS_KEY_Greek_ETA,
+ 0, 0x1F9C, /* U1f9c */
+ IBUS_KEY_Multi_key, IBUS_KEY_bar, IBUS_KEY_apostrophe, IBUS_KEY_greater, IBUS_KEY_Greek_OMEGA,
+ 0, 0x1FAC, /* U1fac */
+ IBUS_KEY_Multi_key, IBUS_KEY_bar, IBUS_KEY_apostrophe, IBUS_KEY_greater, IBUS_KEY_Greek_alpha,
+ 0, 0x1F84, /* U1f84 */
+ IBUS_KEY_Multi_key, IBUS_KEY_bar, IBUS_KEY_apostrophe, IBUS_KEY_greater, IBUS_KEY_Greek_eta,
+ 0, 0x1F94, /* U1f94 */
+ IBUS_KEY_Multi_key, IBUS_KEY_bar, IBUS_KEY_apostrophe, IBUS_KEY_greater, IBUS_KEY_Greek_omega,
+ 0, 0x1FA4, /* U1fa4 */
+ IBUS_KEY_Multi_key, IBUS_KEY_bar, IBUS_KEY_apostrophe, IBUS_KEY_Greek_alpha, 0,
+ 0, 0x1FB4, /* U1fb4 */
+ IBUS_KEY_Multi_key, IBUS_KEY_bar, IBUS_KEY_apostrophe, IBUS_KEY_Greek_eta, 0,
+ 0, 0x1FC4, /* U1fc4 */
+ IBUS_KEY_Multi_key, IBUS_KEY_bar, IBUS_KEY_apostrophe, IBUS_KEY_Greek_omega, 0,
+ 0, 0x1FF4, /* U1ff4 */
+ IBUS_KEY_Multi_key, IBUS_KEY_bar, IBUS_KEY_less, IBUS_KEY_apostrophe, IBUS_KEY_Greek_ALPHA,
+ 0, 0x1F8D, /* U1f8d */
+ IBUS_KEY_Multi_key, IBUS_KEY_bar, IBUS_KEY_less, IBUS_KEY_apostrophe, IBUS_KEY_Greek_ETA,
+ 0, 0x1F9D, /* U1f9d */
+ IBUS_KEY_Multi_key, IBUS_KEY_bar, IBUS_KEY_less, IBUS_KEY_apostrophe, IBUS_KEY_Greek_OMEGA,
+ 0, 0x1FAD, /* U1fad */
+ IBUS_KEY_Multi_key, IBUS_KEY_bar, IBUS_KEY_less, IBUS_KEY_apostrophe, IBUS_KEY_Greek_alpha,
+ 0, 0x1F85, /* U1f85 */
+ IBUS_KEY_Multi_key, IBUS_KEY_bar, IBUS_KEY_less, IBUS_KEY_apostrophe, IBUS_KEY_Greek_eta,
+ 0, 0x1F95, /* U1f95 */
+ IBUS_KEY_Multi_key, IBUS_KEY_bar, IBUS_KEY_less, IBUS_KEY_apostrophe, IBUS_KEY_Greek_omega,
+ 0, 0x1FA5, /* U1fa5 */
+ IBUS_KEY_Multi_key, IBUS_KEY_bar, IBUS_KEY_less, IBUS_KEY_grave, IBUS_KEY_Greek_ALPHA,
+ 0, 0x1F8B, /* U1f8b */
+ IBUS_KEY_Multi_key, IBUS_KEY_bar, IBUS_KEY_less, IBUS_KEY_grave, IBUS_KEY_Greek_ETA,
+ 0, 0x1F9B, /* U1f9b */
+ IBUS_KEY_Multi_key, IBUS_KEY_bar, IBUS_KEY_less, IBUS_KEY_grave, IBUS_KEY_Greek_OMEGA,
+ 0, 0x1FAB, /* U1fab */
+ IBUS_KEY_Multi_key, IBUS_KEY_bar, IBUS_KEY_less, IBUS_KEY_grave, IBUS_KEY_Greek_alpha,
+ 0, 0x1F83, /* U1f83 */
+ IBUS_KEY_Multi_key, IBUS_KEY_bar, IBUS_KEY_less, IBUS_KEY_grave, IBUS_KEY_Greek_eta,
+ 0, 0x1F93, /* U1f93 */
+ IBUS_KEY_Multi_key, IBUS_KEY_bar, IBUS_KEY_less, IBUS_KEY_grave, IBUS_KEY_Greek_omega,
+ 0, 0x1FA3, /* U1fa3 */
+ IBUS_KEY_Multi_key, IBUS_KEY_bar, IBUS_KEY_less, IBUS_KEY_asciitilde, IBUS_KEY_Greek_ALPHA,
+ 0, 0x1F8F, /* U1f8f */
+ IBUS_KEY_Multi_key, IBUS_KEY_bar, IBUS_KEY_less, IBUS_KEY_asciitilde, IBUS_KEY_Greek_ETA,
+ 0, 0x1F9F, /* U1f9f */
+ IBUS_KEY_Multi_key, IBUS_KEY_bar, IBUS_KEY_less, IBUS_KEY_asciitilde, IBUS_KEY_Greek_OMEGA,
+ 0, 0x1FAF, /* U1faf */
+ IBUS_KEY_Multi_key, IBUS_KEY_bar, IBUS_KEY_less, IBUS_KEY_asciitilde, IBUS_KEY_Greek_alpha,
+ 0, 0x1F87, /* U1f87 */
+ IBUS_KEY_Multi_key, IBUS_KEY_bar, IBUS_KEY_less, IBUS_KEY_asciitilde, IBUS_KEY_Greek_eta,
+ 0, 0x1F97, /* U1f97 */
+ IBUS_KEY_Multi_key, IBUS_KEY_bar, IBUS_KEY_less, IBUS_KEY_asciitilde, IBUS_KEY_Greek_omega,
+ 0, 0x1FA7, /* U1fa7 */
+ IBUS_KEY_Multi_key, IBUS_KEY_bar, IBUS_KEY_less, IBUS_KEY_Greek_ALPHA, 0,
+ 0, 0x1F89, /* U1f89 */
+ IBUS_KEY_Multi_key, IBUS_KEY_bar, IBUS_KEY_less, IBUS_KEY_Greek_ETA, 0,
+ 0, 0x1F99, /* U1f99 */
+ IBUS_KEY_Multi_key, IBUS_KEY_bar, IBUS_KEY_less, IBUS_KEY_Greek_OMEGA, 0,
+ 0, 0x1FA9, /* U1fa9 */
+ IBUS_KEY_Multi_key, IBUS_KEY_bar, IBUS_KEY_less, IBUS_KEY_Greek_alpha, 0,
+ 0, 0x1F81, /* U1f81 */
+ IBUS_KEY_Multi_key, IBUS_KEY_bar, IBUS_KEY_less, IBUS_KEY_Greek_eta, 0,
+ 0, 0x1F91, /* U1f91 */
+ IBUS_KEY_Multi_key, IBUS_KEY_bar, IBUS_KEY_less, IBUS_KEY_Greek_omega, 0,
+ 0, 0x1FA1, /* U1fa1 */
+ IBUS_KEY_Multi_key, IBUS_KEY_bar, IBUS_KEY_greater, IBUS_KEY_apostrophe, IBUS_KEY_Greek_ALPHA,
+ 0, 0x1F8C, /* U1f8c */
+ IBUS_KEY_Multi_key, IBUS_KEY_bar, IBUS_KEY_greater, IBUS_KEY_apostrophe, IBUS_KEY_Greek_ETA,
+ 0, 0x1F9C, /* U1f9c */
+ IBUS_KEY_Multi_key, IBUS_KEY_bar, IBUS_KEY_greater, IBUS_KEY_apostrophe, IBUS_KEY_Greek_OMEGA,
+ 0, 0x1FAC, /* U1fac */
+ IBUS_KEY_Multi_key, IBUS_KEY_bar, IBUS_KEY_greater, IBUS_KEY_apostrophe, IBUS_KEY_Greek_alpha,
+ 0, 0x1F84, /* U1f84 */
+ IBUS_KEY_Multi_key, IBUS_KEY_bar, IBUS_KEY_greater, IBUS_KEY_apostrophe, IBUS_KEY_Greek_eta,
+ 0, 0x1F94, /* U1f94 */
+ IBUS_KEY_Multi_key, IBUS_KEY_bar, IBUS_KEY_greater, IBUS_KEY_apostrophe, IBUS_KEY_Greek_omega,
+ 0, 0x1FA4, /* U1fa4 */
+ IBUS_KEY_Multi_key, IBUS_KEY_bar, IBUS_KEY_greater, IBUS_KEY_grave, IBUS_KEY_Greek_ALPHA,
+ 0, 0x1F8A, /* U1f8a */
+ IBUS_KEY_Multi_key, IBUS_KEY_bar, IBUS_KEY_greater, IBUS_KEY_grave, IBUS_KEY_Greek_ETA,
+ 0, 0x1F9A, /* U1f9a */
+ IBUS_KEY_Multi_key, IBUS_KEY_bar, IBUS_KEY_greater, IBUS_KEY_grave, IBUS_KEY_Greek_OMEGA,
+ 0, 0x1FAA, /* U1faa */
+ IBUS_KEY_Multi_key, IBUS_KEY_bar, IBUS_KEY_greater, IBUS_KEY_grave, IBUS_KEY_Greek_alpha,
+ 0, 0x1F82, /* U1f82 */
+ IBUS_KEY_Multi_key, IBUS_KEY_bar, IBUS_KEY_greater, IBUS_KEY_grave, IBUS_KEY_Greek_eta,
+ 0, 0x1F92, /* U1f92 */
+ IBUS_KEY_Multi_key, IBUS_KEY_bar, IBUS_KEY_greater, IBUS_KEY_grave, IBUS_KEY_Greek_omega,
+ 0, 0x1FA2, /* U1fa2 */
+ IBUS_KEY_Multi_key, IBUS_KEY_bar, IBUS_KEY_greater, IBUS_KEY_asciitilde, IBUS_KEY_Greek_ALPHA,
+ 0, 0x1F8E, /* U1f8e */
+ IBUS_KEY_Multi_key, IBUS_KEY_bar, IBUS_KEY_greater, IBUS_KEY_asciitilde, IBUS_KEY_Greek_ETA,
+ 0, 0x1F9E, /* U1f9e */
+ IBUS_KEY_Multi_key, IBUS_KEY_bar, IBUS_KEY_greater, IBUS_KEY_asciitilde, IBUS_KEY_Greek_OMEGA,
+ 0, 0x1FAE, /* U1fae */
+ IBUS_KEY_Multi_key, IBUS_KEY_bar, IBUS_KEY_greater, IBUS_KEY_asciitilde, IBUS_KEY_Greek_alpha,
+ 0, 0x1F86, /* U1f86 */
+ IBUS_KEY_Multi_key, IBUS_KEY_bar, IBUS_KEY_greater, IBUS_KEY_asciitilde, IBUS_KEY_Greek_eta,
+ 0, 0x1F96, /* U1f96 */
+ IBUS_KEY_Multi_key, IBUS_KEY_bar, IBUS_KEY_greater, IBUS_KEY_asciitilde, IBUS_KEY_Greek_omega,
+ 0, 0x1FA6, /* U1fa6 */
+ IBUS_KEY_Multi_key, IBUS_KEY_bar, IBUS_KEY_greater, IBUS_KEY_Greek_ALPHA, 0,
+ 0, 0x1F88, /* U1f88 */
+ IBUS_KEY_Multi_key, IBUS_KEY_bar, IBUS_KEY_greater, IBUS_KEY_Greek_ETA, 0,
+ 0, 0x1F98, /* U1f98 */
+ IBUS_KEY_Multi_key, IBUS_KEY_bar, IBUS_KEY_greater, IBUS_KEY_Greek_OMEGA, 0,
+ 0, 0x1FA8, /* U1fa8 */
+ IBUS_KEY_Multi_key, IBUS_KEY_bar, IBUS_KEY_greater, IBUS_KEY_Greek_alpha, 0,
+ 0, 0x1F80, /* U1f80 */
+ IBUS_KEY_Multi_key, IBUS_KEY_bar, IBUS_KEY_greater, IBUS_KEY_Greek_eta, 0,
+ 0, 0x1F90, /* U1f90 */
+ IBUS_KEY_Multi_key, IBUS_KEY_bar, IBUS_KEY_greater, IBUS_KEY_Greek_omega, 0,
+ 0, 0x1FA0, /* U1fa0 */
+ IBUS_KEY_Multi_key, IBUS_KEY_bar, IBUS_KEY_grave, IBUS_KEY_less, IBUS_KEY_Greek_ALPHA,
+ 0, 0x1F8B, /* U1f8b */
+ IBUS_KEY_Multi_key, IBUS_KEY_bar, IBUS_KEY_grave, IBUS_KEY_less, IBUS_KEY_Greek_ETA,
+ 0, 0x1F9B, /* U1f9b */
+ IBUS_KEY_Multi_key, IBUS_KEY_bar, IBUS_KEY_grave, IBUS_KEY_less, IBUS_KEY_Greek_OMEGA,
+ 0, 0x1FAB, /* U1fab */
+ IBUS_KEY_Multi_key, IBUS_KEY_bar, IBUS_KEY_grave, IBUS_KEY_less, IBUS_KEY_Greek_alpha,
+ 0, 0x1F83, /* U1f83 */
+ IBUS_KEY_Multi_key, IBUS_KEY_bar, IBUS_KEY_grave, IBUS_KEY_less, IBUS_KEY_Greek_eta,
+ 0, 0x1F93, /* U1f93 */
+ IBUS_KEY_Multi_key, IBUS_KEY_bar, IBUS_KEY_grave, IBUS_KEY_less, IBUS_KEY_Greek_omega,
+ 0, 0x1FA3, /* U1fa3 */
+ IBUS_KEY_Multi_key, IBUS_KEY_bar, IBUS_KEY_grave, IBUS_KEY_greater, IBUS_KEY_Greek_ALPHA,
+ 0, 0x1F8A, /* U1f8a */
+ IBUS_KEY_Multi_key, IBUS_KEY_bar, IBUS_KEY_grave, IBUS_KEY_greater, IBUS_KEY_Greek_ETA,
+ 0, 0x1F9A, /* U1f9a */
+ IBUS_KEY_Multi_key, IBUS_KEY_bar, IBUS_KEY_grave, IBUS_KEY_greater, IBUS_KEY_Greek_OMEGA,
+ 0, 0x1FAA, /* U1faa */
+ IBUS_KEY_Multi_key, IBUS_KEY_bar, IBUS_KEY_grave, IBUS_KEY_greater, IBUS_KEY_Greek_alpha,
+ 0, 0x1F82, /* U1f82 */
+ IBUS_KEY_Multi_key, IBUS_KEY_bar, IBUS_KEY_grave, IBUS_KEY_greater, IBUS_KEY_Greek_eta,
+ 0, 0x1F92, /* U1f92 */
+ IBUS_KEY_Multi_key, IBUS_KEY_bar, IBUS_KEY_grave, IBUS_KEY_greater, IBUS_KEY_Greek_omega,
+ 0, 0x1FA2, /* U1fa2 */
+ IBUS_KEY_Multi_key, IBUS_KEY_bar, IBUS_KEY_grave, IBUS_KEY_Greek_alpha, 0,
+ 0, 0x1FB2, /* U1fb2 */
+ IBUS_KEY_Multi_key, IBUS_KEY_bar, IBUS_KEY_grave, IBUS_KEY_Greek_eta, 0,
+ 0, 0x1FC2, /* U1fc2 */
+ IBUS_KEY_Multi_key, IBUS_KEY_bar, IBUS_KEY_grave, IBUS_KEY_Greek_omega, 0,
+ 0, 0x1FF2, /* U1ff2 */
+ IBUS_KEY_Multi_key, IBUS_KEY_bar, IBUS_KEY_bar, 0, 0,
+ 0, 0x00A6, /* brokenbar */
+ IBUS_KEY_Multi_key, IBUS_KEY_bar, IBUS_KEY_asciitilde, IBUS_KEY_less, IBUS_KEY_Greek_ALPHA,
+ 0, 0x1F8F, /* U1f8f */
+ IBUS_KEY_Multi_key, IBUS_KEY_bar, IBUS_KEY_asciitilde, IBUS_KEY_less, IBUS_KEY_Greek_ETA,
+ 0, 0x1F9F, /* U1f9f */
+ IBUS_KEY_Multi_key, IBUS_KEY_bar, IBUS_KEY_asciitilde, IBUS_KEY_less, IBUS_KEY_Greek_OMEGA,
+ 0, 0x1FAF, /* U1faf */
+ IBUS_KEY_Multi_key, IBUS_KEY_bar, IBUS_KEY_asciitilde, IBUS_KEY_less, IBUS_KEY_Greek_alpha,
+ 0, 0x1F87, /* U1f87 */
+ IBUS_KEY_Multi_key, IBUS_KEY_bar, IBUS_KEY_asciitilde, IBUS_KEY_less, IBUS_KEY_Greek_eta,
+ 0, 0x1F97, /* U1f97 */
+ IBUS_KEY_Multi_key, IBUS_KEY_bar, IBUS_KEY_asciitilde, IBUS_KEY_less, IBUS_KEY_Greek_omega,
+ 0, 0x1FA7, /* U1fa7 */
+ IBUS_KEY_Multi_key, IBUS_KEY_bar, IBUS_KEY_asciitilde, IBUS_KEY_greater, IBUS_KEY_Greek_ALPHA,
+ 0, 0x1F8E, /* U1f8e */
+ IBUS_KEY_Multi_key, IBUS_KEY_bar, IBUS_KEY_asciitilde, IBUS_KEY_greater, IBUS_KEY_Greek_ETA,
+ 0, 0x1F9E, /* U1f9e */
+ IBUS_KEY_Multi_key, IBUS_KEY_bar, IBUS_KEY_asciitilde, IBUS_KEY_greater, IBUS_KEY_Greek_OMEGA,
+ 0, 0x1FAE, /* U1fae */
+ IBUS_KEY_Multi_key, IBUS_KEY_bar, IBUS_KEY_asciitilde, IBUS_KEY_greater, IBUS_KEY_Greek_alpha,
+ 0, 0x1F86, /* U1f86 */
+ IBUS_KEY_Multi_key, IBUS_KEY_bar, IBUS_KEY_asciitilde, IBUS_KEY_greater, IBUS_KEY_Greek_eta,
+ 0, 0x1F96, /* U1f96 */
+ IBUS_KEY_Multi_key, IBUS_KEY_bar, IBUS_KEY_asciitilde, IBUS_KEY_greater, IBUS_KEY_Greek_omega,
+ 0, 0x1FA6, /* U1fa6 */
+ IBUS_KEY_Multi_key, IBUS_KEY_bar, IBUS_KEY_asciitilde, IBUS_KEY_Greek_alpha, 0,
+ 0, 0x1FB7, /* U1fb7 */
+ IBUS_KEY_Multi_key, IBUS_KEY_bar, IBUS_KEY_asciitilde, IBUS_KEY_Greek_eta, 0,
+ 0, 0x1FC7, /* U1fc7 */
+ IBUS_KEY_Multi_key, IBUS_KEY_bar, IBUS_KEY_asciitilde, IBUS_KEY_Greek_omega, 0,
+ 0, 0x1FF7, /* U1ff7 */
+ IBUS_KEY_Multi_key, IBUS_KEY_bar, IBUS_KEY_Greek_ALPHA, 0, 0,
+ 0, 0x1FBC, /* U1fbc */
+ IBUS_KEY_Multi_key, IBUS_KEY_bar, IBUS_KEY_Greek_ETA, 0, 0,
+ 0, 0x1FCC, /* U1fcc */
+ IBUS_KEY_Multi_key, IBUS_KEY_bar, IBUS_KEY_Greek_OMEGA, 0, 0,
+ 0, 0x1FFC, /* U1ffc */
+ IBUS_KEY_Multi_key, IBUS_KEY_bar, IBUS_KEY_Greek_alpha, 0, 0,
+ 0, 0x1FB3, /* U1fb3 */
+ IBUS_KEY_Multi_key, IBUS_KEY_bar, IBUS_KEY_Greek_eta, 0, 0,
+ 0, 0x1FC3, /* U1fc3 */
+ IBUS_KEY_Multi_key, IBUS_KEY_bar, IBUS_KEY_Greek_omega, 0, 0,
+ 0, 0x1FF3, /* U1ff3 */
+ IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, IBUS_KEY_less, IBUS_KEY_bar, IBUS_KEY_Greek_ALPHA,
+ 0, 0x1F8F, /* U1f8f */
+ IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, IBUS_KEY_less, IBUS_KEY_bar, IBUS_KEY_Greek_ETA,
+ 0, 0x1F9F, /* U1f9f */
+ IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, IBUS_KEY_less, IBUS_KEY_bar, IBUS_KEY_Greek_OMEGA,
+ 0, 0x1FAF, /* U1faf */
+ IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, IBUS_KEY_less, IBUS_KEY_bar, IBUS_KEY_Greek_alpha,
+ 0, 0x1F87, /* U1f87 */
+ IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, IBUS_KEY_less, IBUS_KEY_bar, IBUS_KEY_Greek_eta,
+ 0, 0x1F97, /* U1f97 */
+ IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, IBUS_KEY_less, IBUS_KEY_bar, IBUS_KEY_Greek_omega,
+ 0, 0x1FA7, /* U1fa7 */
+ IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, IBUS_KEY_less, IBUS_KEY_Greek_ALPHA, 0,
+ 0, 0x1F0F, /* U1f0f */
+ IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, IBUS_KEY_less, IBUS_KEY_Greek_ETA, 0,
+ 0, 0x1F2F, /* U1f2f */
+ IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, IBUS_KEY_less, IBUS_KEY_Greek_IOTA, 0,
+ 0, 0x1F3F, /* U1f3f */
+ IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, IBUS_KEY_less, IBUS_KEY_Greek_UPSILON, 0,
+ 0, 0x1F5F, /* U1f5f */
+ IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, IBUS_KEY_less, IBUS_KEY_Greek_OMEGA, 0,
+ 0, 0x1F6F, /* U1f6f */
+ IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, IBUS_KEY_less, IBUS_KEY_Greek_alpha, 0,
+ 0, 0x1F07, /* U1f07 */
+ IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, IBUS_KEY_less, IBUS_KEY_Greek_eta, 0,
+ 0, 0x1F27, /* U1f27 */
+ IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, IBUS_KEY_less, IBUS_KEY_Greek_iota, 0,
+ 0, 0x1F37, /* U1f37 */
+ IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, IBUS_KEY_less, IBUS_KEY_Greek_upsilon, 0,
+ 0, 0x1F57, /* U1f57 */
+ IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, IBUS_KEY_less, IBUS_KEY_Greek_omega, 0,
+ 0, 0x1F67, /* U1f67 */
+ IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, IBUS_KEY_greater, IBUS_KEY_bar, IBUS_KEY_Greek_ALPHA,
+ 0, 0x1F8E, /* U1f8e */
+ IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, IBUS_KEY_greater, IBUS_KEY_bar, IBUS_KEY_Greek_ETA,
+ 0, 0x1F9E, /* U1f9e */
+ IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, IBUS_KEY_greater, IBUS_KEY_bar, IBUS_KEY_Greek_OMEGA,
+ 0, 0x1FAE, /* U1fae */
+ IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, IBUS_KEY_greater, IBUS_KEY_bar, IBUS_KEY_Greek_alpha,
+ 0, 0x1F86, /* U1f86 */
+ IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, IBUS_KEY_greater, IBUS_KEY_bar, IBUS_KEY_Greek_eta,
+ 0, 0x1F96, /* U1f96 */
+ IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, IBUS_KEY_greater, IBUS_KEY_bar, IBUS_KEY_Greek_omega,
+ 0, 0x1FA6, /* U1fa6 */
+ IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, IBUS_KEY_greater, IBUS_KEY_Greek_ALPHA, 0,
+ 0, 0x1F0E, /* U1f0e */
+ IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, IBUS_KEY_greater, IBUS_KEY_Greek_ETA, 0,
+ 0, 0x1F2E, /* U1f2e */
+ IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, IBUS_KEY_greater, IBUS_KEY_Greek_IOTA, 0,
+ 0, 0x1F3E, /* U1f3e */
+ IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, IBUS_KEY_greater, IBUS_KEY_Greek_OMEGA, 0,
+ 0, 0x1F6E, /* U1f6e */
+ IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, IBUS_KEY_greater, IBUS_KEY_Greek_alpha, 0,
+ 0, 0x1F06, /* U1f06 */
+ IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, IBUS_KEY_greater, IBUS_KEY_Greek_eta, 0,
+ 0, 0x1F26, /* U1f26 */
+ IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, IBUS_KEY_greater, IBUS_KEY_Greek_iota, 0,
+ 0, 0x1F36, /* U1f36 */
+ IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, IBUS_KEY_greater, IBUS_KEY_Greek_upsilon, 0,
+ 0, 0x1F56, /* U1f56 */
+ IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, IBUS_KEY_greater, IBUS_KEY_Greek_omega, 0,
+ 0, 0x1F66, /* U1f66 */
+ IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, IBUS_KEY_bar, IBUS_KEY_less, IBUS_KEY_Greek_ALPHA,
+ 0, 0x1F8F, /* U1f8f */
+ IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, IBUS_KEY_bar, IBUS_KEY_less, IBUS_KEY_Greek_ETA,
+ 0, 0x1F9F, /* U1f9f */
+ IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, IBUS_KEY_bar, IBUS_KEY_less, IBUS_KEY_Greek_OMEGA,
+ 0, 0x1FAF, /* U1faf */
+ IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, IBUS_KEY_bar, IBUS_KEY_less, IBUS_KEY_Greek_alpha,
+ 0, 0x1F87, /* U1f87 */
+ IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, IBUS_KEY_bar, IBUS_KEY_less, IBUS_KEY_Greek_eta,
+ 0, 0x1F97, /* U1f97 */
+ IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, IBUS_KEY_bar, IBUS_KEY_less, IBUS_KEY_Greek_omega,
+ 0, 0x1FA7, /* U1fa7 */
+ IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, IBUS_KEY_bar, IBUS_KEY_greater, IBUS_KEY_Greek_ALPHA,
+ 0, 0x1F8E, /* U1f8e */
+ IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, IBUS_KEY_bar, IBUS_KEY_greater, IBUS_KEY_Greek_ETA,
+ 0, 0x1F9E, /* U1f9e */
+ IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, IBUS_KEY_bar, IBUS_KEY_greater, IBUS_KEY_Greek_OMEGA,
+ 0, 0x1FAE, /* U1fae */
+ IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, IBUS_KEY_bar, IBUS_KEY_greater, IBUS_KEY_Greek_alpha,
+ 0, 0x1F86, /* U1f86 */
+ IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, IBUS_KEY_bar, IBUS_KEY_greater, IBUS_KEY_Greek_eta,
+ 0, 0x1F96, /* U1f96 */
+ IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, IBUS_KEY_bar, IBUS_KEY_greater, IBUS_KEY_Greek_omega,
+ 0, 0x1FA6, /* U1fa6 */
+ IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, IBUS_KEY_bar, IBUS_KEY_Greek_alpha, 0,
+ 0, 0x1FB7, /* U1fb7 */
+ IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, IBUS_KEY_bar, IBUS_KEY_Greek_eta, 0,
+ 0, 0x1FC7, /* U1fc7 */
+ IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, IBUS_KEY_bar, IBUS_KEY_Greek_omega, 0,
+ 0, 0x1FF7, /* U1ff7 */
+ IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, IBUS_KEY_asciitilde, 0, 0,
+ 0, 0x2015, /* Greek_horizbar */
+ IBUS_KEY_Multi_key, IBUS_KEY_acute, IBUS_KEY_C, 0, 0,
+ 0, 0x00C7, /* Ccedilla */
+ IBUS_KEY_Multi_key, IBUS_KEY_acute, IBUS_KEY_c, 0, 0,
+ 0, 0x00E7, /* ccedilla */
+ IBUS_KEY_Multi_key, IBUS_KEY_Greek_DELTA, IBUS_KEY_Greek_RHO, 0, 0,
+ 0, 0x20AF, /* U20af */
+ IBUS_KEY_Multi_key, IBUS_KEY_Greek_DELTA, IBUS_KEY_Greek_rho, 0, 0,
+ 0, 0x20AF, /* U20af */
+ IBUS_KEY_Multi_key, IBUS_KEY_Greek_EPSILON, IBUS_KEY_equal, 0, 0,
+ 0, 0x20AC, /* EuroSign */
+ IBUS_KEY_Multi_key, IBUS_KEY_Greek_delta, IBUS_KEY_Greek_RHO, 0, 0,
+ 0, 0x20AF, /* U20af */
+ IBUS_KEY_Multi_key, IBUS_KEY_Greek_delta, IBUS_KEY_Greek_rho, 0, 0,
+ 0, 0x20AF, /* U20af */
+ IBUS_KEY_Multi_key, IBUS_KEY_Greek_epsilon, IBUS_KEY_equal, 0, 0,
+ 0, 0x20AC /* EuroSign */
+};
+
+static const IBusComposeTable ibus_compose_table_el_gr = {
+ ibus_compose_seqs_el_gr,
+ 5,
+ G_N_ELEMENTS (ibus_compose_seqs_el_gr) / (5 + 2)
+};
+
+static const guint16 ibus_compose_seqs_fi_fi[] = {
+ IBUS_KEY_dead_acute, IBUS_KEY_space, 0, 0,
+ 0, 0x00B4, /* # ACUTE ACCENT */
+ IBUS_KEY_dead_acute, IBUS_KEY_dead_circumflex, IBUS_KEY_E, 0,
+ 0, 0x1EC6, /* # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE */
+ IBUS_KEY_dead_diaeresis, IBUS_KEY_space, 0, 0,
+ 0, 0x00A8, /* # DIAERESIS */
+ IBUS_KEY_dead_hook, IBUS_KEY_dead_horn, IBUS_KEY_o, 0,
+ 0, 0x1EDD, /* # LATIN SMALL LETTER O WITH HORN AND HOOK ABOVE */
+ IBUS_KEY_dead_stroke, IBUS_KEY_D, 0, 0,
+ 0, 0x0110, /* # LATIN CAPITAL LETTER D WITH STROKE */
+ IBUS_KEY_dead_stroke, IBUS_KEY_G, 0, 0,
+ 0, 0x01E4, /* # LATIN CAPITAL LETTER G WITH STROKE */
+ IBUS_KEY_dead_stroke, IBUS_KEY_H, 0, 0,
+ 0, 0x0126, /* # LATIN CAPITAL LETTER H WITH STROKE */
+ IBUS_KEY_dead_stroke, IBUS_KEY_L, 0, 0,
+ 0, 0x0141, /* # LATIN CAPITAL LETTER L WITH STROKE */
+ IBUS_KEY_dead_stroke, IBUS_KEY_O, 0, 0,
+ 0, 0x00D8, /* # LATIN CAPITAL LETTER O WITH STROKE */
+ IBUS_KEY_dead_stroke, IBUS_KEY_T, 0, 0,
+ 0, 0x0166, /* # LATIN CAPITAL LETTER T WITH STROKE */
+ IBUS_KEY_dead_stroke, IBUS_KEY_d, 0, 0,
+ 0, 0x0111, /* # LATIN SMALL LETTER D WITH STROKE */
+ IBUS_KEY_dead_stroke, IBUS_KEY_g, 0, 0,
+ 0, 0x01E5, /* # LATIN SMALL LETTER G WITH STROKE */
+ IBUS_KEY_dead_stroke, IBUS_KEY_h, 0, 0,
+ 0, 0x0127, /* # LATIN SMALL LETTER H WITH STROKE */
+ IBUS_KEY_dead_stroke, IBUS_KEY_l, 0, 0,
+ 0, 0x0142, /* # LATIN SMALL LETTER L WITH STROKE */
+ IBUS_KEY_dead_stroke, IBUS_KEY_o, 0, 0,
+ 0, 0x00F8, /* # LATIN SMALL LETTER O WITH STROKE */
+ IBUS_KEY_dead_stroke, IBUS_KEY_t, 0, 0,
+ 0, 0x0167, /* # LATIN SMALL LETTER T WITH STROKE */
+ IBUS_KEY_dead_belowcomma, IBUS_KEY_S, 0, 0,
+ 0, 0x0218, /* # LATIN CAPITAL LETTER S WITH COMMA BELOW */
+ IBUS_KEY_dead_belowcomma, IBUS_KEY_T, 0, 0,
+ 0, 0x021A, /* # LATIN CAPITAL LETTER T WITH COMMA BELOW */
+ IBUS_KEY_dead_belowcomma, IBUS_KEY_s, 0, 0,
+ 0, 0x0219, /* # LATIN SMALL LETTER S WITH COMMA BELOW */
+ IBUS_KEY_dead_belowcomma, IBUS_KEY_t, 0, 0,
+ 0, 0x021B, /* # LATIN SMALL LETTER T WITH COMMA BELOW */
+ IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, IBUS_KEY_space, IBUS_KEY_n,
+ 0, 0x0149 /* # LATIN SMALL LETTER N PRECEDED BY APOSTROPHE */
+};
+
+static const IBusComposeTable ibus_compose_table_fi_fi = {
+ ibus_compose_seqs_fi_fi,
+ 4,
+ G_N_ELEMENTS (ibus_compose_seqs_fi_fi) / (4 + 2)
+};
+
+static const guint16 ibus_compose_seqs_pt_br[] = {
+ IBUS_KEY_dead_grave, 0x1F00, 0, 0, 0,
+ 0, 0x1F02, /* U1F02 # GREEK SMALL LETTER ALPHA WITH PSILI AND VARIA */
+ IBUS_KEY_dead_grave, 0x1F01, 0, 0, 0,
+ 0, 0x1F03, /* U1F03 # GREEK SMALL LETTER ALPHA WITH DASIA AND VARIA */
+ IBUS_KEY_dead_grave, 0x1F08, 0, 0, 0,
+ 0, 0x1F0A, /* U1F0A # GREEK CAPITAL LETTER ALPHA WITH PSILI AND VARIA */
+ IBUS_KEY_dead_grave, 0x1F09, 0, 0, 0,
+ 0, 0x1F0B, /* U1F0B # GREEK CAPITAL LETTER ALPHA WITH DASIA AND VARIA */
+ IBUS_KEY_dead_grave, 0x1F10, 0, 0, 0,
+ 0, 0x1F12, /* U1F12 # GREEK SMALL LETTER EPSILON WITH PSILI AND VARIA */
+ IBUS_KEY_dead_grave, 0x1F11, 0, 0, 0,
+ 0, 0x1F13, /* U1F13 # GREEK SMALL LETTER EPSILON WITH DASIA AND VARIA */
+ IBUS_KEY_dead_grave, 0x1F18, 0, 0, 0,
+ 0, 0x1F1A, /* U1F1A # GREEK CAPITAL LETTER EPSILON WITH PSILI AND VARIA */
+ IBUS_KEY_dead_grave, 0x1F19, 0, 0, 0,
+ 0, 0x1F1B, /* U1F1B # GREEK CAPITAL LETTER EPSILON WITH DASIA AND VARIA */
+ IBUS_KEY_dead_grave, 0x1F20, 0, 0, 0,
+ 0, 0x1F22, /* U1F22 # GREEK SMALL LETTER ETA WITH PSILI AND VARIA */
+ IBUS_KEY_dead_grave, 0x1F21, 0, 0, 0,
+ 0, 0x1F23, /* U1F23 # GREEK SMALL LETTER ETA WITH DASIA AND VARIA */
+ IBUS_KEY_dead_grave, 0x1F28, 0, 0, 0,
+ 0, 0x1F2A, /* U1F2A # GREEK CAPITAL LETTER ETA WITH PSILI AND VARIA */
+ IBUS_KEY_dead_grave, 0x1F29, 0, 0, 0,
+ 0, 0x1F2B, /* U1F2B # GREEK CAPITAL LETTER ETA WITH DASIA AND VARIA */
+ IBUS_KEY_dead_grave, 0x1F30, 0, 0, 0,
+ 0, 0x1F32, /* U1F32 # GREEK SMALL LETTER IOTA WITH PSILI AND VARIA */
+ IBUS_KEY_dead_grave, 0x1F31, 0, 0, 0,
+ 0, 0x1F33, /* U1F33 # GREEK SMALL LETTER IOTA WITH DASIA AND VARIA */
+ IBUS_KEY_dead_grave, 0x1F38, 0, 0, 0,
+ 0, 0x1F3A, /* U1F3A # GREEK CAPITAL LETTER IOTA WITH PSILI AND VARIA */
+ IBUS_KEY_dead_grave, 0x1F39, 0, 0, 0,
+ 0, 0x1F3B, /* U1F3B # GREEK CAPITAL LETTER IOTA WITH DASIA AND VARIA */
+ IBUS_KEY_dead_grave, 0x1F40, 0, 0, 0,
+ 0, 0x1F42, /* U1F42 # GREEK SMALL LETTER OMICRON WITH PSILI AND VARIA */
+ IBUS_KEY_dead_grave, 0x1F41, 0, 0, 0,
+ 0, 0x1F43, /* U1F43 # GREEK SMALL LETTER OMICRON WITH DASIA AND VARIA */
+ IBUS_KEY_dead_grave, 0x1F48, 0, 0, 0,
+ 0, 0x1F4A, /* U1F4A # GREEK CAPITAL LETTER OMICRON WITH PSILI AND VARIA */
+ IBUS_KEY_dead_grave, 0x1F49, 0, 0, 0,
+ 0, 0x1F4B, /* U1F4B # GREEK CAPITAL LETTER OMICRON WITH DASIA AND VARIA */
+ IBUS_KEY_dead_grave, 0x1F50, 0, 0, 0,
+ 0, 0x1F52, /* U1F52 # GREEK SMALL LETTER UPSILON WITH PSILI AND VARIA */
+ IBUS_KEY_dead_grave, 0x1F51, 0, 0, 0,
+ 0, 0x1F53, /* U1F53 # GREEK SMALL LETTER UPSILON WITH DASIA AND VARIA */
+ IBUS_KEY_dead_grave, 0x1F59, 0, 0, 0,
+ 0, 0x1F5B, /* U1F5B # GREEK CAPITAL LETTER UPSILON WITH DASIA AND VARIA */
+ IBUS_KEY_dead_grave, 0x1F60, 0, 0, 0,
+ 0, 0x1F62, /* U1F62 # GREEK SMALL LETTER OMEGA WITH PSILI AND VARIA */
+ IBUS_KEY_dead_grave, 0x1F61, 0, 0, 0,
+ 0, 0x1F63, /* U1F63 # GREEK SMALL LETTER OMEGA WITH DASIA AND VARIA */
+ IBUS_KEY_dead_grave, 0x1F68, 0, 0, 0,
+ 0, 0x1F6A, /* U1F6A # GREEK CAPITAL LETTER OMEGA WITH PSILI AND VARIA */
+ IBUS_KEY_dead_grave, 0x1F69, 0, 0, 0,
+ 0, 0x1F6B, /* U1F6B # GREEK CAPITAL LETTER OMEGA WITH DASIA AND VARIA */
+ IBUS_KEY_dead_acute, IBUS_KEY_C, 0, 0, 0,
+ 0, 0x00C7, /* Ccedilla # LATIN CAPITAL LETTER C WITH CEDILLA */
+ IBUS_KEY_dead_acute, IBUS_KEY_c, 0, 0, 0,
+ 0, 0x00E7, /* ccedilla # LATIN SMALL LETTER C WITH CEDILLA */
+ IBUS_KEY_dead_acute, 0x1F00, 0, 0, 0,
+ 0, 0x1F04, /* U1F04 # GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA */
+ IBUS_KEY_dead_acute, 0x1F01, 0, 0, 0,
+ 0, 0x1F05, /* U1F05 # GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA */
+ IBUS_KEY_dead_acute, 0x1F08, 0, 0, 0,
+ 0, 0x1F0C, /* U1F0C # GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA */
+ IBUS_KEY_dead_acute, 0x1F09, 0, 0, 0,
+ 0, 0x1F0D, /* U1F0D # GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA */
+ IBUS_KEY_dead_acute, 0x1F10, 0, 0, 0,
+ 0, 0x1F14, /* U1F14 # GREEK SMALL LETTER EPSILON WITH PSILI AND OXIA */
+ IBUS_KEY_dead_acute, 0x1F11, 0, 0, 0,
+ 0, 0x1F15, /* U1F15 # GREEK SMALL LETTER EPSILON WITH DASIA AND OXIA */
+ IBUS_KEY_dead_acute, 0x1F18, 0, 0, 0,
+ 0, 0x1F1C, /* U1F1C # GREEK CAPITAL LETTER EPSILON WITH PSILI AND OXIA */
+ IBUS_KEY_dead_acute, 0x1F19, 0, 0, 0,
+ 0, 0x1F1D, /* U1F1D # GREEK CAPITAL LETTER EPSILON WITH DASIA AND OXIA */
+ IBUS_KEY_dead_acute, 0x1F20, 0, 0, 0,
+ 0, 0x1F24, /* U1F24 # GREEK SMALL LETTER ETA WITH PSILI AND OXIA */
+ IBUS_KEY_dead_acute, 0x1F21, 0, 0, 0,
+ 0, 0x1F25, /* U1F25 # GREEK SMALL LETTER ETA WITH DASIA AND OXIA */
+ IBUS_KEY_dead_acute, 0x1F28, 0, 0, 0,
+ 0, 0x1F2C, /* U1F2C # GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA */
+ IBUS_KEY_dead_acute, 0x1F29, 0, 0, 0,
+ 0, 0x1F2D, /* U1F2D # GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA */
+ IBUS_KEY_dead_acute, 0x1F30, 0, 0, 0,
+ 0, 0x1F34, /* U1F34 # GREEK SMALL LETTER IOTA WITH PSILI AND OXIA */
+ IBUS_KEY_dead_acute, 0x1F31, 0, 0, 0,
+ 0, 0x1F35, /* U1F35 # GREEK SMALL LETTER IOTA WITH DASIA AND OXIA */
+ IBUS_KEY_dead_acute, 0x1F38, 0, 0, 0,
+ 0, 0x1F3C, /* U1F3C # GREEK CAPITAL LETTER IOTA WITH PSILI AND OXIA */
+ IBUS_KEY_dead_acute, 0x1F39, 0, 0, 0,
+ 0, 0x1F3D, /* U1F3D # GREEK CAPITAL LETTER IOTA WITH DASIA AND OXIA */
+ IBUS_KEY_dead_acute, 0x1F40, 0, 0, 0,
+ 0, 0x1F44, /* U1F44 # GREEK SMALL LETTER OMICRON WITH PSILI AND OXIA */
+ IBUS_KEY_dead_acute, 0x1F41, 0, 0, 0,
+ 0, 0x1F45, /* U1F45 # GREEK SMALL LETTER OMICRON WITH DASIA AND OXIA */
+ IBUS_KEY_dead_acute, 0x1F48, 0, 0, 0,
+ 0, 0x1F4C, /* U1F4C # GREEK CAPITAL LETTER OMICRON WITH PSILI AND OXIA */
+ IBUS_KEY_dead_acute, 0x1F49, 0, 0, 0,
+ 0, 0x1F4D, /* U1F4D # GREEK CAPITAL LETTER OMICRON WITH DASIA AND OXIA */
+ IBUS_KEY_dead_acute, 0x1F50, 0, 0, 0,
+ 0, 0x1F54, /* U1F54 # GREEK SMALL LETTER UPSILON WITH PSILI AND OXIA */
+ IBUS_KEY_dead_acute, 0x1F51, 0, 0, 0,
+ 0, 0x1F55, /* U1F55 # GREEK SMALL LETTER UPSILON WITH DASIA AND OXIA */
+ IBUS_KEY_dead_acute, 0x1F59, 0, 0, 0,
+ 0, 0x1F5D, /* U1F5D # GREEK CAPITAL LETTER UPSILON WITH DASIA AND OXIA */
+ IBUS_KEY_dead_acute, 0x1F60, 0, 0, 0,
+ 0, 0x1F64, /* U1F64 # GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA */
+ IBUS_KEY_dead_acute, 0x1F61, 0, 0, 0,
+ 0, 0x1F65, /* U1F65 # GREEK SMALL LETTER OMEGA WITH DASIA AND OXIA */
+ IBUS_KEY_dead_acute, 0x1F68, 0, 0, 0,
+ 0, 0x1F6C, /* U1F6C # GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA */
+ IBUS_KEY_dead_acute, 0x1F69, 0, 0, 0,
+ 0, 0x1F6D, /* U1F6D # GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA */
+ IBUS_KEY_dead_circumflex, 0x1EA0, 0, 0, 0,
+ 0, 0x1EAC, /* U1EAC # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND DOT BELOW */
+ IBUS_KEY_dead_circumflex, 0x1EA1, 0, 0, 0,
+ 0, 0x1EAD, /* U1EAD # LATIN SMALL LETTER A WITH CIRCUMFLEX AND DOT BELOW */
+ IBUS_KEY_dead_circumflex, 0x1EB8, 0, 0, 0,
+ 0, 0x1EC6, /* U1EC6 # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND DOT BELOW */
+ IBUS_KEY_dead_circumflex, 0x1EB9, 0, 0, 0,
+ 0, 0x1EC7, /* U1EC7 # LATIN SMALL LETTER E WITH CIRCUMFLEX AND DOT BELOW */
+ IBUS_KEY_dead_circumflex, 0x1ECC, 0, 0, 0,
+ 0, 0x1ED8, /* U1ED8 # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND DOT BELOW */
+ IBUS_KEY_dead_circumflex, 0x1ECD, 0, 0, 0,
+ 0, 0x1ED9, /* U1ED9 # LATIN SMALL LETTER O WITH CIRCUMFLEX AND DOT BELOW */
+ IBUS_KEY_dead_macron, 0x01EA, 0, 0, 0,
+ 0, 0x01EC, /* U01EC # LATIN CAPITAL LETTER O WITH OGONEK AND MACRON */
+ IBUS_KEY_dead_macron, 0x01EB, 0, 0, 0,
+ 0, 0x01ED, /* U01ED # LATIN SMALL LETTER O WITH OGONEK AND MACRON */
+ IBUS_KEY_dead_macron, 0x0226, 0, 0, 0,
+ 0, 0x01E0, /* U01E0 # LATIN CAPITAL LETTER A WITH DOT ABOVE AND MACRON */
+ IBUS_KEY_dead_macron, 0x0227, 0, 0, 0,
+ 0, 0x01E1, /* U01E1 # LATIN SMALL LETTER A WITH DOT ABOVE AND MACRON */
+ IBUS_KEY_dead_macron, 0x022E, 0, 0, 0,
+ 0, 0x0230, /* U0230 # LATIN CAPITAL LETTER O WITH DOT ABOVE AND MACRON */
+ IBUS_KEY_dead_macron, 0x022F, 0, 0, 0,
+ 0, 0x0231, /* U0231 # LATIN SMALL LETTER O WITH DOT ABOVE AND MACRON */
+ IBUS_KEY_dead_macron, 0x1E36, 0, 0, 0,
+ 0, 0x1E38, /* U1E38 # LATIN CAPITAL LETTER L WITH DOT BELOW AND MACRON */
+ IBUS_KEY_dead_macron, 0x1E37, 0, 0, 0,
+ 0, 0x1E39, /* U1E39 # LATIN SMALL LETTER L WITH DOT BELOW AND MACRON */
+ IBUS_KEY_dead_macron, 0x1E5A, 0, 0, 0,
+ 0, 0x1E5C, /* U1E5C # LATIN CAPITAL LETTER R WITH DOT BELOW AND MACRON */
+ IBUS_KEY_dead_macron, 0x1E5B, 0, 0, 0,
+ 0, 0x1E5D, /* U1E5D # LATIN SMALL LETTER R WITH DOT BELOW AND MACRON */
+ IBUS_KEY_dead_macron, IBUS_KEY_dead_diaeresis, IBUS_KEY_U, 0, 0,
+ 0, 0x01D5, /* U01D5 # LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON */
+ IBUS_KEY_dead_macron, IBUS_KEY_dead_diaeresis, IBUS_KEY_u, 0, 0,
+ 0, 0x01D6, /* U01D6 # LATIN SMALL LETTER U WITH DIAERESIS AND MACRON */
+ IBUS_KEY_dead_breve, 0x0228, 0, 0, 0,
+ 0, 0x1E1C, /* U1E1C # LATIN CAPITAL LETTER E WITH CEDILLA AND BREVE */
+ IBUS_KEY_dead_breve, 0x0229, 0, 0, 0,
+ 0, 0x1E1D, /* U1E1D # LATIN SMALL LETTER E WITH CEDILLA AND BREVE */
+ IBUS_KEY_dead_breve, 0x1EA0, 0, 0, 0,
+ 0, 0x1EB6, /* U1EB6 # LATIN CAPITAL LETTER A WITH BREVE AND DOT BELOW */
+ IBUS_KEY_dead_breve, 0x1EA1, 0, 0, 0,
+ 0, 0x1EB7, /* U1EB7 # LATIN SMALL LETTER A WITH BREVE AND DOT BELOW */
+ IBUS_KEY_dead_abovedot, 0x017F, 0, 0, 0,
+ 0, 0x1E9B, /* U1E9B # LATIN SMALL LETTER LONG S WITH DOT ABOVE */
+ IBUS_KEY_dead_abovedot, 0x1E62, 0, 0, 0,
+ 0, 0x1E68, /* U1E68 # LATIN CAPITAL LETTER S WITH DOT BELOW AND DOT ABOVE */
+ IBUS_KEY_dead_abovedot, 0x1E63, 0, 0, 0,
+ 0, 0x1E69, /* U1E69 # LATIN SMALL LETTER S WITH DOT BELOW AND DOT ABOVE */
+ IBUS_KEY_dead_diaeresis, 0x04D8, 0, 0, 0,
+ 0, 0x04DA, /* U04DA # CYRILLIC CAPITAL LETTER SCHWA WITH DIAERESIS */
+ IBUS_KEY_dead_diaeresis, 0x04D9, 0, 0, 0,
+ 0, 0x04DB, /* U04DB # CYRILLIC SMALL LETTER SCHWA WITH DIAERESIS */
+ IBUS_KEY_dead_diaeresis, 0x04E8, 0, 0, 0,
+ 0, 0x04EA, /* U04EA # CYRILLIC CAPITAL LETTER BARRED O WITH DIAERESIS */
+ IBUS_KEY_dead_diaeresis, 0x04E9, 0, 0, 0,
+ 0, 0x04EB, /* U04EB # CYRILLIC SMALL LETTER BARRED O WITH DIAERESIS */
+ IBUS_KEY_dead_diaeresis, IBUS_KEY_dead_macron, IBUS_KEY_U, 0, 0,
+ 0, 0x1E7A, /* U1E7A # LATIN CAPITAL LETTER U WITH MACRON AND DIAERESIS */
+ IBUS_KEY_dead_diaeresis, IBUS_KEY_dead_macron, IBUS_KEY_u, 0, 0,
+ 0, 0x1E7B, /* U1E7B # LATIN SMALL LETTER U WITH MACRON AND DIAERESIS */
+ IBUS_KEY_dead_iota, 0x1F00, 0, 0, 0,
+ 0, 0x1F80, /* U1F80 # GREEK SMALL LETTER ALPHA WITH PSILI AND YPOGEGRAMMENI */
+ IBUS_KEY_dead_iota, 0x1F01, 0, 0, 0,
+ 0, 0x1F81, /* U1F81 # GREEK SMALL LETTER ALPHA WITH DASIA AND YPOGEGRAMMENI */
+ IBUS_KEY_dead_iota, 0x1F02, 0, 0, 0,
+ 0, 0x1F82, /* U1F82 # GREEK SMALL LETTER ALPHA WITH PSILI AND VARIA AND YPOGEGRAMMENI */
+ IBUS_KEY_dead_iota, 0x1F03, 0, 0, 0,
+ 0, 0x1F83, /* U1F83 # GREEK SMALL LETTER ALPHA WITH DASIA AND VARIA AND YPOGEGRAMMENI */
+ IBUS_KEY_dead_iota, 0x1F04, 0, 0, 0,
+ 0, 0x1F84, /* U1F84 # GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA AND YPOGEGRAMMENI */
+ IBUS_KEY_dead_iota, 0x1F05, 0, 0, 0,
+ 0, 0x1F85, /* U1F85 # GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA AND YPOGEGRAMMENI */
+ IBUS_KEY_dead_iota, 0x1F06, 0, 0, 0,
+ 0, 0x1F86, /* U1F86 # GREEK SMALL LETTER ALPHA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI */
+ IBUS_KEY_dead_iota, 0x1F07, 0, 0, 0,
+ 0, 0x1F87, /* U1F87 # GREEK SMALL LETTER ALPHA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI */
+ IBUS_KEY_dead_iota, 0x1F08, 0, 0, 0,
+ 0, 0x1F88, /* U1F88 # GREEK CAPITAL LETTER ALPHA WITH PSILI AND PROSGEGRAMMENI */
+ IBUS_KEY_dead_iota, 0x1F09, 0, 0, 0,
+ 0, 0x1F89, /* U1F89 # GREEK CAPITAL LETTER ALPHA WITH DASIA AND PROSGEGRAMMENI */
+ IBUS_KEY_dead_iota, 0x1F0A, 0, 0, 0,
+ 0, 0x1F8A, /* U1F8A # GREEK CAPITAL LETTER ALPHA WITH PSILI AND VARIA AND PROSGEGRAMMENI */
+ IBUS_KEY_dead_iota, 0x1F0B, 0, 0, 0,
+ 0, 0x1F8B, /* U1F8B # GREEK CAPITAL LETTER ALPHA WITH DASIA AND VARIA AND PROSGEGRAMMENI */
+ IBUS_KEY_dead_iota, 0x1F0C, 0, 0, 0,
+ 0, 0x1F8C, /* U1F8C # GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA AND PROSGEGRAMMENI */
+ IBUS_KEY_dead_iota, 0x1F0D, 0, 0, 0,
+ 0, 0x1F8D, /* U1F8D # GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA AND PROSGEGRAMMENI */
+ IBUS_KEY_dead_iota, 0x1F0E, 0, 0, 0,
+ 0, 0x1F8E, /* U1F8E # GREEK CAPITAL LETTER ALPHA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI */
+ IBUS_KEY_dead_iota, 0x1F0F, 0, 0, 0,
+ 0, 0x1F8F, /* U1F8F # GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI */
+ IBUS_KEY_dead_iota, 0x1F20, 0, 0, 0,
+ 0, 0x1F90, /* U1F90 # GREEK SMALL LETTER ETA WITH PSILI AND YPOGEGRAMMENI */
+ IBUS_KEY_dead_iota, 0x1F21, 0, 0, 0,
+ 0, 0x1F91, /* U1F91 # GREEK SMALL LETTER ETA WITH DASIA AND YPOGEGRAMMENI */
+ IBUS_KEY_dead_iota, 0x1F22, 0, 0, 0,
+ 0, 0x1F92, /* U1F92 # GREEK SMALL LETTER ETA WITH PSILI AND VARIA AND YPOGEGRAMMENI */
+ IBUS_KEY_dead_iota, 0x1F23, 0, 0, 0,
+ 0, 0x1F93, /* U1F93 # GREEK SMALL LETTER ETA WITH DASIA AND VARIA AND YPOGEGRAMMENI */
+ IBUS_KEY_dead_iota, 0x1F24, 0, 0, 0,
+ 0, 0x1F94, /* U1F94 # GREEK SMALL LETTER ETA WITH PSILI AND OXIA AND YPOGEGRAMMENI */
+ IBUS_KEY_dead_iota, 0x1F25, 0, 0, 0,
+ 0, 0x1F95, /* U1F95 # GREEK SMALL LETTER ETA WITH DASIA AND OXIA AND YPOGEGRAMMENI */
+ IBUS_KEY_dead_iota, 0x1F26, 0, 0, 0,
+ 0, 0x1F96, /* U1F96 # GREEK SMALL LETTER ETA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI */
+ IBUS_KEY_dead_iota, 0x1F27, 0, 0, 0,
+ 0, 0x1F97, /* U1F97 # GREEK SMALL LETTER ETA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI */
+ IBUS_KEY_dead_iota, 0x1F28, 0, 0, 0,
+ 0, 0x1F98, /* U1F98 # GREEK CAPITAL LETTER ETA WITH PSILI AND PROSGEGRAMMENI */
+ IBUS_KEY_dead_iota, 0x1F29, 0, 0, 0,
+ 0, 0x1F99, /* U1F99 # GREEK CAPITAL LETTER ETA WITH DASIA AND PROSGEGRAMMENI */
+ IBUS_KEY_dead_iota, 0x1F2A, 0, 0, 0,
+ 0, 0x1F9A, /* U1F9A # GREEK CAPITAL LETTER ETA WITH PSILI AND VARIA AND PROSGEGRAMMENI */
+ IBUS_KEY_dead_iota, 0x1F2B, 0, 0, 0,
+ 0, 0x1F9B, /* U1F9B # GREEK CAPITAL LETTER ETA WITH DASIA AND VARIA AND PROSGEGRAMMENI */
+ IBUS_KEY_dead_iota, 0x1F2C, 0, 0, 0,
+ 0, 0x1F9C, /* U1F9C # GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA AND PROSGEGRAMMENI */
+ IBUS_KEY_dead_iota, 0x1F2D, 0, 0, 0,
+ 0, 0x1F9D, /* U1F9D # GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA AND PROSGEGRAMMENI */
+ IBUS_KEY_dead_iota, 0x1F2E, 0, 0, 0,
+ 0, 0x1F9E, /* U1F9E # GREEK CAPITAL LETTER ETA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI */
+ IBUS_KEY_dead_iota, 0x1F2F, 0, 0, 0,
+ 0, 0x1F9F, /* U1F9F # GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI */
+ IBUS_KEY_dead_iota, 0x1F60, 0, 0, 0,
+ 0, 0x1FA0, /* U1FA0 # GREEK SMALL LETTER OMEGA WITH PSILI AND YPOGEGRAMMENI */
+ IBUS_KEY_dead_iota, 0x1F61, 0, 0, 0,
+ 0, 0x1FA1, /* U1FA1 # GREEK SMALL LETTER OMEGA WITH DASIA AND YPOGEGRAMMENI */
+ IBUS_KEY_dead_iota, 0x1F62, 0, 0, 0,
+ 0, 0x1FA2, /* U1FA2 # GREEK SMALL LETTER OMEGA WITH PSILI AND VARIA AND YPOGEGRAMMENI */
+ IBUS_KEY_dead_iota, 0x1F63, 0, 0, 0,
+ 0, 0x1FA3, /* U1FA3 # GREEK SMALL LETTER OMEGA WITH DASIA AND VARIA AND YPOGEGRAMMENI */
+ IBUS_KEY_dead_iota, 0x1F64, 0, 0, 0,
+ 0, 0x1FA4, /* U1FA4 # GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA AND YPOGEGRAMMENI */
+ IBUS_KEY_dead_iota, 0x1F65, 0, 0, 0,
+ 0, 0x1FA5, /* U1FA5 # GREEK SMALL LETTER OMEGA WITH DASIA AND OXIA AND YPOGEGRAMMENI */
+ IBUS_KEY_dead_iota, 0x1F66, 0, 0, 0,
+ 0, 0x1FA6, /* U1FA6 # GREEK SMALL LETTER OMEGA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI */
+ IBUS_KEY_dead_iota, 0x1F67, 0, 0, 0,
+ 0, 0x1FA7, /* U1FA7 # GREEK SMALL LETTER OMEGA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI */
+ IBUS_KEY_dead_iota, 0x1F68, 0, 0, 0,
+ 0, 0x1FA8, /* U1FA8 # GREEK CAPITAL LETTER OMEGA WITH PSILI AND PROSGEGRAMMENI */
+ IBUS_KEY_dead_iota, 0x1F69, 0, 0, 0,
+ 0, 0x1FA9, /* U1FA9 # GREEK CAPITAL LETTER OMEGA WITH DASIA AND PROSGEGRAMMENI */
+ IBUS_KEY_dead_iota, 0x1F6A, 0, 0, 0,
+ 0, 0x1FAA, /* U1FAA # GREEK CAPITAL LETTER OMEGA WITH PSILI AND VARIA AND PROSGEGRAMMENI */
+ IBUS_KEY_dead_iota, 0x1F6B, 0, 0, 0,
+ 0, 0x1FAB, /* U1FAB # GREEK CAPITAL LETTER OMEGA WITH DASIA AND VARIA AND PROSGEGRAMMENI */
+ IBUS_KEY_dead_iota, 0x1F6C, 0, 0, 0,
+ 0, 0x1FAC, /* U1FAC # GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA AND PROSGEGRAMMENI */
+ IBUS_KEY_dead_iota, 0x1F6D, 0, 0, 0,
+ 0, 0x1FAD, /* U1FAD # GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA AND PROSGEGRAMMENI */
+ IBUS_KEY_dead_iota, 0x1F6E, 0, 0, 0,
+ 0, 0x1FAE, /* U1FAE # GREEK CAPITAL LETTER OMEGA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI */
+ IBUS_KEY_dead_iota, 0x1F6F, 0, 0, 0,
+ 0, 0x1FAF, /* U1FAF # GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI */
+ IBUS_KEY_dead_iota, 0x1F70, 0, 0, 0,
+ 0, 0x1FB2, /* U1FB2 # GREEK SMALL LETTER ALPHA WITH VARIA AND YPOGEGRAMMENI */
+ IBUS_KEY_dead_iota, 0x1F74, 0, 0, 0,
+ 0, 0x1FC2, /* U1FC2 # GREEK SMALL LETTER ETA WITH VARIA AND YPOGEGRAMMENI */
+ IBUS_KEY_dead_iota, 0x1F7C, 0, 0, 0,
+ 0, 0x1FF2, /* U1FF2 # GREEK SMALL LETTER OMEGA WITH VARIA AND YPOGEGRAMMENI */
+ IBUS_KEY_dead_iota, 0x1FB6, 0, 0, 0,
+ 0, 0x1FB7, /* U1FB7 # GREEK SMALL LETTER ALPHA WITH PERISPOMENI AND YPOGEGRAMMENI */
+ IBUS_KEY_dead_iota, 0x1FC6, 0, 0, 0,
+ 0, 0x1FC7, /* U1FC7 # GREEK SMALL LETTER ETA WITH PERISPOMENI AND YPOGEGRAMMENI */
+ IBUS_KEY_dead_iota, 0x1FF6, 0, 0, 0,
+ 0, 0x1FF7, /* U1FF7 # GREEK SMALL LETTER OMEGA WITH PERISPOMENI AND YPOGEGRAMMENI */
+ IBUS_KEY_dead_iota, IBUS_KEY_dead_grave, 0x1F00, 0, 0,
+ 0, 0x1F82, /* U1F82 # GREEK SMALL LETTER ALPHA WITH PSILI AND VARIA AND YPOGEGRAMMENI */
+ IBUS_KEY_dead_iota, IBUS_KEY_dead_grave, 0x1F01, 0, 0,
+ 0, 0x1F83, /* U1F83 # GREEK SMALL LETTER ALPHA WITH DASIA AND VARIA AND YPOGEGRAMMENI */
+ IBUS_KEY_dead_iota, IBUS_KEY_dead_grave, 0x1F08, 0, 0,
+ 0, 0x1F8A, /* U1F8A # GREEK CAPITAL LETTER ALPHA WITH PSILI AND VARIA AND PROSGEGRAMMENI */
+ IBUS_KEY_dead_iota, IBUS_KEY_dead_grave, 0x1F09, 0, 0,
+ 0, 0x1F8B, /* U1F8B # GREEK CAPITAL LETTER ALPHA WITH DASIA AND VARIA AND PROSGEGRAMMENI */
+ IBUS_KEY_dead_iota, IBUS_KEY_dead_grave, 0x1F20, 0, 0,
+ 0, 0x1F92, /* U1F92 # GREEK SMALL LETTER ETA WITH PSILI AND VARIA AND YPOGEGRAMMENI */
+ IBUS_KEY_dead_iota, IBUS_KEY_dead_grave, 0x1F21, 0, 0,
+ 0, 0x1F93, /* U1F93 # GREEK SMALL LETTER ETA WITH DASIA AND VARIA AND YPOGEGRAMMENI */
+ IBUS_KEY_dead_iota, IBUS_KEY_dead_grave, 0x1F28, 0, 0,
+ 0, 0x1F9A, /* U1F9A # GREEK CAPITAL LETTER ETA WITH PSILI AND VARIA AND PROSGEGRAMMENI */
+ IBUS_KEY_dead_iota, IBUS_KEY_dead_grave, 0x1F29, 0, 0,
+ 0, 0x1F9B, /* U1F9B # GREEK CAPITAL LETTER ETA WITH DASIA AND VARIA AND PROSGEGRAMMENI */
+ IBUS_KEY_dead_iota, IBUS_KEY_dead_grave, 0x1F60, 0, 0,
+ 0, 0x1FA2, /* U1FA2 # GREEK SMALL LETTER OMEGA WITH PSILI AND VARIA AND YPOGEGRAMMENI */
+ IBUS_KEY_dead_iota, IBUS_KEY_dead_grave, 0x1F61, 0, 0,
+ 0, 0x1FA3, /* U1FA3 # GREEK SMALL LETTER OMEGA WITH DASIA AND VARIA AND YPOGEGRAMMENI */
+ IBUS_KEY_dead_iota, IBUS_KEY_dead_grave, 0x1F68, 0, 0,
+ 0, 0x1FAA, /* U1FAA # GREEK CAPITAL LETTER OMEGA WITH PSILI AND VARIA AND PROSGEGRAMMENI */
+ IBUS_KEY_dead_iota, IBUS_KEY_dead_grave, 0x1F69, 0, 0,
+ 0, 0x1FAB, /* U1FAB # GREEK CAPITAL LETTER OMEGA WITH DASIA AND VARIA AND PROSGEGRAMMENI */
+ IBUS_KEY_dead_iota, IBUS_KEY_dead_acute, 0x1F00, 0, 0,
+ 0, 0x1F84, /* U1F84 # GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA AND YPOGEGRAMMENI */
+ IBUS_KEY_dead_iota, IBUS_KEY_dead_acute, 0x1F01, 0, 0,
+ 0, 0x1F85, /* U1F85 # GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA AND YPOGEGRAMMENI */
+ IBUS_KEY_dead_iota, IBUS_KEY_dead_acute, 0x1F08, 0, 0,
+ 0, 0x1F8C, /* U1F8C # GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA AND PROSGEGRAMMENI */
+ IBUS_KEY_dead_iota, IBUS_KEY_dead_acute, 0x1F09, 0, 0,
+ 0, 0x1F8D, /* U1F8D # GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA AND PROSGEGRAMMENI */
+ IBUS_KEY_dead_iota, IBUS_KEY_dead_acute, 0x1F20, 0, 0,
+ 0, 0x1F94, /* U1F94 # GREEK SMALL LETTER ETA WITH PSILI AND OXIA AND YPOGEGRAMMENI */
+ IBUS_KEY_dead_iota, IBUS_KEY_dead_acute, 0x1F21, 0, 0,
+ 0, 0x1F95, /* U1F95 # GREEK SMALL LETTER ETA WITH DASIA AND OXIA AND YPOGEGRAMMENI */
+ IBUS_KEY_dead_iota, IBUS_KEY_dead_acute, 0x1F28, 0, 0,
+ 0, 0x1F9C, /* U1F9C # GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA AND PROSGEGRAMMENI */
+ IBUS_KEY_dead_iota, IBUS_KEY_dead_acute, 0x1F29, 0, 0,
+ 0, 0x1F9D, /* U1F9D # GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA AND PROSGEGRAMMENI */
+ IBUS_KEY_dead_iota, IBUS_KEY_dead_acute, 0x1F60, 0, 0,
+ 0, 0x1FA4, /* U1FA4 # GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA AND YPOGEGRAMMENI */
+ IBUS_KEY_dead_iota, IBUS_KEY_dead_acute, 0x1F61, 0, 0,
+ 0, 0x1FA5, /* U1FA5 # GREEK SMALL LETTER OMEGA WITH DASIA AND OXIA AND YPOGEGRAMMENI */
+ IBUS_KEY_dead_iota, IBUS_KEY_dead_acute, 0x1F68, 0, 0,
+ 0, 0x1FAC, /* U1FAC # GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA AND PROSGEGRAMMENI */
+ IBUS_KEY_dead_iota, IBUS_KEY_dead_acute, 0x1F69, 0, 0,
+ 0, 0x1FAD, /* U1FAD # GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA AND PROSGEGRAMMENI */
+ IBUS_KEY_dead_voiced_sound, 0x3046, 0, 0, 0,
+ 0, 0x3094, /* U3094 # HIRAGANA LETTER VU */
+ IBUS_KEY_dead_voiced_sound, 0x304B, 0, 0, 0,
+ 0, 0x304C, /* U304C # HIRAGANA LETTER GA */
+ IBUS_KEY_dead_voiced_sound, 0x304D, 0, 0, 0,
+ 0, 0x304E, /* U304E # HIRAGANA LETTER GI */
+ IBUS_KEY_dead_voiced_sound, 0x304F, 0, 0, 0,
+ 0, 0x3050, /* U3050 # HIRAGANA LETTER GU */
+ IBUS_KEY_dead_voiced_sound, 0x3051, 0, 0, 0,
+ 0, 0x3052, /* U3052 # HIRAGANA LETTER GE */
+ IBUS_KEY_dead_voiced_sound, 0x3053, 0, 0, 0,
+ 0, 0x3054, /* U3054 # HIRAGANA LETTER GO */
+ IBUS_KEY_dead_voiced_sound, 0x3055, 0, 0, 0,
+ 0, 0x3056, /* U3056 # HIRAGANA LETTER ZA */
+ IBUS_KEY_dead_voiced_sound, 0x3057, 0, 0, 0,
+ 0, 0x3058, /* U3058 # HIRAGANA LETTER ZI */
+ IBUS_KEY_dead_voiced_sound, 0x3059, 0, 0, 0,
+ 0, 0x305A, /* U305A # HIRAGANA LETTER ZU */
+ IBUS_KEY_dead_voiced_sound, 0x305B, 0, 0, 0,
+ 0, 0x305C, /* U305C # HIRAGANA LETTER ZE */
+ IBUS_KEY_dead_voiced_sound, 0x305D, 0, 0, 0,
+ 0, 0x305E, /* U305E # HIRAGANA LETTER ZO */
+ IBUS_KEY_dead_voiced_sound, 0x305F, 0, 0, 0,
+ 0, 0x3060, /* U3060 # HIRAGANA LETTER DA */
+ IBUS_KEY_dead_voiced_sound, 0x3061, 0, 0, 0,
+ 0, 0x3062, /* U3062 # HIRAGANA LETTER DI */
+ IBUS_KEY_dead_voiced_sound, 0x3064, 0, 0, 0,
+ 0, 0x3065, /* U3065 # HIRAGANA LETTER DU */
+ IBUS_KEY_dead_voiced_sound, 0x3066, 0, 0, 0,
+ 0, 0x3067, /* U3067 # HIRAGANA LETTER DE */
+ IBUS_KEY_dead_voiced_sound, 0x3068, 0, 0, 0,
+ 0, 0x3069, /* U3069 # HIRAGANA LETTER DO */
+ IBUS_KEY_dead_voiced_sound, 0x306F, 0, 0, 0,
+ 0, 0x3070, /* U3070 # HIRAGANA LETTER BA */
+ IBUS_KEY_dead_voiced_sound, 0x3072, 0, 0, 0,
+ 0, 0x3073, /* U3073 # HIRAGANA LETTER BI */
+ IBUS_KEY_dead_voiced_sound, 0x3075, 0, 0, 0,
+ 0, 0x3076, /* U3076 # HIRAGANA LETTER BU */
+ IBUS_KEY_dead_voiced_sound, 0x3078, 0, 0, 0,
+ 0, 0x3079, /* U3079 # HIRAGANA LETTER BE */
+ IBUS_KEY_dead_voiced_sound, 0x307B, 0, 0, 0,
+ 0, 0x307C, /* U307C # HIRAGANA LETTER BO */
+ IBUS_KEY_dead_voiced_sound, 0x309D, 0, 0, 0,
+ 0, 0x309E, /* U309E # HIRAGANA VOICED ITERATION MARK */
+ IBUS_KEY_dead_voiced_sound, 0x30F0, 0, 0, 0,
+ 0, 0x30F8, /* U30F8 # KATAKANA LETTER VI */
+ IBUS_KEY_dead_voiced_sound, 0x30F1, 0, 0, 0,
+ 0, 0x30F9, /* U30F9 # KATAKANA LETTER VE */
+ IBUS_KEY_dead_voiced_sound, 0x30FD, 0, 0, 0,
+ 0, 0x30FE, /* U30FE # KATAKANA VOICED ITERATION MARK */
+ IBUS_KEY_dead_semivoiced_sound, 0x306F, 0, 0, 0,
+ 0, 0x3071, /* U3071 # HIRAGANA LETTER PA */
+ IBUS_KEY_dead_semivoiced_sound, 0x3072, 0, 0, 0,
+ 0, 0x3074, /* U3074 # HIRAGANA LETTER PI */
+ IBUS_KEY_dead_semivoiced_sound, 0x3075, 0, 0, 0,
+ 0, 0x3077, /* U3077 # HIRAGANA LETTER PU */
+ IBUS_KEY_dead_semivoiced_sound, 0x3078, 0, 0, 0,
+ 0, 0x307A, /* U307A # HIRAGANA LETTER PE */
+ IBUS_KEY_dead_semivoiced_sound, 0x307B, 0, 0, 0,
+ 0, 0x307D, /* U307D # HIRAGANA LETTER PO */
+ IBUS_KEY_dead_doublegrave, IBUS_KEY_A, 0, 0, 0,
+ 0, 0x0200, /* U0200 # LATIN CAPITAL LETTER A WITH DOUBLE GRAVE */
+ IBUS_KEY_dead_doublegrave, IBUS_KEY_E, 0, 0, 0,
+ 0, 0x0204, /* U0204 # LATIN CAPITAL LETTER E WITH DOUBLE GRAVE */
+ IBUS_KEY_dead_doublegrave, IBUS_KEY_I, 0, 0, 0,
+ 0, 0x0208, /* U0208 # LATIN CAPITAL LETTER I WITH DOUBLE GRAVE */
+ IBUS_KEY_dead_doublegrave, IBUS_KEY_O, 0, 0, 0,
+ 0, 0x020C, /* U020C # LATIN CAPITAL LETTER O WITH DOUBLE GRAVE */
+ IBUS_KEY_dead_doublegrave, IBUS_KEY_R, 0, 0, 0,
+ 0, 0x0210, /* U0210 # LATIN CAPITAL LETTER R WITH DOUBLE GRAVE */
+ IBUS_KEY_dead_doublegrave, IBUS_KEY_U, 0, 0, 0,
+ 0, 0x0214, /* U0214 # LATIN CAPITAL LETTER U WITH DOUBLE GRAVE */
+ IBUS_KEY_dead_doublegrave, IBUS_KEY_a, 0, 0, 0,
+ 0, 0x0201, /* U0201 # LATIN SMALL LETTER A WITH DOUBLE GRAVE */
+ IBUS_KEY_dead_doublegrave, IBUS_KEY_e, 0, 0, 0,
+ 0, 0x0205, /* U0205 # LATIN SMALL LETTER E WITH DOUBLE GRAVE */
+ IBUS_KEY_dead_doublegrave, IBUS_KEY_i, 0, 0, 0,
+ 0, 0x0209, /* U0209 # LATIN SMALL LETTER I WITH DOUBLE GRAVE */
+ IBUS_KEY_dead_doublegrave, IBUS_KEY_o, 0, 0, 0,
+ 0, 0x020D, /* U020D # LATIN SMALL LETTER O WITH DOUBLE GRAVE */
+ IBUS_KEY_dead_doublegrave, IBUS_KEY_r, 0, 0, 0,
+ 0, 0x0211, /* U0211 # LATIN SMALL LETTER R WITH DOUBLE GRAVE */
+ IBUS_KEY_dead_doublegrave, IBUS_KEY_u, 0, 0, 0,
+ 0, 0x0215, /* U0215 # LATIN SMALL LETTER U WITH DOUBLE GRAVE */
+ IBUS_KEY_dead_doublegrave, 0x0474, 0, 0, 0,
+ 0, 0x0476, /* U0476 # CYRILLIC CAPITAL LETTER IZHITSA WITH DOUBLE GRAVE ACCENT */
+ IBUS_KEY_dead_doublegrave, 0x0475, 0, 0, 0,
+ 0, 0x0477, /* U0477 # CYRILLIC SMALL LETTER IZHITSA WITH DOUBLE GRAVE ACCENT */
+ IBUS_KEY_dead_belowring, IBUS_KEY_A, 0, 0, 0,
+ 0, 0x1E00, /* U1E00 # LATIN CAPITAL LETTER A WITH RING BELOW */
+ IBUS_KEY_dead_belowring, IBUS_KEY_a, 0, 0, 0,
+ 0, 0x1E01, /* U1E01 # LATIN SMALL LETTER A WITH RING BELOW */
+ IBUS_KEY_dead_belowmacron, IBUS_KEY_B, 0, 0, 0,
+ 0, 0x1E06, /* U1E06 # LATIN CAPITAL LETTER B WITH LINE BELOW */
+ IBUS_KEY_dead_belowmacron, IBUS_KEY_D, 0, 0, 0,
+ 0, 0x1E0E, /* U1E0E # LATIN CAPITAL LETTER D WITH LINE BELOW */
+ IBUS_KEY_dead_belowmacron, IBUS_KEY_K, 0, 0, 0,
+ 0, 0x1E34, /* U1E34 # LATIN CAPITAL LETTER K WITH LINE BELOW */
+ IBUS_KEY_dead_belowmacron, IBUS_KEY_L, 0, 0, 0,
+ 0, 0x1E3A, /* U1E3A # LATIN CAPITAL LETTER L WITH LINE BELOW */
+ IBUS_KEY_dead_belowmacron, IBUS_KEY_N, 0, 0, 0,
+ 0, 0x1E48, /* U1E48 # LATIN CAPITAL LETTER N WITH LINE BELOW */
+ IBUS_KEY_dead_belowmacron, IBUS_KEY_R, 0, 0, 0,
+ 0, 0x1E5E, /* U1E5E # LATIN CAPITAL LETTER R WITH LINE BELOW */
+ IBUS_KEY_dead_belowmacron, IBUS_KEY_T, 0, 0, 0,
+ 0, 0x1E6E, /* U1E6E # LATIN CAPITAL LETTER T WITH LINE BELOW */
+ IBUS_KEY_dead_belowmacron, IBUS_KEY_Z, 0, 0, 0,
+ 0, 0x1E94, /* U1E94 # LATIN CAPITAL LETTER Z WITH LINE BELOW */
+ IBUS_KEY_dead_belowmacron, IBUS_KEY_b, 0, 0, 0,
+ 0, 0x1E07, /* U1E07 # LATIN SMALL LETTER B WITH LINE BELOW */
+ IBUS_KEY_dead_belowmacron, IBUS_KEY_d, 0, 0, 0,
+ 0, 0x1E0F, /* U1E0F # LATIN SMALL LETTER D WITH LINE BELOW */
+ IBUS_KEY_dead_belowmacron, IBUS_KEY_h, 0, 0, 0,
+ 0, 0x1E96, /* U1E96 # LATIN SMALL LETTER H WITH LINE BELOW */
+ IBUS_KEY_dead_belowmacron, IBUS_KEY_k, 0, 0, 0,
+ 0, 0x1E35, /* U1E35 # LATIN SMALL LETTER K WITH LINE BELOW */
+ IBUS_KEY_dead_belowmacron, IBUS_KEY_l, 0, 0, 0,
+ 0, 0x1E3B, /* U1E3B # LATIN SMALL LETTER L WITH LINE BELOW */
+ IBUS_KEY_dead_belowmacron, IBUS_KEY_n, 0, 0, 0,
+ 0, 0x1E49, /* U1E49 # LATIN SMALL LETTER N WITH LINE BELOW */
+ IBUS_KEY_dead_belowmacron, IBUS_KEY_r, 0, 0, 0,
+ 0, 0x1E5F, /* U1E5F # LATIN SMALL LETTER R WITH LINE BELOW */
+ IBUS_KEY_dead_belowmacron, IBUS_KEY_t, 0, 0, 0,
+ 0, 0x1E6F, /* U1E6F # LATIN SMALL LETTER T WITH LINE BELOW */
+ IBUS_KEY_dead_belowmacron, IBUS_KEY_z, 0, 0, 0,
+ 0, 0x1E95, /* U1E95 # LATIN SMALL LETTER Z WITH LINE BELOW */
+ IBUS_KEY_dead_belowcircumflex, IBUS_KEY_D, 0, 0, 0,
+ 0, 0x1E12, /* U1E12 # LATIN CAPITAL LETTER D WITH CIRCUMFLEX BELOW */
+ IBUS_KEY_dead_belowcircumflex, IBUS_KEY_E, 0, 0, 0,
+ 0, 0x1E18, /* U1E18 # LATIN CAPITAL LETTER E WITH CIRCUMFLEX BELOW */
+ IBUS_KEY_dead_belowcircumflex, IBUS_KEY_L, 0, 0, 0,
+ 0, 0x1E3C, /* U1E3C # LATIN CAPITAL LETTER L WITH CIRCUMFLEX BELOW */
+ IBUS_KEY_dead_belowcircumflex, IBUS_KEY_N, 0, 0, 0,
+ 0, 0x1E4A, /* U1E4A # LATIN CAPITAL LETTER N WITH CIRCUMFLEX BELOW */
+ IBUS_KEY_dead_belowcircumflex, IBUS_KEY_T, 0, 0, 0,
+ 0, 0x1E70, /* U1E70 # LATIN CAPITAL LETTER T WITH CIRCUMFLEX BELOW */
+ IBUS_KEY_dead_belowcircumflex, IBUS_KEY_U, 0, 0, 0,
+ 0, 0x1E76, /* U1E76 # LATIN CAPITAL LETTER U WITH CIRCUMFLEX BELOW */
+ IBUS_KEY_dead_belowcircumflex, IBUS_KEY_d, 0, 0, 0,
+ 0, 0x1E13, /* U1E13 # LATIN SMALL LETTER D WITH CIRCUMFLEX BELOW */
+ IBUS_KEY_dead_belowcircumflex, IBUS_KEY_e, 0, 0, 0,
+ 0, 0x1E19, /* U1E19 # LATIN SMALL LETTER E WITH CIRCUMFLEX BELOW */
+ IBUS_KEY_dead_belowcircumflex, IBUS_KEY_l, 0, 0, 0,
+ 0, 0x1E3D, /* U1E3D # LATIN SMALL LETTER L WITH CIRCUMFLEX BELOW */
+ IBUS_KEY_dead_belowcircumflex, IBUS_KEY_n, 0, 0, 0,
+ 0, 0x1E4B, /* U1E4B # LATIN SMALL LETTER N WITH CIRCUMFLEX BELOW */
+ IBUS_KEY_dead_belowcircumflex, IBUS_KEY_t, 0, 0, 0,
+ 0, 0x1E71, /* U1E71 # LATIN SMALL LETTER T WITH CIRCUMFLEX BELOW */
+ IBUS_KEY_dead_belowcircumflex, IBUS_KEY_u, 0, 0, 0,
+ 0, 0x1E77, /* U1E77 # LATIN SMALL LETTER U WITH CIRCUMFLEX BELOW */
+ IBUS_KEY_dead_belowtilde, IBUS_KEY_E, 0, 0, 0,
+ 0, 0x1E1A, /* U1E1A # LATIN CAPITAL LETTER E WITH TILDE BELOW */
+ IBUS_KEY_dead_belowtilde, IBUS_KEY_I, 0, 0, 0,
+ 0, 0x1E2C, /* U1E2C # LATIN CAPITAL LETTER I WITH TILDE BELOW */
+ IBUS_KEY_dead_belowtilde, IBUS_KEY_U, 0, 0, 0,
+ 0, 0x1E74, /* U1E74 # LATIN CAPITAL LETTER U WITH TILDE BELOW */
+ IBUS_KEY_dead_belowtilde, IBUS_KEY_e, 0, 0, 0,
+ 0, 0x1E1B, /* U1E1B # LATIN SMALL LETTER E WITH TILDE BELOW */
+ IBUS_KEY_dead_belowtilde, IBUS_KEY_i, 0, 0, 0,
+ 0, 0x1E2D, /* U1E2D # LATIN SMALL LETTER I WITH TILDE BELOW */
+ IBUS_KEY_dead_belowtilde, IBUS_KEY_u, 0, 0, 0,
+ 0, 0x1E75, /* U1E75 # LATIN SMALL LETTER U WITH TILDE BELOW */
+ IBUS_KEY_dead_belowbreve, IBUS_KEY_H, 0, 0, 0,
+ 0, 0x1E2A, /* U1E2A # LATIN CAPITAL LETTER H WITH BREVE BELOW */
+ IBUS_KEY_dead_belowbreve, IBUS_KEY_h, 0, 0, 0,
+ 0, 0x1E2B, /* U1E2B # LATIN SMALL LETTER H WITH BREVE BELOW */
+ IBUS_KEY_dead_belowdiaeresis, IBUS_KEY_U, 0, 0, 0,
+ 0, 0x1E72, /* U1E72 # LATIN CAPITAL LETTER U WITH DIAERESIS BELOW */
+ IBUS_KEY_dead_belowdiaeresis, IBUS_KEY_u, 0, 0, 0,
+ 0, 0x1E73, /* U1E73 # LATIN SMALL LETTER U WITH DIAERESIS BELOW */
+ IBUS_KEY_dead_invertedbreve, IBUS_KEY_A, 0, 0, 0,
+ 0, 0x0202, /* U0202 # LATIN CAPITAL LETTER A WITH INVERTED BREVE */
+ IBUS_KEY_dead_invertedbreve, IBUS_KEY_E, 0, 0, 0,
+ 0, 0x0206, /* U0206 # LATIN CAPITAL LETTER E WITH INVERTED BREVE */
+ IBUS_KEY_dead_invertedbreve, IBUS_KEY_I, 0, 0, 0,
+ 0, 0x020A, /* U020A # LATIN CAPITAL LETTER I WITH INVERTED BREVE */
+ IBUS_KEY_dead_invertedbreve, IBUS_KEY_O, 0, 0, 0,
+ 0, 0x020E, /* U020E # LATIN CAPITAL LETTER O WITH INVERTED BREVE */
+ IBUS_KEY_dead_invertedbreve, IBUS_KEY_R, 0, 0, 0,
+ 0, 0x0212, /* U0212 # LATIN CAPITAL LETTER R WITH INVERTED BREVE */
+ IBUS_KEY_dead_invertedbreve, IBUS_KEY_U, 0, 0, 0,
+ 0, 0x0216, /* U0216 # LATIN CAPITAL LETTER U WITH INVERTED BREVE */
+ IBUS_KEY_dead_invertedbreve, IBUS_KEY_a, 0, 0, 0,
+ 0, 0x0203, /* U0203 # LATIN SMALL LETTER A WITH INVERTED BREVE */
+ IBUS_KEY_dead_invertedbreve, IBUS_KEY_e, 0, 0, 0,
+ 0, 0x0207, /* U0207 # LATIN SMALL LETTER E WITH INVERTED BREVE */
+ IBUS_KEY_dead_invertedbreve, IBUS_KEY_i, 0, 0, 0,
+ 0, 0x020B, /* U020B # LATIN SMALL LETTER I WITH INVERTED BREVE */
+ IBUS_KEY_dead_invertedbreve, IBUS_KEY_o, 0, 0, 0,
+ 0, 0x020F, /* U020F # LATIN SMALL LETTER O WITH INVERTED BREVE */
+ IBUS_KEY_dead_invertedbreve, IBUS_KEY_r, 0, 0, 0,
+ 0, 0x0213, /* U0213 # LATIN SMALL LETTER R WITH INVERTED BREVE */
+ IBUS_KEY_dead_invertedbreve, IBUS_KEY_u, 0, 0, 0,
+ 0, 0x0217, /* U0217 # LATIN SMALL LETTER U WITH INVERTED BREVE */
+ IBUS_KEY_dead_belowcomma, IBUS_KEY_S, 0, 0, 0,
+ 0, 0x0218, /* U0218 # LATIN CAPITAL LETTER S WITH COMMA BELOW */
+ IBUS_KEY_dead_belowcomma, IBUS_KEY_T, 0, 0, 0,
+ 0, 0x021A, /* U021A # LATIN CAPITAL LETTER T WITH COMMA BELOW */
+ IBUS_KEY_dead_belowcomma, IBUS_KEY_s, 0, 0, 0,
+ 0, 0x0219, /* U0219 # LATIN SMALL LETTER S WITH COMMA BELOW */
+ IBUS_KEY_dead_belowcomma, IBUS_KEY_t, 0, 0, 0,
+ 0, 0x021B, /* U021B # LATIN SMALL LETTER T WITH COMMA BELOW */
+ IBUS_KEY_Multi_key, IBUS_KEY_quotedbl, IBUS_KEY_slash, 0, 0,
+ 0, 0x301E, /* U301e # DOUBLE PRIME QUOTATION MARK */
+ IBUS_KEY_Multi_key, IBUS_KEY_quotedbl, IBUS_KEY_backslash, 0, 0,
+ 0, 0x301D, /* U301d # REVERSED DOUBLE PRIME QUOTATION MARK */
+ IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, 0x03D2, 0, 0,
+ 0, 0x03D3, /* U03D3 # GREEK UPSILON WITH ACUTE AND HOOK SYMBOL */
+ IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_5, IBUS_KEY_0, IBUS_KEY_parenright,
+ 0, 0x32BF, /* U32BF # CIRCLED NUMBER FIFTY */
+ IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_KP_5, IBUS_KEY_0, IBUS_KEY_parenright,
+ 0, 0x32BF, /* U32BF # CIRCLED NUMBER FIFTY */
+ IBUS_KEY_Multi_key, IBUS_KEY_comma, IBUS_KEY_E, 0, 0,
+ 0, 0x0228, /* U0228 # LATIN CAPITAL LETTER E WITH CEDILLA */
+ IBUS_KEY_Multi_key, IBUS_KEY_comma, IBUS_KEY_e, 0, 0,
+ 0, 0x0229, /* U0229 # LATIN SMALL LETTER E WITH CEDILLA */
+ IBUS_KEY_Multi_key, IBUS_KEY_period, 0x1E63, 0, 0,
+ 0, 0x1E69, /* U1E69 # LATIN SMALL LETTER S WITH DOT BELOW AND DOT ABOVE */
+ IBUS_KEY_Multi_key, IBUS_KEY_question, IBUS_KEY_exclam, 0, 0,
+ 0, 0x203D, /* U203D # INTERROBANG */
+ IBUS_KEY_Multi_key, IBUS_KEY_L, IBUS_KEY_equal, 0, 0,
+ 0, 0x20A4, /* U20a4 # LIRA SIGN */
+ IBUS_KEY_Multi_key, IBUS_KEY_U, IBUS_KEY_comma, IBUS_KEY_E, 0,
+ 0, 0x1E1C, /* U1E1C # LATIN CAPITAL LETTER E WITH CEDILLA AND BREVE */
+ IBUS_KEY_Multi_key, IBUS_KEY_U, IBUS_KEY_comma, IBUS_KEY_e, 0,
+ 0, 0x1E1D, /* U1E1D # LATIN SMALL LETTER E WITH CEDILLA AND BREVE */
+ IBUS_KEY_Multi_key, IBUS_KEY_d, IBUS_KEY_minus, 0, 0,
+ 0, 0x20AB, /* U20ab # DONG SIGN */
+ IBUS_KEY_Multi_key, IBUS_KEY_e, IBUS_KEY_e, 0, 0,
+ 0, 0x018F, /* U018f */
+ IBUS_KEY_Multi_key, IBUS_KEY_acute, 0x03D2, 0, 0,
+ 0, 0x03D3, /* U03D3 # GREEK UPSILON WITH ACUTE AND HOOK SYMBOL */
+ IBUS_KEY_Multi_key, 0x2203, 0x0338, 0, 0,
+ 0, 0x2204, /* U2204 # THERE DOES NOT EXIST */
+ IBUS_KEY_Multi_key, 0x2208, 0x0338, 0, 0,
+ 0, 0x2209, /* U2209 # NOT AN ELEMENT OF */
+ IBUS_KEY_Multi_key, 0x220B, 0x0338, 0, 0,
+ 0, 0x220C, /* U220C # DOES NOT CONTAIN AS MEMBER */
+ IBUS_KEY_Multi_key, 0x2223, 0x0338, 0, 0,
+ 0, 0x2224, /* U2224 # DOES NOT DIVIDE */
+ IBUS_KEY_Multi_key, 0x2225, 0x0338, 0, 0,
+ 0, 0x2226, /* U2226 # NOT PARALLEL TO */
+ IBUS_KEY_Multi_key, 0x2286, 0x0338, 0, 0,
+ 0, 0x2288, /* U2288 # NEITHER A SUBSET OF NOR EQUAL TO */
+ IBUS_KEY_Multi_key, 0x2287, 0x0338, 0, 0,
+ 0, 0x2289, /* U2289 # NEITHER A SUPERSET OF NOR EQUAL TO */
+ IBUS_KEY_Multi_key, 0x2291, 0x0338, 0, 0,
+ 0, 0x22E2, /* U22E2 # NOT SQUARE IMAGE OF OR EQUAL TO */
+ IBUS_KEY_Multi_key, 0x2292, 0x0338, 0, 0,
+ 0, 0x22E3, /* U22E3 # NOT SQUARE ORIGINAL OF OR EQUAL TO */
+ IBUS_KEY_Multi_key, 0x22B4, 0x0338, 0, 0,
+ 0, 0x22EC, /* U22EC # NOT NORMAL SUBGROUP OF OR EQUAL TO */
+ IBUS_KEY_Multi_key, 0x22B5, 0x0338, 0, 0,
+ 0, 0x22ED /* U22ED # DOES NOT CONTAIN AS NORMAL SUBGROUP OR EQUAL */
+};
+
+static const IBusComposeTable ibus_compose_table_pt_br = {
+ ibus_compose_seqs_pt_br,
+ 5,
+ G_N_ELEMENTS (ibus_compose_seqs_pt_br) / (5 + 2)
+};
+
+static const IBusComposeTableLocaleList ibus_compose_table_locale_list[] = {
+ { "el_gr", &ibus_compose_table_el_gr },
+ { "fi_fi", &ibus_compose_table_fi_fi },
+ { "pt_br", &ibus_compose_table_pt_br },
+ { NULL, NULL }
+};
+
+#endif
diff --git a/src/ibusenginesimple.c b/src/ibusenginesimple.c
index 84004e55..8c076ac5 100644
--- a/src/ibusenginesimple.c
+++ b/src/ibusenginesimple.c
@@ -29,20 +29,18 @@
#include "ibuskeys.h"
#include "ibuskeysyms.h"
-#include <stdlib.h>
+#include "ibuscomposetable.h"
+
+#ifdef HAVE_LOCALE_H
+#include <locale.h>
+#endif
+
#include <memory.h>
+#include <stdlib.h>
#define IBUS_ENGINE_SIMPLE_GET_PRIVATE(o) \
(G_TYPE_INSTANCE_GET_PRIVATE ((o), IBUS_TYPE_ENGINE_SIMPLE, IBusEngineSimplePrivate))
-typedef struct _IBusComposeTable IBusComposeTable;
-struct _IBusComposeTable
-{
- const guint16 *data;
- gint max_seq_len;
- gint n_seqs;
-};
-
typedef struct _IBusComposeTableCompact IBusComposeTableCompact;
struct _IBusComposeTableCompact
{
@@ -76,7 +74,7 @@ struct _IBusEngineSimplePrivate {
static const IBusComposeTableCompact ibus_compose_table_compact = {
gtk_compose_seqs_compact,
5,
- 24,
+ 25,
6
};
@@ -930,3 +928,33 @@ ibus_engine_simple_add_table (IBusEngineSimple *simple,
priv->tables = g_slist_prepend (priv->tables, table);
}
+
+gboolean
+ibus_engine_simple_add_table_by_locale (IBusEngineSimple *simple,
+ const gchar *locale)
+{
+ int i;
+
+ if (locale == NULL) {
+#ifdef HAVE_LOCALE_H
+ locale = setlocale (LC_CTYPE, NULL);
+#endif
+ if (locale == NULL)
+ locale = "C";
+ }
+
+ for (i = 0; ibus_compose_table_locale_list[i].locale != NULL; i++) {
+ const gchar *locale2 = ibus_compose_table_locale_list[i].locale;
+ const IBusComposeTable *table = ibus_compose_table_locale_list[i].table;
+
+ if (g_ascii_strncasecmp (locale, locale2 , strlen (locale2)) == 0) {
+ ibus_engine_simple_add_table (simple,
+ table->data,
+ table->max_seq_len,
+ table->n_seqs);
+ return TRUE;
+ }
+ }
+
+ return FALSE;
+}
diff --git a/src/ibusenginesimple.h b/src/ibusenginesimple.h
index 41384306..0c839d48 100644
--- a/src/ibusenginesimple.h
+++ b/src/ibusenginesimple.h
@@ -24,6 +24,9 @@
#error "Only <ibus.h> can be included directly"
#endif
+#ifndef __IBUS_ENGINE_SIMPLE_H__
+#define __IBUS_ENGINE_SIMPLE_H__
+
/**
* SECTION: ibussimpleengine
* @short_description: Input method engine supporting table-based input method
@@ -34,8 +37,6 @@
*
* see_also: #IBusEngine
*/
-#ifndef __IBUS_ENGINE_SIMPLE_H__
-#define __IBUS_ENGINE_SIMPLE_H__
#include "ibusengine.h"
@@ -110,11 +111,23 @@ GType ibus_engine_simple_get_type (void);
* The table must be sorted in dictionary order on the numeric value of the key
* symbol fields. (Values beyond the length of the sequence should be zero.)
*/
-void ibus_engine_simple_add_table (IBusEngineSimple *simple,
- const guint16 *data,
- gint max_seq_len,
- gint n_seqs);
+void ibus_engine_simple_add_table (IBusEngineSimple *simple,
+ const guint16 *data,
+ gint max_seq_len,
+ gint n_seqs);
+/**
+ * ibus_engine_simple_add_table_by_locale:
+ * @simple: An IBusEngineSimple.
+ * @locale: (allow-none): The locale name. If the locale is %NULL,
+ * the current locale is used.
+ * @returns: %TRUE if the @locale is matched to the table.
+ *
+ * Call ibus_engine_simple_add_table() internally by locale.
+ */
+gboolean ibus_engine_simple_add_table_by_locale
+ (IBusEngineSimple *simple,
+ const gchar *locale);
G_END_DECLS
#endif // __IBUS_ENGINE_SIMPLE_H__
diff --git a/src/ibuskeysyms.h b/src/ibuskeysyms.h
index cf55f0cf..d35eb4a7 100644
--- a/src/ibuskeysyms.h
+++ b/src/ibuskeysyms.h
@@ -1,8 +1,8 @@
/* -*- mode: C; c-basic-offset: 4; indent-tabs-mode: nil; -*- */
/* vim:set et sts=4: */
/* ibus - The Input Bus
- * Copyright (C) 2008-2010 Peng Huang <shawn.p.huang@gmail.com>
- * Copyright (C) 2008-2010 Red Hat, Inc.
+ * Copyright (C) 2008-2013 Peng Huang <shawn.p.huang@gmail.com>
+ * Copyright (C) 2008-2013 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
@@ -286,6 +286,7 @@
#define IBUS_KEY_dead_U 0xfe89
#define IBUS_KEY_dead_small_schwa 0xfe8a
#define IBUS_KEY_dead_capital_schwa 0xfe8b
+#define IBUS_KEY_dead_greek 0xfe8c
#define IBUS_KEY_First_Virtual_Screen 0xfed0
#define IBUS_KEY_Prev_Virtual_Screen 0xfed1
#define IBUS_KEY_Next_Virtual_Screen 0xfed2
@@ -1632,7 +1633,9 @@
#define IBUS_KEY_ocaron 0x10001d2
#define IBUS_KEY_obarred 0x1000275
#define IBUS_KEY_SCHWA 0x100018f
+#define IBUS_KEY_EZH 0x10001b7
#define IBUS_KEY_schwa 0x1000259
+#define IBUS_KEY_ezh 0x1000292
#define IBUS_KEY_Lbelowdot 0x1001e36
#define IBUS_KEY_lbelowdot 0x1001e37
#define IBUS_KEY_Abelowdot 0x1001ea0